xen/privcmd: improve performance of MMAPBATCH_V2
Make the IOCTL_PRIVCMD_MMAPBATCH_V2 (and older V1 version) map
multiple frames at a time rather than one at a time, despite the pages
being non-consecutive GFNs.
xen_remap_foreign_mfn_array() is added which maps an array of GFNs
(instead of a consecutive range of GFNs).
Since per-frame errors are returned in an array, privcmd must set the
MMAPBATCH_V1 error bits as part of the "report errors" phase, after
all the frames are mapped.
Migrate times are significantly improved (when using a PV toolstack
domain).  For example, for an idle 12 GiB PV guest:
        Before     After
  real  0m38.179s  0m26.868s
  user  0m15.096s  0m13.652s
  sys   0m28.988s  0m18.732s
Signed-off-by:  David Vrabel <david.vrabel@citrix.com>
Reviewed-by:
David Vrabel <david.vrabel@citrix.com>
Reviewed-by:  Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Loading
Please register or sign in to comment
