aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Levon <john.levon@nutanix.com>2023-07-31 14:43:23 +0100
committerGitHub <noreply@github.com>2023-07-31 14:43:23 +0100
commit8038da119c3fd53970d6820208b78e9c1798ba95 (patch)
tree649a8f86e1347473b94593c4f60ff317e89e8e9c
parent56eeb6809e4d68546eae3ff8d0e03aaea66d46d1 (diff)
downloadlibvfio-user-8038da119c3fd53970d6820208b78e9c1798ba95.zip
libvfio-user-8038da119c3fd53970d6820208b78e9c1798ba95.tar.gz
libvfio-user-8038da119c3fd53970d6820208b78e9c1798ba95.tar.bz2
docs: document DMA message dirty handling (#755)
Document that on vfu_sgl_write(), it's the client's responsibility to track any dirty pages. Signed-off-by: John Levon <john.levon@nutanix.com>
-rw-r--r--docs/memory-mapping.md8
-rw-r--r--include/libvfio-user.h3
2 files changed, 9 insertions, 2 deletions
diff --git a/docs/memory-mapping.md b/docs/memory-mapping.md
index f5c5bce..edd4468 100644
--- a/docs/memory-mapping.md
+++ b/docs/memory-mapping.md
@@ -133,7 +133,11 @@ case, then the server may only read or write the region the slower way:
```
...
-vfu_addr_to_sgl(ctx, iova, len, sg, 1, PROT_READ);
+vfu_addr_to_sgl(ctx, iova, len, sg, 1, PROT_WRITE);
-vfu_sgl_read(ctx, sg, 1, &buf);
+vfu_sgl_write(ctx, sg, 1, &buf);
```
+
+Note that in this case, the server is not expected to report any dirty writes
+via `vfu_sgl_mark_dirty()`: as the client is actually writing to memory, it's
+the client's responsibility to track any dirtying.
diff --git a/include/libvfio-user.h b/include/libvfio-user.h
index 0a8af2b..7cd28b5 100644
--- a/include/libvfio-user.h
+++ b/include/libvfio-user.h
@@ -869,6 +869,9 @@ vfu_sgl_read(vfu_ctx_t *vfu_ctx, dma_sg_t *sg, size_t cnt, void *data);
* alternative to reading from a vfu_sgl_get() mapping, if the region is not
* directly mappable, or DMA notification callbacks have not been provided.
*
+ * During live migration, this call does not mark any of the written pages as
+ * dirty; the client is expected to track this.
+ *
* @vfu_ctx: the libvfio-user context
* @sg: a DMA segment obtained from dma_addr_to_sg
* @data: data buffer to write