On 04/25/2013 11:57 AM, Laine Stump wrote: > VFIO requires all of the guest's memory and IO space to be lockable in > RAM. The domain's max_balloon is the maximum amount of memory the > domain can have (in KiB). We add a generous 1GiB to that for IO space > (still much better than KVM device assignment, where the KVM module > actually *ignores* the process limits and locks everything anyway), > and convert from KiB to bytes. > > In the case of hotplug, we are changing the limit for the already > existing qemu process (prlimit() is used under the hood), and for > regular commandline additions of vfio devices, we schedule a call to > setrlimit() that will happen after the qemu process is forked. > --- > src/qemu/qemu_command.c | 22 +++++++++++++++------- > src/qemu/qemu_hotplug.c | 24 +++++++++++++++++------- > 2 files changed, 32 insertions(+), 14 deletions(-) > > + /* VFIO requires all of the guest's memory to be > + * locked resident, plus some amount for IO > + * space. Alex Williamson suggested adding 1GiB for IO > + * space just to be safe (some finer tuning might be > + * nice, though). > + */ > + virCommandSetMaxMemLock(cmd, ((unsigned long long)def->mem.max_balloon + (1024 * 1024)) * 1024); Worth wrapping the long line, perhaps at the + operator? Or even using a temporary: unsigned long long mem_kbytes = def->mem.max_balloon + (1024 * 1024); virCommandSetMaxMemLock(cmd, mem_kbytes * 1024); > + virSetMaxMemLock(vm->pid, > + ((unsigned long long)vm->def->mem.max_balloon + (1024 * 1024)) * 1024); and again. Line wrapping is trivial, though, so: ACK. -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list