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@xxxxxxxxxx> > --- > src/util/vircgroup.c | 5 ++++- > 1 file changed, 4 insertions(+), 1 deletion(-) Reviewed-by: Pavel Hrdina <phrdina@xxxxxxxxxx>
Attachment:
signature.asc
Description: PGP signature