
Hi~ On 07/18/2012 09:44 AM, Eric Blake wrote:
On 07/17/2012 07:33 PM, tangchen wrote:
Hi~
It seems that libvirt is not cpu hotplug aware.
Portions of libvirt are aware of host hotplug issues, but you are correct that there are still lingering bugs (I just found one today in nodeinfo.c).
Could you give me some more info about hotplug support in libvirt ? I tried to find out, but I didn't see any.
I think this is related to (if not the same as) this known kernel bug: https://bugzilla.redhat.com/show_bug.cgi?id=714271
Basically, when the kernel suspends and then resumes, it is not properly restoring descendant cgroup information. Hot unplug of a host cpu is more or less a subset of suspending.
Yes, hot unplug cpu function in kernel is not usable now. But cgroup doesn't know what value a file used to be. As a result, it cannot recover any value in subdirectories.
I am trying to use netlink socket with NETLINK_KOBJECT_UEVENT protocol to listen to cpu hotplug events. But I met a little problem here.
Interesting approach. Is it also possible to use inotify?
I have tried inotify. But since /sys is a special file system, it seems that inotify failed to keep an eye on file systems like /proc, /cgroup or /sys. But netlink works fine.
virNetlinkEventServiceStart() only create a global variable server, and create a NETLINK_ROUTE netlink socket for it.
So if I want to create another different netlink socket, such as NETLINK_KOBJECT_UEVENT, what should I do ?
I'm not sure here, having not really coded much with netlink sockets myself. If you have a patch pending, then post it and we can discuss whether it can be improved.
OK.:) I'll try, but I am still wondering if anybody else could give me some advice. Thank. :)
Shall we make the server global variable a global array ? (It seems there are a lot of work to do.)
Thanks. :)
-- Best Regards, Tang chen