[pve-devel] qemu-server: cgroups && cpu.shares implementation

Alexandre DERUMIER aderumier at odiso.com
Thu May 28 15:21:10 CEST 2015


>>Another way could be use launch qemu with systemd-run, I think we can specify cgroup (slice in systemd) directly. 

for example:

systemd-run --remain-after-exit --slice=qemu --unit=100 -p CPUShares=499 /usr/bin/kvm -id 100 ....


Seem better than hacking qemu ?


----- Mail original -----
De: "aderumier" <aderumier at odiso.com>
À: "Stefan Priebe" <s.priebe at profihost.ag>
Cc: "pve-devel" <pve-devel at pve.proxmox.com>
Envoyé: Jeudi 28 Mai 2015 15:02:36
Objet: Re: [pve-devel] qemu-server: cgroups && cpu.shares implementation

Another way could be use launch qemu with systemd-run, I think we can specify cgroup (slice in systemd) directly. 


----- Mail original ----- 
De: "aderumier" <aderumier at odiso.com> 
À: "Stefan Priebe" <s.priebe at profihost.ag> 
Cc: "pve-devel" <pve-devel at pve.proxmox.com> 
Envoyé: Jeudi 28 Mai 2015 13:36:25 
Objet: Re: [pve-devel] qemu-server: cgroups && cpu.shares implementation 

>>Not tested but what about this: 
>> 
>>fork() 
>># in child 
>>put current pid into cgroup 
>>exec kvm 

Yes, I think it should work, if we put the pid of the forked process in cgroups. 

Other child threads should go automaticaly to the parent cgroup. 
I have done tests with hotplug virtio-net with vhost threads, or iothread drive, 
and their threads pid go to the cgroup. 



----- Mail original ----- 
De: "Stefan Priebe" <s.priebe at profihost.ag> 
À: "dietmar" <dietmar at proxmox.com>, "aderumier" <aderumier at odiso.com>, "pve-devel" <pve-devel at pve.proxmox.com> 
Envoyé: Jeudi 28 Mai 2015 12:55:29 
Objet: Re: [pve-devel] qemu-server: cgroups && cpu.shares implementation 

Am 28.05.2015 um 12:51 schrieb Dietmar Maurer: 
>> Here the patches serie for implemtation of cpuunits through cgroups 
> 
> If you implement it inside qemu-server you have a race-condition, because 
> you do it too late and qemu already started the threads? Or maybe only parts 
> of necessary threads are already created? 
> 
> So wouldn't it be easier to do it inside qemu? 

Not tested but what about this: 

fork() 
# in child 
put current pid into cgroup 
exec kvm 

# parent 
... 

<= wouldn't this put all threads kvm creates automatically into the 
right cgroup? 

Stefan 

_______________________________________________ 
pve-devel mailing list 
pve-devel at pve.proxmox.com 
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel 
_______________________________________________ 
pve-devel mailing list 
pve-devel at pve.proxmox.com 
http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel 



More information about the pve-devel mailing list