[libvirt PATCH 08/13] ch_cgroup: methods for cgroup mgmt in ch driver

Praveen K Paladugu prapal at linux.microsoft.com
Mon Nov 15 23:05:12 UTC 2021



On 10/29/2021 7:31 AM, Michal Prívozník wrote:
> On 10/22/21 5:37 PM, Praveen K Paladugu wrote:
>> From: Vineeth Pillai <viremana at linux.microsoft.com>
>>
>> Signed-off-by: Vineeth Pillai <viremana at linux.microsoft.com>
>> Signed-off-by: Praveen K Paladugu <prapal at linux.microsoft.com>
>> ---
>>   po/POTFILES.in      |   1 +
>>   src/ch/ch_cgroup.c  | 457 ++++++++++++++++++++++++++++++++++++++++++++
>>   src/ch/ch_cgroup.h  |  45 +++++
>>   src/ch/ch_conf.c    |   2 +
>>   src/ch/ch_conf.h    |   4 +-
>>   src/ch/ch_domain.c  |  33 ++++
>>   src/ch/ch_domain.h  |   3 +-
>>   src/ch/ch_monitor.c | 125 ++++++++++--
>>   src/ch/ch_monitor.h |  54 +++++-
>>   src/ch/ch_process.c | 288 +++++++++++++++++++++++++++-
>>   src/ch/ch_process.h |   3 +
>>   src/ch/meson.build  |   2 +
>>   12 files changed, 991 insertions(+), 26 deletions(-)
>>   create mode 100644 src/ch/ch_cgroup.c
>>   create mode 100644 src/ch/ch_cgroup.h
>>
>> diff --git a/po/POTFILES.in b/po/POTFILES.in
>> index b554cf08ca..3a8db501bc 100644
>> --- a/po/POTFILES.in
>> +++ b/po/POTFILES.in
>> @@ -19,6 +19,7 @@
>>   @SRCDIR at src/bhyve/bhyve_parse_command.c
>>   @SRCDIR at src/bhyve/bhyve_process.c
>>   @SRCDIR at src/ch/ch_conf.c
>> + at SRCDIR@src/ch/ch_cgroup.c
>>   @SRCDIR at src/ch/ch_domain.c
>>   @SRCDIR at src/ch/ch_driver.c
>>   @SRCDIR at src/ch/ch_monitor.c
>> diff --git a/src/ch/ch_cgroup.c b/src/ch/ch_cgroup.c
>> new file mode 100644
>> index 0000000000..6be2184cf1
>> --- /dev/null
>> +++ b/src/ch/ch_cgroup.c
>> @@ -0,0 +1,457 @@
>> +/*
>> + * ch_cgroup.c: CH cgroup management
> 
> This file is a verbatim copy of qemu_cgroup.c (except for some
> formatting shenanigans). I wonder whether instead of copying code we can
> move it under hypervisor agnostic location (src/hypervisor/) and then
> only call respective functions from either of drivers. What do you think?
> 
> Michal
> 

I started refactoring this commit to have shared methods between qemu 
and ch drviers for cgroup management. While doing so, I realized, I 
still need a mechanism to identify what the underlying driver is : ch/qemu.

An example of it is the prefix for the cgroup to be created. Ch driver 
is configured to have a prefix of "ch", while qemu driver configures the 
prefix of the cgroup name to "qemu".

What is the best way to detect the underlying driver from 
src/hypervisor?  One way I could think of it is to extend 
virQEMUDriver/virtCHDriver struct to also have a driver name which will 
be checked from these shared methods. Any other recommendations for this 
check?



-- 
Regards,
Praveen K Paladugu





More information about the libvir-list mailing list