[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] 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
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |