
On Wed, Sep 05, 2012 at 05:19:22PM +0800, Tang Chen wrote:
Hi Viktor,
On 09/05/2012 04:54 PM, Viktor Mihajlovski wrote:
I posted a comment some time ago about that. If you do not mount the cpuset controller, i.e for RHEL 6 you delete the cpuset line from /etc/cgconfig, the CPU affinity isn't controlled by cgroups any more but uses the old mechanism, which works as expected: take a host CPU offline and it will be removed from the process CPU mask and will show up again after onlining the host CPU. The only issue I currently see is that the display of virsh vcpuinfo and vcpupin is somewhat strange. Using taskset will however show the the correct affinity.
I suggest that you try out that approach.
I saw your comment before. You are quite right. :)
But the situation here is there are some other features in libvirt using cpuset. For example, emulator-pin feature. If we remove cpuset in the system, other features could be unusable.
The emulator pinning code should be made to use sched_setaffinity() when the cpuset controller is not available, just as we do for the vCPU pinning.
And more, I found different cgroups are widely used in libvirt now. I don't think removing cgroups from system is a good enough idea, though it can be a work around.
What do you think? :)
Either the kernel fixes the broken cpuset behaviour, or we have to recommend that people don't use it. Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|