tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: Kernel preemption



Andrew Doran wrote:
Hi,

The below patch implments in-kernel preemption for the i386 port. By default
LWPs will only preempt in kernel if they are in a real-time priority band.
The priority level is tunable via sysctl. Setting it to zero seems to shake
out a lot of interesting bugs.

I believe that. curcpu() must be cached in a local variable, for
example.

It needs a bit more work, for stuff like FPU state, and I also want to
extend it to amd64. I think it should not be enabled by default until the
bugs it exposes are shaken out. Any comments?

http://www.netbsd.org/~ad/preempt.diff

In pmap.c, pmap_copy_page() shouldn't be this

+       id = cpu_number();
+       kpreempt_disable();

changed to

+       kpreempt_disable();
+       id = cpu_number();

as you do in pmap_zero_page() ?

Christoph


Home | Main Index | Thread Index | Old Index