[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <6599ad830710031110r1a74eafej56f20cc33e72ac81@mail.gmail.com>
Date: Wed, 3 Oct 2007 11:10:58 -0700
From: "Paul Menage" <menage@...gle.com>
To: "Paul Jackson" <pj@....com>
Cc: akpm@...ux-foundation.org, nickpiggin@...oo.com.au,
a.p.zijlstra@...llo.nl, serue@...ibm.com, clg@...ibm.com,
linux-kernel@...r.kernel.org, ebiederm@...ssion.com,
rientjes@...gle.com, svaidy@...ux.vnet.ibm.com, xemul@...nvz.org,
containers@...ts.osdl.org, balbir@...ux.vnet.ibm.com
Subject: Re: [PATCH] task containersv11 add tasks file interface fix for cpusets
On 10/3/07, Paul Jackson <pj@....com> wrote:
>
> Yes, something in user space has to do it. It's part of the
> kernel-user cpuset API. If you change a cpuset's 'cpus', then
> you have to rewrite each pid in its 'tasks' file back to that
> 'tasks' file in order to get that 'cpus' change to be applied
> to the task struct cpus_allowed of each task, and thereby visible
> to the scheduler.
What's the rationale for this?
Given that later in cpusets.txt you say:
>If hotplug functionality is used
>to remove all the CPUs that are currently assigned to a cpuset,
>then the kernel will automatically update the cpus_allowed of all
>tasks attached to CPUs in that cpuset to allow all CPUs
why can't the same thing be done when changing the 'cpus' file manually.
What's wrong with, in update_cpumask(), doing a loop across all
members of the cgroup and updating their cpus_allowed fields?
The existing cpusets API is broken, since a new child can always be
forked between reading the tasks file and doing the writes.
Paul
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists