Reduce some number of parts passed to writev.
Avoid possible allocation sending data with writev.
Reduce number of allocations sending memory state.
Implement and use new Xen and Linux kernel ABI to copy foreign memory.
This new ABI allows to replace theexpensive map/copy/unmap sequence
with a single call.
Changes since v1:
- add commit to cache up to 4 pages in hypercall;
- add other 2 commits reducing chunks passed to write/writev.
Changes since v2:
- update patches commit prefixes;
- add other 2 optisations.
Changes since v3:
- address some comments;
- add patches for foreign copy optimisation.
Changes since v4:
- added Reviewed-by;
- improved commit messages;
- other minor fixes, see individual commits.
Changes since v5:
- avoids potential buffer underflow if nr_pages is 0 calling cache_alloc;
- do not overwrite errno if xenforeignmemory_map fails;
- lot of changes to "implement new foreign copy hypercall", see specific
commit.
Changes since v6:
- removed merged patch;
- keep only optimization commits for now;
- improve comments;
- merged "fill directly iov structure collapsing them" and moved it;
- split "allocate various migration arrays just once";
- add a commit for memory checks using Valgrind.
Edwin Török (3):
libs/call: cache up to 4 pages in hypercall bounce buffers
libs/guest: move batch_pfns into a separate structure
libs/guest: allocate various migration arrays just once
Frediano Ziglio (3):
libs/ctrl: Allow writev_exact() to change the iov array
libs/guest: fill directly iov structure collapsing them
libs/guest: use Valgrind to detect various buffer overflows
tools/libs/call/buffer.c | 34 ++++++----
tools/libs/call/core.c | 3 +-
tools/libs/call/private.h | 8 ++-
tools/libs/ctrl/xc_private.c | 65 +++++--------------
tools/libs/ctrl/xc_private.h | 11 +++-
tools/libs/guest/xg_sr_common.h | 19 +++++-
tools/libs/guest/xg_sr_save.c | 107 +++++++++++++++-----------------
7 files changed, 124 insertions(+), 123 deletions(-)
--
2.43.0