[PATCH v6 00/16] xenguest optimisations

Frediano Ziglio posted 16 patches 1 month ago
Failed in applying to current master (apply log)
There is a newer version of this series
tools/include/xen-sys/Linux/privcmd.h |  10 ++
tools/libs/call/buffer.c              |  31 ++--
tools/libs/call/core.c                |   3 +-
tools/libs/call/private.h             |   8 +-
tools/libs/ctrl/xc_private.c          |  26 +--
tools/libs/ctrl/xc_private.h          |   2 +-
tools/libs/guest/xg_sr_common.c       |  92 ++++++++++-
tools/libs/guest/xg_sr_common.h       |  21 +++
tools/libs/guest/xg_sr_restore.c      | 100 ++++++------
tools/libs/guest/xg_sr_save.c         | 224 +++++++++++---------------
xen/arch/x86/traps-setup.c            |   2 +-
xen/common/memory.c                   | 145 +++++++++++++++++
xen/include/public/memory.h           |  44 ++++-
13 files changed, 489 insertions(+), 219 deletions(-)
[PATCH v6 00/16] xenguest optimisations
Posted by Frediano Ziglio 1 month ago
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.

Edwin Török (3):
  libs/guest: allocate various migration arrays just once
  libs/call: cache up to 4 pages in hypercall bounce buffers
  PoC: libs/guest: use foreign copy during migration

Frediano Ziglio (12):
  libs/guest: Reduce number of parts in write_split_record
  libs/guest: Reduce number of I/O vectors in write_batch
  libs/guest: Reduce number of I/O vectors in write_batch
  libs/guest: Use a single write_exact in write_headers
  libs/guest: avoids using 2 indexes
  libs/guest: fill directly iov structure
  libs/ctrl: Allows writev_exact to change iov array
  libs/guest: add xg_foreignmemory_copy_{from,to}
  xen: implement new foreign copy hypercall
  privcmd: Add definition for new Linux privcmd to access new Xen
    hypercall
  libs/guest: use new hypercall if available
  libs/guest: finalize PoC

 tools/include/xen-sys/Linux/privcmd.h |  10 ++
 tools/libs/call/buffer.c              |  31 ++--
 tools/libs/call/core.c                |   3 +-
 tools/libs/call/private.h             |   8 +-
 tools/libs/ctrl/xc_private.c          |  26 +--
 tools/libs/ctrl/xc_private.h          |   2 +-
 tools/libs/guest/xg_sr_common.c       |  92 ++++++++++-
 tools/libs/guest/xg_sr_common.h       |  21 +++
 tools/libs/guest/xg_sr_restore.c      | 100 ++++++------
 tools/libs/guest/xg_sr_save.c         | 224 +++++++++++---------------
 xen/arch/x86/traps-setup.c            |   2 +-
 xen/common/memory.c                   | 145 +++++++++++++++++
 xen/include/public/memory.h           |  44 ++++-
 13 files changed, 489 insertions(+), 219 deletions(-)

-- 
2.43.0