Oops

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

 



Gerd Hoffmann wrote:
> Gerd Hoffmann wrote:
>   
>> Jeremy Fitzhardinge wrote:
>>     
>>> Gerd Hoffmann wrote:
>>>       
>>>>   Hi,
>>>>
>>>> paravirt kernel doesn't boot as xen guest for me, see attachment.
>>>>   
>>>>         
>>> Hm, I just booted a pae kernel from the current paravirt repo and got it
>>> to usermode.  What's your .config?  Also, what line is getting the fault?
>>>       
>> config is attached.
>>
>> It faults in fork syscall, down in pgd_walk().  It finds a pmd entry
>> pointing to a machine page where the mfn_to_pfn translation returns -1
>> aka 0xffffffff.  Trying to find a struct page for that one doesn't work ...
>>     
>
> Looks like a slot-3 pmd got reused for slot-0, with some stale entries
> for the hypervisor hole in there for some reason ...
>
> quick and dirty sledge hammer fix:
>
> --- paravirt-2.6.20-rc4-hg691.orig/arch/i386/paravirt-xen/enlighten.c
> +++ paravirt-2.6.20-rc4-hg691/arch/i386/paravirt-xen/enlighten.c
> @@ -522,6 +522,7 @@ static fastcall void xen_alloc_pd(u32 pf
>  static fastcall void xen_release_pd(u32 pfn)
>  {
>         make_lowmem_page_readwrite(__va(PFN_PHYS(pfn)));
> +       memset(__va(PFN_PHYS(pfn)), 0, PAGE_SIZE);
>  }
>
>  static fastcall void xen_release_pt(u32 pfn)
>   

Does this work?

diff -r 252f3ed87072 arch/i386/mm/pgtable.c
--- a/arch/i386/mm/pgtable.c    Mon Jan 08 16:57:56 2007 -0800
+++ b/arch/i386/mm/pgtable.c    Wed Jan 10 13:13:40 2007 -0800
@@ -265,6 +265,7 @@ static void pgd_ctor(pgd_t *pgd)
                                        swapper_pg_dir + USER_PTRS_PER_PGD,
                                        KERNEL_PGD_PTRS);
                } else {
+                       memset(pgd, 0, USER_PTRS_PER_PGD*sizeof(pgd_t));
                        spin_lock_irqsave(&pgd_lock, flags);
                        pgd_list_add(pgd);
                        spin_unlock_irqrestore(&pgd_lock, flags);





[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux