Re: new IRQ scalability changes in 2.3.48

From: Helge Hafting (
Date: Thu Mar 16 2000 - 08:40:07 EST

> no, they would be bigger because with Linus' suggestion the UP kernel uses
> spinlocks to make the kernel fully preemptible - we will be able to
> reschedule the kernel in a preemptive way at any point that does not hold
> any spinlock (or lock). The SMP kernel would still reschedules in a
> 'cooperative' way, because spinlocks would not have this 'collect total
> current spinlock count' property (and thus preempting kernel space would
> not be allowed).

I guess I am misunderstanding something, or surely someone else would
up with this a long time ago:

UP can be changed to reschedule whenever no spinlocks are held, because
is a global count of locks held that can be checked cheaply.
SMP don't have such a count, as the count would pingpong from cache to

But do we need a total count? Seems to me each processor may have a
count how
many locks it holds - independent of other processors. And if *this*
don't hold any locks then it ought to be able to reschedule even if
another processor hold some lock? The new process shceduled may try to
get that lock
and block, but the current process may do that too.

Helge Hafting

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
Please read the FAQ at

This archive was generated by hypermail 2b29 : Thu Mar 23 2000 - 21:00:19 EST