public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Inquiry: Should we remove "isolcpus= kernel boot option? (may have realtime uses)
@ 2008-06-02  2:30 Paul Jackson
  2008-06-02 16:42 ` Dimitri Sivanich
  2008-06-02 22:35 ` Inquiry: Should we remove "isolcpus= kernel boot option? (may have realtime uses) Ingo Oeser
  0 siblings, 2 replies; 60+ messages in thread
From: Paul Jackson @ 2008-06-02  2:30 UTC (permalink / raw)
  To: linux-kernel
  Cc: Con Kolivas, Derek L. Fults, devik, Dimitri Sivanich,
	Dinakar Guniguntala, Emmanuel Pacaud, Frederik Deweerdt,
	Ingo Molnar, Matthew Dobson, Max Krasnyansky, Nick Piggin,
	rostedt, Oleg Nesterov, Paul E. McKenney, Paul Menage,
	Peter Zijlstra, Randy.Dunlap, rostedt, suresh.b.siddha,
	Steven Rostedt, Thomas Gleixner


(Aside to the RealTime folks -- is there a 'realtime'
email list which I should include in this discussion?)

The kernel has a "isolcpus=" kernel boot time parameter.  This
parameter isolates CPUs from scheduler load balancing, minimizing the
impact of scheduler latencies on realtime tasks running on those CPUs.

Questions:
==========

    Do you, or someone you know, use "isolcpus="?

    Can we remove it?

    Should we remove it?

    Should we first deprecate it somehow, for a while, before
    removing it?
    
Background:
===========

In July 2004, Dimitri Sivanich <sivanich@sgi.com> proposed
"isolcpus=" for realtime isolation of CPUs from the scheduler
(http://lkml.org/lkml/2004/7/22/97).

    Ingo said of it "looks good", and Nick said "Cool."

    It appeared in 2.6.9 Linux kernels.

    It made Item #6 of Zack Brown's Kernel Traffic #272, dated Sept
    5, 2004.

    It also made LWN.net Weekly Edition for October 28, 2004, at
    http://lwn.net/Articles/107490/bigpage.
    
    Dimitri's fifteen minutes of fame had begun ;).

In April 2005, Dinakar Guniguntala <dino@in.ibm.com> proposed
dynamic scheduler domains (http://lkml.org/lkml/2005/4/18/187).

    It was immediately recognized, by Nick that this new work was a
    "complete superset of the isolcpus= functionality."

    Dinakar concurred, responding that he "was hoping that by the
    time we are done with this, we would be able to completely get
    rid of the isolcpus= option."

    To which I (pj) replied "I won't miss it.  Though, since it's
    in the main line kernel, do you need to mark it deprecated for
    a while first?"

Since then, dynamic scheduler domains and cpusets have seen much
work.  See for example http://lkml.org/lkml/2007/9/30/29, which
added the sched_load_balance flag to cpusets.

However nothing much has changed with regard to the "isolcpus=" kernel
boot time parameter.  This parameter is still there.  In October of
2006, Derek Fults <dfults@sgi.com> did extend the syntax of the CPU
list argument to the "isolcpus=" parameter to handle CPU ranges.

Some of us (perhaps not including Ingo) tend to agree "isolcpus="
should go, but I am still recommending that we "deprecate" it in some
fashion for a while first, as I am usually opposed to suddenly
removing visible kernel features, because that breaks things.

Recently:
=========

Recently, Peter Zijlstra <a.p.zijlstra@chello.nl> and Max Krasnyansky
<maxk@qualcomm.com> have been advocating removing the "isolcpus="
option.  See for example Peter's http://lkml.org/lkml/2008/2/27/378
or Max's http://lkml.org/lkml/2008/5/27/356.  I've been resisting,
still advocating that we deprecate it first, before removing it,
if that is we even agree to remove it.

Next Step:
==========

This message begins the next steps, which are:

 1) Survey the current usage of "isolcpus=".  If we find evidence
    of usage, then this should delay, or even argue against, the
    removal of this feature.

 2) Alert potential users of the change being considered here,
    so that they can plan their work to adapt if we decided to
    deprecate or remove the "isolcpus=" kernel boot parameter.

My recommendation (which may change with feedback from this inquiry)
is be to add a kernel printk, once at boot, issuing a KERN_WARN that
isolcpus is deprecated, if isolcpus was specified.  Then in some
future release, remove isolcpus (and the warning).

One possible reason for keeping "isolcpus=" could be that it is
available even when cpusets is not configured into kernel.  I don't
know if that is a case that is valuable to some or not.

-- 
                  I won't rest till it's the best ...
                  Programmer, Linux Scalability
                  Paul Jackson <pj@sgi.com> 1.940.382.4214

^ permalink raw reply	[flat|nested] 60+ messages in thread

end of thread, other threads:[~2009-05-08  2:48 UTC | newest]

Thread overview: 60+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-06-02  2:30 Inquiry: Should we remove "isolcpus= kernel boot option? (may have realtime uses) Paul Jackson
2008-06-02 16:42 ` Dimitri Sivanich
2008-06-02 18:39   ` Max Krasnyansky
2008-06-02 21:41     ` Dimitri Sivanich
2008-06-02 21:59       ` Max Krasnyansky
2008-06-03 14:40         ` Dimitri Sivanich
2008-06-03 17:57           ` Max Krasnyanskiy
2008-06-04 14:00           ` Dimitri Sivanich
2008-06-04 18:07             ` Stop machine threads are getting preemted by the rt period enforcement Max Krasnyansky
2008-06-04 18:18               ` Peter Zijlstra
2008-06-04 18:24                 ` Max Krasnyansky
2008-06-04 18:55                   ` Peter Zijlstra
2008-06-04 20:14                     ` Max Krasnyansky
2008-06-02 22:35 ` Inquiry: Should we remove "isolcpus= kernel boot option? (may have realtime uses) Ingo Oeser
2008-06-02 22:45   ` Peter Zijlstra
2008-06-02 23:04     ` Max Krasnyansky
2008-06-02 23:55       ` Ingo Oeser
2008-06-03  3:32         ` Max Krasnyansky
2008-06-03 23:47           ` Max Krasnyanskiy
2008-06-04  0:41             ` Paul Jackson
2008-06-04  4:32               ` Max Krasnyansky
2008-06-04  4:47                 ` Paul Jackson
2008-06-04 12:18                 ` Andi Kleen
2008-06-04 17:41                   ` Paul Jackson
2008-06-04 18:29                     ` Max Krasnyansky
2008-06-04 18:56                       ` Peter Zijlstra
2008-06-04 19:34                         ` Max Krasnyansky
2008-06-04 18:58                       ` Paul Jackson
2008-06-04 19:31                         ` Max Krasnyansky
2008-06-04 19:37                           ` Paul Jackson
2008-06-04 19:45                             ` Max Krasnyansky
2008-06-04 20:05                       ` Andi Kleen
2008-06-04 20:23                         ` Paul Jackson
2008-06-04 20:03                     ` Andi Kleen
2008-06-04 20:16                       ` Paul Jackson
2008-06-04 20:33                         ` Andi Kleen
2008-06-04 20:38                           ` Paul Jackson
2008-06-04 21:16                             ` Max Krasnyansky
2008-06-04 21:17                               ` Paul Jackson
2008-06-04 21:20                                 ` Max Krasnyansky
2008-06-04 21:26                                   ` Paul Jackson
2008-06-04  1:18             ` Nick Piggin
2008-06-04  3:00               ` Max Krasnyansky
2008-06-04 16:18             ` Ingo Oeser
2008-06-04 17:47               ` Max Krasnyansky
2008-06-03  6:03     ` Nick Piggin
2008-06-04  9:58       ` Mark Hounschell
2008-06-04 17:26         ` Paul Jackson
2008-06-04 21:00           ` Mark Hounschell
2008-06-04 21:03             ` Paul Jackson
2008-06-04 19:26         ` Max Krasnyansky
2008-06-04 20:25           ` Peter Zijlstra
2008-06-04 21:44             ` Michael Trimarchi
2008-06-04 21:52               ` Peter Zijlstra
2008-06-05 11:16                 ` Michael Trimarchi
2008-06-05 12:07                   ` Peter Zijlstra
2008-06-05 14:57                     ` Michael Trimarchi
2009-05-08  2:48               ` GeunSik Lim
2008-06-05 11:44             ` Mark Hounschell
2008-06-06 22:28               ` Max Krasnyanskiy

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox