linux-rt-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: raz ben yehuda <raziebe@gmail.com>
To: Mike Galbraith <efault@gmx.de>
Cc: riel@redhat.com, mingo@elte.hu, peterz@infradead.org,
	andrew motron <akpm@osdl.org>,
	wiseman@macs.biu.ac.il, lkml <linux-kernel@vger.kernel.org>,
	linux-rt-users@vger.kernel.org
Subject: Re: RFC: THE OFFLINE SCHEDULER
Date: Sun, 23 Aug 2009 12:09:11 +0300	[thread overview]
Message-ID: <1251018551.3810.35.camel@raz> (raw)
In-Reply-To: <1251004897.7043.70.camel@marge.simson.net>

On Sun, 2009-08-23 at 07:21 +0200, Mike Galbraith wrote:
> On Sun, 2009-08-23 at 02:27 +0300, raz ben yehuda wrote:
> > 			The Open University of Israel
> > 		  Department of Mathematics and computer science	
> > 			
> > 		  	 	FINAL PAPER
> > 			     OFFLINE  SCHEDULER
> > 
> > 
> > 
> > OFFSCHED is a platform aimed to assign an assignment to an offloaded processor.An offloaded processor is a processor that is hot un-plugged from the operating system.
> > 
> > Description
> > 
> > In today’s computer world, we find that most processors have several embedded cores and hyper-threading. Most programmers do not really use these powerful features and let the operating system do the work.
> > At most, a programmer will bound an application to a certain processor or assign an interrupt to a different processor. At the end, we get system busy in maintaining tasks across processors, balancing interrupts, flushing TLBs and DTLBs using atomic operations even when not needed and worst of all, spin locks across processors in vein; and the more processors the merrier. I argue that in some cases, part of this behavior is due to fact the multiple core operating system is not service oriented but a system oriented. There is no easy way to assign a processor to do a distinct service, undisturbed, accurate, and fast as long as the processor is an active part of an operating system and still be a part of most of the operating system address space.
> > 
> > OFFSCHED Purpose
> > 
> > The purpose of the OFFSCHED is to create a platform for services. For example, assume a firewall is being attacked; the Linux operating system will generate endless number of interrupts and/or softirqs to analyze the traffic and throw out bad packets. This is on the expense of “good” packets. Have you ever tried to “ssh” to an attacked machine? Who protects the operating system ?
> > What if we can simply do the packet analysis outside the operating system, without being interrupted ?
> > Why not assign a core to do only “firewalling”? Or just routing? Design a new type of Real Time system? Maybe assign it as an ultra accurate timer? Create a delaying service that does not just spin? Offload a TCP stack? perhaps a new type of a locking scheme? New type bottom-halves? Debug a running kernel through an offloaded processor? Maybe assign a GPU to do other things than just graphics?
> > Amdahl Law teaches us that linear speed-up is not very feasible , so why not spare a processor to do certain tasks better?
> > Technologically speaking, I am referring to the Linux kernel ability to virtually hot unplug a (SMT) processor ;but instead of letting it wonder in endless “halts”, assign it a service.
> 
> Seems to me this boils down to a different way to make a SW box in a HW
> box, which already exists.  What does this provide that  partitioning a
> box with csets and virtualization doesn't?
OFFSCHED does not compete with cpu sets nor virtualization.it is
different.

1. Neither virtuallization nor cpu sets provide hard real time. OFFSCHED
does this with a little cost and no impact on the OS.OFFSCHED is not
just accurate , it is also extremely fast,after all, it is NMI'ed
processor.

2. OFFSCHED has a access to every piece of memory in the system. so it
can act as a centry for the system, or use linux facilities. Also, the
kernel can access OFFSCHED memory, it is the same address space.

3. OFFSCHED can improve the linux OS ( NAPI,OFFSCHED firewall,RTOP ),
while a guest OS cannot.

4. cpu sets cannot replace softirqs and hardirqs. OFFSCHED can. cpu sets
deals with kernel threads and user space threads. in OFFSCHED we use
offlets. 

5. cpu sets and  virtualization are services provided by the kernel to
the "system".who serves the kernel ? who protects the kernel ? 

6. offlets gives the programmer full control over an entire processor.
no preemption, no interrupts, no quiesce. you know what happens , and
when it happens.

I have this hard real time system several years on my SMP/MC/SMT
machines. It serves me well. The core of OFFSCHED patch was 4 lines.
So,i simply compile a ***entirely regular*** linux bzImage and that's
it. It did not mess with drivers, spinlocks, softirqs ..., OFFSCHED just
directed the cpu_down to my own hard real time piece of code. The rest
of the kernel remained the same.  

> 	-Mike
> 

       reply	other threads:[~2009-08-23  9:09 UTC|newest]

Thread overview: 79+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1250983671.5688.21.camel@raz>
     [not found] ` <1251004897.7043.70.camel@marge.simson.net>
2009-08-23  9:09   ` raz ben yehuda [this message]
2009-08-23  7:30     ` RFC: THE OFFLINE SCHEDULER 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 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
2009-08-28  2:15                                                             ` Rik van Riel
2009-08-28  3:33                                                               ` 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 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=1251018551.3810.35.camel@raz \
    --to=raziebe@gmail.com \
    --cc=akpm@osdl.org \
    --cc=efault@gmx.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-rt-users@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=peterz@infradead.org \
    --cc=riel@redhat.com \
    --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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).