Re: 2.6 must-fix list, v2

Robert Love (rml@tech9.net)
15 May 2003 11:32:24 -0400


On Thu, 2003-05-15 at 05:19, Shaheed R. Haque wrote:

> These are the distros I am interested in too. I knew it was in RH AS/ES, but
> are you saying it is in RH9.0? That would be good news.

No, I am saying with luck it will be in the next RH release.

> On the technical point, I tried out taskset in rc.sysinit, and as you said, it
> works just fine.

Good :)

> On reflection, I feel that editing rc.sysinit is not the right
> answer given the confidence/competence level of our customers' typical
> sysadmins: but I can see that a carefully crafted rc5.d/S00aaaaa script could
> set the affinity of the executing shell, and its parent(s) upto init to fix all
> subsequent rcN.d children in the desired manner.
>
> I do suspect that other commercial users will also baulk at editing rc.sysint,
> and so have to brew the same rcN.d solution. Now, the rcN.d script hackery
> would be greatly simplified if taskset had a mode of "set the affinity of the
> identified process, and all its parent processes upto init". Would you accept a
> patch to taskset along those lines?

It is racey to do this, so its something that should remain a hack and
not part of taskset, I think.

If you do it in rc.d, you don't need to set all the parents. rc.d is the
first thing run, so if you do it at the top of the script, nothing else
is running. Just put:

taskset <mask> 1
taskset <mask> $$

at the top of rc.d.

Another consideration is modifying init (and hopefully having said
changes merged back). Init could call sched_setaffinity() when it is
first created, based on a setting in /etc/inittab or a command line
parameter passed during boot.

My reservation is against doing it in the kernel. I do not particularly
care _how_ its done in user-space.

Robert Love

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/