Re: Anti-Linux SMP FUD

Oliver Xymoron (oxymoron@waste.org)
Sat, 30 Jan 1999 13:34:51 -0600 (CST)


On Sat, 30 Jan 1999, Gregory R. Warnes wrote:

> OK. It seems that a prominant companies field rep has read some of the
> linux FUD and believed it:
>
> > My limited understanding of Linux is:
> >
> > A. The kernel doesn't implement kernel-mode threads.

Kswapd and knfsd are kernel-mode "threads", although under Linux, threads
are just a simple variant of processes. This is a feature.

> > B. With Linux, the scheduler can't preempt the kernel, which is
> > needed for the scheduler to divide CPU time among the threads.

This betrays a clear lack of understanding of how the Linux kernel (and
UNIX and kernels in general work). See Bach's classic _Design of the UNIX
Operating System_. Yes, processes running in kernel mode are not
preemptively rescheduled. No, it's not at all necessary (the kernel
routines reschedule themselves) and it's not really especially desirable
(added complexity, etc.).

> > C. Lastly, with Linux, the kernel is not reentrant. In other
> > words, no matter how many processors are in a system, only one processor
> > can execute code at a time.

As above, a clear lack of understanding about kernels. Again, see the Bach
book. The kernel is reentrant. Even on single processor systems. In fact,
most programs spend most of their time in the kernel (albeit sleeping).
The kernel is more like a shared library than a process.

This misunderstanding probably relates to a misunderstanding of the way
multiprocessor systems work. There are two basic paradigms: master/slave
and symmetric. Master/slave systems runs the kernel on only one processor,
and avoids the more complicated concurrency issues presented by
simultaneous execution. Symmetric systems (like Linux, NT, etc) use some
form of semaphor to create "critical sections" - sections of code
executable on only one processor at a time. All systems that run on
multiple processors must use some form of critical section to protect
shared resources.

--
 "Love the dolphins," she advised him. "Write by W.A.S.T.E.." 

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/