Re: RFC: THE OFFLINE SCHEDULER

Mike Galbraith
2009-08-23T07:30:25Z

On Sun, 2009-08-23 at 12:09 +0300, raz ben yehuda wrote:
> On Sun, 2009-08-23 at 07:21 +0200, Mike Galbraith wrote:

> > 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.

Why not? Why can't I run an RT kernel with an RTOS guest and let it do
it's deadline management thing?

> 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.

Hm. That appears to be a self negating argument.

> 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.

Which still looks like OS-fu to me.

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

If either one can diddle the others ram, they are in no way isolated or
protected, so can't even defend against their own bugs.

What protects a hard RT deadline from VM pressure, memory bandwidth
consumption etc etc? Looks to me like it's soft RT, because you can't
control the external variables.

> 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.

If I can route interrupts such that only say network interrupts are
delivered to my cset/vm core, and the guest OS is a custom high speed
low drag application, I just don't see much difference.

> 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.

Aaaaanyway, I'm not saying it's not a useful thing to do, just saying I
don't see any reason you can't get essentially the same result with
what's in the kernel now.

-Mike