[PATCH v3 0/9] Minor xenguest optimisations

Frediano Ziglio posted 9 patches 1 month, 2 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://gitlab.com/xen-project/patchew/xen tags/patchew/20260526094324.12286-1-frediano.ziglio@cloud.com
tools/libs/call/buffer.c         |  28 +++--
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  |   6 +-
tools/libs/guest/xg_sr_common.h  |  12 +++
tools/libs/guest/xg_sr_restore.c |  26 ++---
tools/libs/guest/xg_sr_save.c    | 169 +++++++++++++------------------
9 files changed, 128 insertions(+), 152 deletions(-)
[PATCH v3 0/9] Minor xenguest optimisations
Posted by Frediano Ziglio 1 month, 2 weeks ago
From: Frediano Ziglio <frediano.ziglio@citrix.com>

Reduce some number of parts passed to writev.
Avoid possible allocation sending data with writev.
Reduce number of allocations sending memory state.

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.

Edwin Török (2):
  libs/guest: allocate various migration arrays just once
  libs/call: cache up to 4 pages in hypercall bounce buffers

Frediano Ziglio (7):
  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

 tools/libs/call/buffer.c         |  28 +++--
 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  |   6 +-
 tools/libs/guest/xg_sr_common.h  |  12 +++
 tools/libs/guest/xg_sr_restore.c |  26 ++---
 tools/libs/guest/xg_sr_save.c    | 169 +++++++++++++------------------
 9 files changed, 128 insertions(+), 152 deletions(-)

-- 
2.54.0


Re: [PATCH v3 0/9] Minor xenguest optimisations
Posted by Jan Beulich 1 month, 1 week ago
On 26.05.2026 11:43, Frediano Ziglio wrote:
> From: Frediano Ziglio <frediano.ziglio@citrix.com>
> 
> Reduce some number of parts passed to writev.
> Avoid possible allocation sending data with writev.
> Reduce number of allocations sending memory state.
> 
> 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.
> 
> Edwin Török (2):
>   libs/guest: allocate various migration arrays just once

Btw, in particular related to this one, see also
https://lists.xen.org/archives/html/xen-devel/2022-04/msg02037.html (and
maybe one or two others in the same series).

Jan

>   libs/call: cache up to 4 pages in hypercall bounce buffers
> 
> Frediano Ziglio (7):
>   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
> 
>  tools/libs/call/buffer.c         |  28 +++--
>  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  |   6 +-
>  tools/libs/guest/xg_sr_common.h  |  12 +++
>  tools/libs/guest/xg_sr_restore.c |  26 ++---
>  tools/libs/guest/xg_sr_save.c    | 169 +++++++++++++------------------
>  9 files changed, 128 insertions(+), 152 deletions(-)
>