|
|
|
|
|
|
|
|
|
|
xen-devel
RE: [Xen-devel] [PATCH] Fixing PAE SMP dom0 hang at boot time
Ryan Harper wrote:
> * Nakajima, Jun <jun.nakajima@xxxxxxxxx> [2005-11-15 19:56]:
>> This patch fixes a hang with PAE SMP dom0 on big SMP machines. As
>> far as I tested, 8-way PAE SMP dom0 boots fine on >=8-way machines.
>> The fix is not PAE specific, and I made the equivent changes to
>> x86_64 xenlinux. Tested on both PAE and x86_64 dom0 xenlinux on
>> >=8-way SMP machines with
>>> 6GB.
>
> Jun, could you explain the patch a bit more?
>
> Why wouldn't we want to initialize the per-cpu gdt area for cpus other
> than CPU0 ?
>
> - cpu_gdt_init(&cpu_gdt_descr[cpu]);
> + if (!cpu)
> + cpu_gdt_init(&cpu_gdt_descr[cpu]);
CPU0 creates the (virutal) gdt for other CPUs in advance at
VCPUOP_initalise, and the propoer selector values are set up at the
same. So it's redundant. It also avoids spurious page faults caused by
make_page_readonly() against the gdt page.
>
>
> And why would we need to take interrupts between loading esp0 and LDT?
>
> load_esp0(t, thread);
>
> + local_irq_enable();
> +
> load_LDT(&init_mm.context);
I thought it's required to get IPI working (for load_LDT and the other
on-going flush TLB actitivies), but looks bogus after sleeping on it.
I'm pretty sure that it resolves the hang, and it's hiding an underlying
bug.
Jun
---
Intel Open Source Technology Center
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|