All of lore.kernel.org
 help / color / mirror / Atom feed
From: Gregory Haskins <ghaskins@novell.com>
To: Thomas Gleixner <tglx@linutronix.de>
Cc: Christoph Lameter <cl@linux-foundation.org>,
	Chris Friesen <cfriesen@nortel.com>,
	raz ben yehuda <raziebe@gmail.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	mingo@elte.hu, peterz@infradead.org, maximlevitsky@gmail.com,
	efault@gmx.de, riel@redhat.com, wiseman@macs.biu.ac.il,
	linux-kernel@vger.kernel.org, linux-rt-users@vger.kernel.org
Subject: Re: RFC: THE OFFLINE SCHEDULER
Date: Thu, 27 Aug 2009 18:22:23 -0400	[thread overview]
Message-ID: <4A97071F.5070804@novell.com> (raw)
In-Reply-To: <alpine.LFD.2.00.0908272242500.2888@localhost.localdomain>

[-- Attachment #1: Type: text/plain, Size: 3349 bytes --]

Thomas Gleixner wrote:
> On Thu, 27 Aug 2009, Christoph Lameter wrote:
>> On Thu, 27 Aug 2009, Chris Friesen wrote:
>>
>>> I just went and read the docs.  One of the things I noticed is that it
>>> says that the offlined cpu cannot run userspace tasks.  For our
>>> situation that's a showstopper, unfortunately.
>> It needs to be implemented the right way. Essentially this is a variation
>> on the isolcpu kernel boot option. We probably need some syscall to move
>> a user space process to a bare metal cpu since the cpu cannot be
>> considered online in the regular sense.
> 
> It can. It needs to be flagged as reserved for special tasks and you
> need a separate mechanism to move and pin a task to such a CPU.
> 
>> An isolated cpu can then only execute one process at a time. A process
>> would do all initialization and lock itsresources in memory before going
>> to the isolated processor. Any attempt to use OS facilities need to cause
>> the process to be moved back to a cpu with OS services.
> 
> You are creating a "one special case" operation mode which is not
> justified in my opinion. Let's look at the problem you want to solve:
> 
>   Run exactly one thread on a dedicated CPU w/o any disturbance by the
>   scheduler tick.
> 
> You can move away anything else than the scheduler tick from a CPU
> today already w/o a single line of code change.
> 
> But you want to impose restrictions like resource locking and moving
> back to another CPU in case of a syscall. What's the purpose of this ?
> It does not buy anything except additional complexity.
> 
> That's just the wrong approach. All you need is a way to tell the
> kernel that CPUx can switch off the scheduler tick when only one
> thread is running and that very thread is running in user space. Once
> another thread arrives on that CPU or the single thread enters the
> kernel for a blocking syscall the scheduler tick has to be
> restarted.
> 
> It's not rocket science to fix the well known issues of stopping and
> eventually restarting the scheduler tick, the CPU time accounting and
> some other small details. Such a modification would be of general use
> contrary to your proposed solution which is just a hack to solve your
> particular special case of operation.

I wonder if it makes sense to do something along the lines of the
sched-class...

IOW: What if we adopted one of the following models:

1) Create a new class that is higher prio than FIFO/RR and, when
selected, disables the tick.

2) Modify FIFO so that it disables tick by default...update accounting
info at next reschedule event.

3) Variation of 2..leave FIFO+tick as is by default, but have some kind
of parameter to optionally disable tick if desired.

In a way, we should probably consider (2) independent of this particular
thread.  FIFO doesn't need a tick anyway afaict...only a RESCHED+IPI
truly ever matter here....or am I missing something obvious (probably
w.r.t accounting)?

You could then couple this solution with cpusets (possibly with a little
work to get rid of any pesky per-cpy kthreads) to achieve the desired
effect of interference-free operation.  You wouldn't even have to have
funky rules eluded to above w.r.t. making sure only one userspace thread
is running on the core.

Thoughts?
-Greg


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 267 bytes --]

  reply	other threads:[~2009-08-27 22:22 UTC|newest]

Thread overview: 85+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-08-22 23:27 RFC: THE OFFLINE SCHEDULER raz ben yehuda
2009-08-23  5:21 ` Mike Galbraith
2009-08-23  9:09   ` raz ben yehuda
2009-08-23  7:30     ` Mike Galbraith
2009-08-23 11:05       ` raz ben yehuda
2009-08-23  9:52         ` Mike Galbraith
2009-08-25 15:23           ` Christoph Lameter
2009-08-25 17:56             ` Mike Galbraith
2009-08-25 18:03               ` Christoph Lameter
2009-08-25 18:12                 ` Mike Galbraith
     [not found]                   ` <5d96567b0908251522m3fd4ab98n76a52a34a11e874c@mail.gmail.com>
2009-08-25 22:32                     ` Fwd: " Raz
2009-08-25 19:08                 ` Peter Zijlstra
2009-08-25 19:18                   ` Christoph Lameter
2009-08-25 19:22                   ` Chris Friesen
2009-08-25 20:35                     ` Sven-Thorsten Dietrich
2009-08-26  5:31                     ` Peter Zijlstra
2009-08-26 10:29                       ` raz ben yehuda
2009-08-26  8:02                         ` Mike Galbraith
2009-08-26  8:16                           ` Raz
2009-08-26  8:16                             ` Raz
2009-08-26 13:47                         ` Christoph Lameter
2009-08-26 14:45                           ` Maxim Levitsky
2009-08-26 14:54                             ` raz ben yehuda
2009-08-26 15:06                               ` Pekka Enberg
2009-08-26 15:11                                 ` raz ben yehuda
2009-08-26 15:30                               ` Peter Zijlstra
2009-08-26 15:41                                 ` Christoph Lameter
2009-08-26 16:03                                   ` Peter Zijlstra
2009-08-26 16:16                                     ` Pekka Enberg
2009-08-26 16:20                                     ` Christoph Lameter
2009-08-26 18:04                                       ` Ingo Molnar
2009-08-26 19:15                                         ` Christoph Lameter
2009-08-26 19:32                                           ` Ingo Molnar
2009-08-26 20:40                                             ` Christoph Lameter
2009-08-26 20:50                                               ` Andrew Morton
2009-08-26 21:09                                                 ` Christoph Lameter
2009-08-26 21:15                                                 ` Chris Friesen
2009-08-26 21:37                                                   ` raz ben yehuda
2009-08-27 16:51                                                     ` Chris Friesen
2009-08-27 17:04                                                       ` Christoph Lameter
2009-08-27 21:09                                                         ` Thomas Gleixner
2009-08-27 22:22                                                           ` Gregory Haskins [this message]
2009-08-28  2:15                                                             ` Rik van Riel
2009-08-28  3:33                                                               ` Gregory Haskins
2009-08-28  3:33                                                                 ` Gregory Haskins
2009-08-28  4:27                                                                 ` Gregory Haskins
2009-08-28  4:27                                                                   ` Gregory Haskins
2009-08-28 10:26                                                                   ` Thomas Gleixner
2009-08-28 18:57                                                                     ` Christoph Lameter
2009-08-28 19:23                                                                       ` Thomas Gleixner
2009-08-28 19:52                                                                         ` Christoph Lameter
2009-08-28 20:00                                                                           ` Thomas Gleixner
2009-08-28 20:21                                                                             ` Christoph Lameter
2009-08-28 20:34                                                                               ` Thomas Gleixner
2009-08-31 19:19                                                                                 ` Christoph Lameter
2009-08-31 17:44                                                                                   ` Roland Dreier
2009-09-01 18:42                                                                                     ` Christoph Lameter
2009-09-01 16:15                                                                                       ` Roland Dreier
2009-08-29 17:03                                                                               ` jim owens
2009-08-31 19:22                                                                                 ` Christoph Lameter
2009-08-31 15:33                                                                                   ` Peter Zijlstra
2009-09-01 18:46                                                                                     ` Christoph Lameter
2009-08-28  6:14                                                             ` Peter Zijlstra
2009-08-27 23:51                                                           ` Chris Friesen
2009-08-28  0:44                                                             ` Thomas Gleixner
2009-08-28 21:20                                                               ` Chris Friesen
2009-08-28 21:20                                                                 ` Chris Friesen
2009-08-28 18:43                                                           ` Christoph Lameter
2009-08-27 21:33                                                       ` raz ben yehuda
2009-08-27 22:05                                                         ` Thomas Gleixner
2009-08-28  8:38                                                           ` raz ben yehuda
2009-08-28 10:05                                                             ` Thomas Gleixner
2009-08-28 13:25                                                             ` Rik van Riel
2009-08-28 13:37                                                               ` jim owens
2009-08-28 15:22                                                               ` raz ben yehuda
2009-08-26 21:34                                                 ` Ingo Molnar
2009-08-27  2:55                                                   ` Frank Ch. Eigler
2009-08-26 21:34                                                 ` raz ben yehuda
2009-08-26 21:08                                               ` Ingo Molnar
2009-08-26 21:26                                                 ` Christoph Lameter
2009-08-26 21:32                                             ` raz ben yehuda
2009-08-27  7:15                                           ` Mike Galbraith
2009-08-26 15:37                               ` Chetan.Loke
2009-08-26 15:21                       ` Pekka Enberg
2009-08-25 21:09                   ` Éric Piel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4A97071F.5070804@novell.com \
    --to=ghaskins@novell.com \
    --cc=akpm@linux-foundation.org \
    --cc=cfriesen@nortel.com \
    --cc=cl@linux-foundation.org \
    --cc=efault@gmx.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rt-users@vger.kernel.org \
    --cc=maximlevitsky@gmail.com \
    --cc=mingo@elte.hu \
    --cc=peterz@infradead.org \
    --cc=raziebe@gmail.com \
    --cc=riel@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=wiseman@macs.biu.ac.il \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.