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 :|