Re: Inquiry: Should we remove "isolcpus= kernel boot option? (mayhave realtime uses)

From: Max Krasnyansky
Date: Mon Jun 02 2008 - 23:32:29 EST




Ingo Oeser wrote:
> Hi Max,
> Hi Peter,
>
> On Tuesday 03 June 2008, Max Krasnyansky wrote:
>> Ingo, I just wanted to elaborate on what Peter is saying. That CPU will still
>> have to be _booted_ properly. It may be used for hard- and soft- interrupt
>> processing, workqueues (internal kernel queuing mechanism) and kernel timers.
>
> Oh! Didn't know that user process scheduling is so much
Not sure what you meant here. Stuff that I listed has nothing to do with user
process scheduling.

>> In your particular case you're much much much better off with doing
>> echo 0 > /sys/devices/system/cpuN/online
>> either during initrd stage or as a first init script.
>> That way bad cpu will be _completely_ disabled.
>
> The initrd is from the distribution. I have no sane way to change it
> fast and permanent. Can I change the initrd and still have a certified
> RHEL or SLES? Are there initrd hooks, which survive packet installation?
That's why I mentioned "first init" script. You can create a simple init.d
compliant script that runs with priority 0 (see /etc/init.d/network for
example). That should be early enough.

> I would really appreciate some way to keep the kernel from using
> a CPU at all to do fault isolation. If possible not even booting it.
How does isolcpu= boot option helps in this case ?
I suppose the closes option is maxcpus=. We can probably add ignorecpus= or
something to handle your use case but it has nothing to do with isolcpus=.

> Bootparameters survived all distro fiddling so far. I love them!
So do custom init.d scripts.

>
> Try to convince a hardware vendor, that you don't have a software bug.
> Try to convince him that you didn't break the hardware by swapping it around.
>
> So I'll ACK removing isolcpus, if we get a better replacement boot option.
I think you're missing the point here. It's like saying
"Lets not switch to electric cars because I use gasoline to kill weeds".

As I mentioned before, cpus listed in the isolcpus= boot option will still
handle hard-/soft- irqs, kernel work, kernel timers. You are much better off
using cpu hotplug (ie putting bad cpu offline). Feel free to propose
ignorecpus= option in a separate thread.

Max





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