[libvirt] [PATCH 5/9] qemu_cgroup: put qemu right into emulator sub-cgroup
Daniel P. Berrange
berrange at redhat.com
Fri Feb 26 11:14:31 UTC 2016
On Tue, Feb 23, 2016 at 04:58:40PM +0100, Henning Schild wrote:
> Move qemuSetupCgroupForEmulator up under qemuSetupCgroup. That way
> we move the one main thread right into the emulator cgroup, instead
> of moving multiple threads later on. And we do not actually want any
> threads running in the parent cgroups (cpu cpuacct cpuset).
>
> Signed-off-by: Henning Schild <henning.schild at siemens.com>
> ---
> src/qemu/qemu_process.c | 8 ++++----
> 1 file changed, 4 insertions(+), 4 deletions(-)
ACK, this is the key part of the fix. With the old code the QEMU
pids are only moved /after/ exec(), with this change, the pids are
moved /before/ exec(), fixing the core problem of threads runing
int the wrong place between 'exec()' and libvirt querying vCPUs.
>
> diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c
> index 05cbda2..65f718c 100644
> --- a/src/qemu/qemu_process.c
> +++ b/src/qemu/qemu_process.c
> @@ -4895,6 +4895,10 @@ qemuProcessLaunch(virConnectPtr conn,
> if (qemuSetupCgroup(driver, vm, nnicindexes, nicindexes) < 0)
> goto cleanup;
>
> + VIR_DEBUG("Setting cgroup for emulator (if required)");
> + if (qemuSetupCgroupForEmulator(vm) < 0)
> + goto cleanup;
> +
> /* This must be done after cgroup placement to avoid resetting CPU
> * affinity */
> if (!vm->def->cputune.emulatorpin &&
> @@ -4943,10 +4947,6 @@ qemuProcessLaunch(virConnectPtr conn,
> if (rv == -1) /* The VM failed to start */
> goto cleanup;
>
> - VIR_DEBUG("Setting cgroup for emulator (if required)");
> - if (qemuSetupCgroupForEmulator(vm) < 0)
> - goto cleanup;
> -
> VIR_DEBUG("Setting affinity of emulator threads");
> if (qemuProcessSetEmulatorAffinity(vm) < 0)
> goto cleanup;
> --
> 2.4.10
>
Regards,
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list