
Thanks for the comments Eric. The offline, removes the entry from the cgroups and all its subcgroups. On Online, I guess kernel does not know till which sub-cgroup it should add the entry. I think that is how cgroup is designed to behave when it lacks the policy knowledge. Let me know what you think. Regards, Shivaprasad G Bhat On Fri, Jan 31, 2014 at 9:58 PM, Eric Blake <eblake@redhat.com> wrote:
On 01/31/2014 12:22 AM, Shivaprasad G Bhat wrote:
Online/Offline operations on the host cpus removes the machine/cpuset.cpus which are never added back. The guests with vcpu pinning can fail to boot unless the xml is edited.
If the possibility that the offlined cpus are onlined back, the cpuset.cpus can be updated upon start of the guest thus allowing the guests to boot back without erroring out.
Please wrap commit message lines; typically, wrapping less than 70 characters since 'git log' indents the lines.
Signed-off-by: Shivaprasad G Bhat <sbhat@linux.vnet.ibm.com> --- src/util/vircgroup.c | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-)
diff --git a/src/util/vircgroup.c b/src/util/vircgroup.c index a6d60c5..52575c9 100644 --- a/src/util/vircgroup.c +++ b/src/util/vircgroup.c @@ -72,6 +72,7 @@ typedef enum { * before creating subcgroups and * attaching tasks */ + VIR_CGROUP_CPUS_HIERACHY = 1 << 1, /* call virCgroupCpuSetInherit */
s/HIERACHY/HIERARCHY/
I'm not sure about the technical aspect of this patch, on whether this is the best approach to deal with the situation. I think the kernel has caused several issues with how it handles offline cpu vs. cgroups, and wonder if the fix belongs in the kernel.
-- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org