Messages in this thread |  | | | Date | Sat, 9 Jan 2010 20:50:04 -0500 | | Subject | Re: 2.6.33-rc2: Xen/Guest switching to user mode with no user page tables | | From | Brian Gerst <> |
| |
On Fri, Jan 8, 2010 at 4:50 PM, Cyrill Gorcunov <gorcunov@gmail.com> wrote: > On Thu, Jan 07, 2010 at 11:30:46AM -0800, Christian Kujau wrote: >> On Thu, 7 Jan 2010 at 11:19, H. Peter Anvin wrote: >> > 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. >> >> To be honest, bisection was kinda hazy in the last step (see my previous >> mails), but from looking at the bisection log, it's definitely one of >> your/Brians commit (sorry!), so it may be 3bd95dfb in combination with the >> other 4 changes. However, only with 3bd95dfb applied, the DomU wouldn't >> start at all. With the only other patches applied, the DomU would start, >> and then die with a GPF. >> >> Christian. >> -- >> BOFH excuse #191: >> >> Just type 'mv * /dev/null'. >> > > OK, perhaps the patch below is not _that_ stupid so I > would like to get it reviewed and tested if possible. > Just a thought. Wonder if it help but definitely it will > not harm anyway :) > > -- Cyrill > --- > x86: kernel_thread -- initialize SS to a known state > > Before the kernel_thread was converted into "C" we had > pt_regs::ss set to __KERNEL_DS (by SAVE_ALL asm macro). > > Though I must admit I didn't find any *explicit* load of > %ss from this structure the better to be on a safe side > and set it to a known value.
It shouldn't make any difference, but maybe Xen is doing something subtle. In 64-bit mode the %ss segment register is supposed to be ignored, which is why it is left set to zero. It works properly on real hardware. It can't hurt anything to put __KERNEL_DS back in, but I'd just like to know why Xen requires it if this does fix it.
-- Brian Gerst -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|  |