Port-xen archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pae MP on cherry-xenmp



>>>>> "mhitch" == Michael L Hitch <mhitch%lightning.msu.montana.edu@localhost> 
>>>>> writes:

    mhitch> On Tue, 30 Aug 2011, Cherry G. Mathew wrote:
    mhitch> following change, I am able to boot with 2 cpus.  [I didn't
    mhitch> look to see if the xen code had a macro to do this like the
    mhitch> xen kernel does.]
    >> 
    >> I don't think so, and I'm not sure it's worth it, as nothing else
    >> uses this.

    mhitch>   I did find the same macros that convert from a physical
    mhitch> page frame and the cr3 value in
    mhitch> sys/arch/xen/include/xen3-public/arch-x86/xen-x86_32.h.

Could work - they use pfns though, which makes me think it might be more
appropriate to use them in cpu.c:pmap_cpu_init_late()  instead.

If that works for you, I can check it in ( don't have a >4GB RAM box).

Like so:

Index: sys/arch/xen/x86/cpu.c
===================================================================
RCS file: /cvsroot/src/sys/arch/xen/x86/cpu.c,v
retrieving revision 1.56.2.9
diff -u -r1.56.2.9 cpu.c
--- sys/arch/xen/x86/cpu.c      30 Aug 2011 12:53:46 -0000      1.56.2.9
+++ sys/arch/xen/x86/cpu.c      30 Aug 2011 19:44:49 -0000
@@ -1334,7 +1334,7 @@
                        panic("%s: failed to allocate L3 pglist for CPU %d (ret 
%d)\n",
                            __func__, cpu_index(ci), ret);
 
-               ci->ci_pae_l3_pdirpa = vmap->phys_addr;
+               ci->ci_pae_l3_pdirpa = 
xen_pfn_to_cr3(x86_btop(VM_PAGE_TO_PHYS(vmap)));
 
                ci->ci_pae_l3_pdir = (paddr_t *)uvm_km_alloc(kernel_map, 
PAGE_SIZE, 0,
                    UVM_KMF_VAONLY | UVM_KMF_NOWAIT);




Cheers,
-- 
Cherry


Home | Main Index | Thread Index | Old Index