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(a)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(a)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