[libvirt] [PATCH 5/9] qemu_cgroup: put qemu right into emulator sub-cgroup

Henning Schild henning.schild at siemens.com
Fri Feb 26 12:59:01 UTC 2016


On Thu, 25 Feb 2016 17:53:30 -0500
John Ferlan <jferlan at redhat.com> wrote:

> On 02/23/2016 10:58 AM, 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(-)
> >   
> 
> This is where things are going to get messy.  Peter Krempa posted a
> series after yours:
> 
> http://www.redhat.com/archives/libvir-list/2016-February/msg01211.html
> 
> which conflicts with this and the followup patch. Hopefully between
> you, Peter, and Dan something can be worked out.

Peters patch 1 seems like a semantic noop. It just merge cgroup
creation and affinity setting. I can probably rebase on top of that
without a problem.

> Also, it seems starting at patch 7 there's more conflicts with the top
> of the upstream, so I couldn't 'git am -3' them into a local branch.
> 
> John
> 
> > 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;
> >   




More information about the libvir-list mailing list