[libvirt] [PATCH v2 1/3] qemu: Extract logic to determine the mlock limit size for VFIO
Ján Tomko
jtomko at redhat.com
Tue Nov 10 08:12:40 UTC 2015
On Mon, Nov 09, 2015 at 01:09:59PM -0500, John Ferlan wrote:
>
>
> On 11/09/2015 07:50 AM, Peter Krempa wrote:
> > New function qemuDomainGetMlockLimitBytes will now handle the
> > calculation so that it unifies the logic to one place and allows later
> > reuse.
> > ---
> > src/qemu/qemu_command.c | 18 ++----------------
> > src/qemu/qemu_domain.c | 27 +++++++++++++++++++++++++++
> > src/qemu/qemu_domain.h | 2 ++
> > src/qemu/qemu_hotplug.c | 17 ++---------------
> > 4 files changed, 33 insertions(+), 31 deletions(-)
> >
> > diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> > index 8824541..9acf8e4 100644
> > --- a/src/qemu/qemu_command.c
> > +++ b/src/qemu/qemu_command.c
> > @@ -11447,22 +11447,8 @@ qemuBuildCommandLine(virConnectPtr conn,
> > goto error;
> > }
> >
> > - if (mlock) {
> > - unsigned long long memKB;
> > -
> > - /* 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).
> > - */
> > - if (virMemoryLimitIsSet(def->mem.hard_limit))
> > - memKB = def->mem.hard_limit;
> > - else
> > - memKB = virDomainDefGetMemoryActual(def) + 1024 * 1024;
> > -
> > - virCommandSetMaxMemLock(cmd, memKB * 1024);
> > - }
> > + if (mlock)
> > + virCommandSetMaxMemLock(cmd, qemuDomainGetMlockLimitBytes(def));
> >
> > if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_MSG_TIMESTAMP) &&
> > cfg->logTimestamp)
> > diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
> > index 890d8ed..a06624e 100644
> > --- a/src/qemu/qemu_domain.c
> > +++ b/src/qemu/qemu_domain.c
> > @@ -3616,3 +3616,30 @@ qemuDomainUpdateCurrentMemorySize(virQEMUDriverPtr driver,
> >
> > return 0;
> > }
> > +
> > +
> > +/**
> > + * qemuDomainGetMlockLimitBytes:
> > + *
> > + * @def: domain definition
> > + *
> > + * Returns the size of the memory in bytes that needs to be set as
> > + * RLIMIT_MEMLOCK for purpose of VFIO device passthrough. In cases where
> > + * mem.hard_limit is set, the value is preferred,otherwise the value may depend
> > + * on the device or architecture.
>
>
> How about?
>
> Returns the size of memory in bytes to allow a process (domain) to be
> locked into RAM (e.g setrlimit RLIMIT_MEMLOCK).
While this sentence is inaccurate,
> If a mem.hard_limit is
> set, then that value is preferred; otherwise, the value returned may
> depend upon the architecture or devices present, such as a VFIO
> passthrough device.
>
this one looks better than the original and it has proper spacing after
the comma.
ACK with the second sentence used.
Jan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20151110/e5b05c55/attachment-0001.sig>
More information about the libvir-list
mailing list