Re: 2.6.33-rc2: Xen/Guest switching to user mode with no user pagetables

From: H. Peter Anvin
Date: Thu Jan 07 2010 - 14:20:13 EST


On 01/06/2010 04:43 AM, Christian Kujau wrote:
>
> I've run a few more bisections and this is where I have arrived now:
>
> http://nerdbynature.de/bits/2.6.33-rc2/xen/bisect/git-bisect_finished.log
>
> ...with the last iteration being:
>
>
> # git bisect good
> 3bd95dfb182969dc6d2a317c150e0df7107608d3 is the first bad commit
> commit 3bd95dfb182969dc6d2a317c150e0df7107608d3
> Author: Brian Gerst <brgerst@xxxxxxxxx>
> Date: Wed Dec 9 12:34:40 2009 -0500
>
> x86, 64-bit: Move kernel_thread to C
>
> Prepare for merging with 32-bit.
>
> Signed-off-by: Brian Gerst <brgerst@xxxxxxxxx>
> LKML-Reference: <1260380084-3707-2-git-send-email-brgerst@xxxxxxxxx>
> Signed-off-by: H. Peter Anvin <hpa@xxxxxxxxx>
>
> :040000 040000 30b5dd4d6888694ca2967893ef3e662461fe9978
> 0bb5fb33914aac10aaf0344fb8cff596378be52a M arch
>
>
> @Brian, hpa: I've Cc'ed you on this one, here's what I'm whining about:
> http://lkml.org/lkml/2010/1/5/489
>
>
> Please let me know if this makes sense or if the bisection looks
> funny/invalid.
>

The big difference between the code before and after this commit is that
before, kernel_thread() would initialize the pt_regs structure with
whatever state happened to be passed into it by the caller, whereas
afterwards it is initialized to zero. It's unclear to me why that would
break Xen, but therein lies the problem with paravirtualization... it's
not actually running the same thing the real architecture.

-hpa

--
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/