Re: possible CPU bug and request for Intel contacts

From: Ingo Molnar
Date: Sun Feb 13 2005 - 15:12:13 EST



* Seth, Rohit <rohit.seth@xxxxxxxxx> wrote:

> On a little different note, while running the 4G-4G kernel on our
> machine, we saw occasional hangs. Those are root caused to the fact
> that this kernel was first chaging the stack pointer from virtual
> stack to kernel and then changing the CR3 to that of kernel. Any
> interrupt between these two instructions will result in those hangs as
> the interruption handler will execute with user's CR3(as the kernel
> thinks that it is already in kernel because of the value of esp).
> Swapping the order, first loading the CR3 with kernel and then
> switching the stack to kernel fixes this issue. Venki will generate
> that patch and send to lkml.

i'm not sure what you mean. Here's the relevant 4:4 code from Fedora:

#define __SWITCH_KERNELSPACE \
...
movl %edx, %cr3; \
movl %ebx, %esp; \

i.e. we _first_ load cr3 with the kernel pagetable value, then do we
switch esp to the real kernel stack.

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