[PATCH] vircgroup: Improve virCgroupControllerAvailable wrt to CGroupsV2

Pavel Hrdina phrdina at redhat.com
Thu Jul 8 17:38:13 UTC 2021


On Thu, Jul 08, 2021 at 06:21:46PM +0200, Michal Privoznik wrote:
> It all started as a simple bug: trying to move domain memory
> between NUMA nodes (e.g. via virsh numatune) did not work. I've
> traced the problem to qemuProcessHook() because that's where we
> decide whether to rely on CGroups or use numactl APIs to satisfy
> <numatune/>. The problem was that virCgroupControllerAvailable()
> was telling us that cpuset controller is unavailable. This is
> CGroupsV2, and pretty weird because CGroupsV2 definitely do
> support cpuset controller and I had them mounted in a standard
> way. What I found out (with Pavel's help) was that
> virCgroupNewSelf() was looking into the following path to detect
> supported controllers:
> 
>   /sys/fs/cgroup/system.slice/cgroup.controllers
> 
> However, if there's no other VM running then the system.slice
> only has 'memory' and 'pids' controllers. Therefore, we saw
> 'cpuset' as not available. The fix is to look at the top most
> path, which has the full set of controllers:
> 
>   /sys/fs/cgroup/cgroup.controllers
> 
> Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1976690
> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
> ---
>  src/util/vircgroup.c | 5 ++++-
>  1 file changed, 4 insertions(+), 1 deletion(-)

Reviewed-by: Pavel Hrdina <phrdina at redhat.com>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20210708/bae02d9b/attachment-0001.sig>


More information about the libvir-list mailing list