mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-21 19:02:25 +00:00
qemu: Set all limits at the same time
qemuProcessLaunch() is the correct place to set process limits, and in fact is where we were dealing with almost all of them, but the memory locking limit was handled in qemuBuildCommandLine() instead for some reason. The code is rewritten so that the desired limit is calculated and applied in separated steps, which will help with further changes, but this doesn't alter the behavior. Signed-off-by: Andrea Bolognani <abologna@redhat.com> Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
parent
9bf5c00f9b
commit
bd33680f02
@ -10127,10 +10127,6 @@ qemuBuildCommandLine(virQEMUDriverPtr driver,
|
||||
qemuBuildVsockCommandLine(cmd, def, def->vsock, qemuCaps) < 0)
|
||||
return NULL;
|
||||
|
||||
/* In some situations, eg. VFIO passthrough, QEMU might need to lock a
|
||||
* significant amount of memory, so we need to set the limit accordingly */
|
||||
virCommandSetMaxMemLock(cmd, qemuDomainGetMemLockLimitBytes(def, false));
|
||||
|
||||
if (virQEMUCapsGet(qemuCaps, QEMU_CAPS_MSG_TIMESTAMP) &&
|
||||
cfg->logTimestamp)
|
||||
virCommandAddArgList(cmd, "-msg", "timestamp=on", NULL);
|
||||
|
@ -6916,6 +6916,7 @@ qemuProcessLaunch(virConnectPtr conn,
|
||||
g_autoptr(virQEMUDriverConfig) cfg = NULL;
|
||||
size_t nnicindexes = 0;
|
||||
g_autofree int *nicindexes = NULL;
|
||||
unsigned long long maxMemLock = 0;
|
||||
|
||||
VIR_DEBUG("conn=%p driver=%p vm=%p name=%s if=%d asyncJob=%d "
|
||||
"incoming.launchURI=%s incoming.deferredURI=%s "
|
||||
@ -7013,6 +7014,11 @@ qemuProcessLaunch(virConnectPtr conn,
|
||||
|
||||
VIR_DEBUG("Setting up process limits");
|
||||
|
||||
/* In some situations, eg. VFIO passthrough, QEMU might need to lock a
|
||||
* significant amount of memory, so we need to set the limit accordingly */
|
||||
maxMemLock = qemuDomainGetMemLockLimitBytes(vm->def, false);
|
||||
|
||||
virCommandSetMaxMemLock(cmd, maxMemLock);
|
||||
virCommandSetMaxProcesses(cmd, cfg->maxProcesses);
|
||||
virCommandSetMaxFiles(cmd, cfg->maxFiles);
|
||||
virCommandSetMaxCoreSize(cmd, cfg->maxCore);
|
||||
|
Loading…
x
Reference in New Issue
Block a user