On Wed, Nov 05, 2014 at 12:00:14PM +0800, Wang Rui wrote:
On 2014/11/4 22:04, Martin Kletzander wrote:
> On Tue, Nov 04, 2014 at 09:22:22PM +0800, Wang Rui wrote:
>> If the memory mode is specified as preferred, we get the following error when
>> starting domain.
>>
>> error: Unable to write to '$my_cgroup_path/cpuset.mems': Device or
resource busy
>>
>> XML is configured with numatune as follows:
>> <numatune>
>> <memory mode='preferred' nodeset='0'/>
>> </numatune>
>>
>> If memory mode is 'preferred', cpuset.mems in cgroup shouldn't be set
to
>> 'nodeset'. I find that maybe commit
1a7be8c600905aa07ac2d78293336ba8523ad48e
>> changes the former logic of checking mode in virDomainNumatuneGetNodeset.
>>
>> Signed-off-by: Wang Rui <moon.wangrui(a)huawei.com>
>> ---
>> src/qemu/qemu_cgroup.c | 5 +++++
>> 1 file changed, 5 insertions(+)
>>
>
> Thanks for catching that, it definitely is a problem, but I think it
> is cause by commit 93e82727ec11d471d2ef3a18835e1fdfe062cef1.
>
> It should be also fixed in virLXCCgroupSetupCpusetTune() for LXC.
>
OK. I'll try to fix it for LXC in another patch.
Yeah, that can be a follow-up, it'll look the same, anyway.
>> diff --git a/src/qemu/qemu_cgroup.c b/src/qemu/qemu_cgroup.c
>> index b5bdb36..8685d6f 100644
>> --- a/src/qemu/qemu_cgroup.c
>> +++ b/src/qemu/qemu_cgroup.c
>> @@ -618,6 +618,11 @@ qemuSetupCpusetMems(virDomainObjPtr vm,
>> if (!virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_CPUSET))
>> return 0;
>>
>> + if (virDomainNumatuneGetMode(vm->def->numatune, -1) !=
>> + VIR_DOMAIN_NUMATUNE_MEM_STRICT) {
>> + return 0;
>> + }
>> +
>
> One question, is it problem only for 'preferred' or 'interleaved' as
> well? Because if it's only problem for 'preferred', then the check is
> wrong. If it's problem for 'interleaved' as well, then the commit
> message is wrong.
>
'interleave' with a single node(such as nodeset='0') will cause the same
error.
But 'interleave' mode should not live with a single node. So maybe there's
another bugfix to check 'interleave' with single node.
Well, I'd be OK with just changing the commit message to mention that.
This fix is still a valid one and will fix both issues, won't it?
If configured with 'interleave' and multiple nodes(such as
nodeset='0-1'),
VM can be started successfully. And cpuset.mems is set to the same nodeset.
So I'll revise my patch.
I'll send patches V2. Conclusion:
1/3 : add check for 'interleave' mode with single numa node
2/3 : fix this problem in qemu
3/3 : fix this problem in lxc
Is it OK?
> Anyway, after either one is fixed, I can push this.
>
> Thank you,
> Martin