2004-03-17 21:30:44

by Chris Friesen

[permalink] [raw]
Subject: status of PREEMPT and SMP together?


Some of the Kconfig files (ppc/ppc64) seem to be of the opinion that
there are races when both SMP and PREEMPT are enabled.

Is this still the case, or are they out of date?

Thanks,

Chris

--
Chris Friesen | MailStop: 043/33/F10
Nortel Networks | work: (613) 765-0557
3500 Carling Avenue | fax: (613) 765-2986
Nepean, ON K2H 8E9 Canada | email: [email protected]


2004-03-17 22:00:43

by Robert Love

[permalink] [raw]
Subject: Re: status of PREEMPT and SMP together?

On Wed, 2004-03-17 at 16:30, Chris Friesen wrote:

> Some of the Kconfig files (ppc/ppc64) seem to be of the opinion that
> there are races when both SMP and PREEMPT are enabled.
>
> Is this still the case, or are they out of date?

Hrm, I thought I sent Anton a patch to fix that.

The comment is out of date. Technically speaking, the potential
SMP+PREEMPT races exist on UP+PREEMPT, too.

Running SMP+PREEMPT on a 4-way here :-)

Robert Love


2004-03-17 23:37:36

by Anton Blanchard

[permalink] [raw]
Subject: Re: status of PREEMPT and SMP together?


> Hrm, I thought I sent Anton a patch to fix that.

Sorry, I had planned to send it once Linus got over his deep freeze mode
but forgot. Here it is.

Now that the option is selectable I marked it BROKEN for the moment
since we havent got around to doing the low level exception bits yet...
Do you have a G5 yet? :)

> The comment is out of date. Technically speaking, the potential
> SMP+PREEMPT races exist on UP+PREEMPT, too.
>
> Running SMP+PREEMPT on a 4-way here :-)

--

From: Robert Love <[email protected]>

arch/ppc64/Kconfig's entry for CONFIG_PREEMPT is missing the description
after the "bool" statement, so the entry does not show up.

Also, the help description mentions a restriction that is not [any
longer] true.

===== arch/ppc64/Kconfig 1.50 vs edited =====
--- 1.50/arch/ppc64/Kconfig Sun Mar 7 18:05:28 2004
+++ edited/arch/ppc64/Kconfig Thu Mar 18 10:33:17 2004
@@ -174,14 +179,12 @@
depends on DISCONTIGMEM

config PREEMPT
- bool
+ bool "Preemptible Kernel"
+ depends on BROKEN
help
This option reduces the latency of the kernel when reacting to
real-time or interactive events by allowing a low priority process to
be preempted even if it is in kernel mode executing a system call.
- Unfortunately the kernel code has some race conditions if both
- CONFIG_SMP and CONFIG_PREEMPT are enabled, so this option is
- currently disabled if you are building an SMP kernel.

Say Y here if you are building a kernel for a desktop, embedded
or real-time system. Say N if you are unsure.

2004-03-18 00:25:00

by Robert Love

[permalink] [raw]
Subject: Re: status of PREEMPT and SMP together?

On Wed, 2004-03-17 at 18:36, Anton Blanchard wrote:

> Sorry, I had planned to send it once Linus got over his deep freeze mode
> but forgot. Here it is.

Thanks.

> Now that the option is selectable I marked it BROKEN for the moment
> since we havent got around to doing the low level exception bits yet...
> Do you have a G5 yet? :)

Unfortunately, no. ;-)

I think the low-level bits are there for PPC32, right? So just PPC64 is
missing the kernel entry/exit and interrupt changes?

Robert Love