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

RE: [Xen-devel] Re: Oops when loading xen_platform_pci module in HVMdomain on CS 11429



"Yu, Ke" <ke.yu@xxxxxxxxx> wrote on 09/07/2006 08:09:43 PM:

> Steve Dobbelstein wrote:
> > steved@xxxxxxxxxx wrote on 09/05/2006 07:56:00 PM:
> >
> > Digging into this further I found that the problem is that they
> > hypercall mechanism its trying to execute the instructions for the
> > hypercall which reside in the hypercall stubs page.  However, the
> > page table entry for the page has the _PAGE_NX (no execute) bit set.
> > (I'm running a 64-bit OS with PAE in the HVM domain.)  The error code
> > in the oops (0x11) indicates that the page fault is because of the
> > _PAGE_NX bit.  0x01 -> access rights violation  0x10 -> The fault was
> > caused by an instruction fetch.
> >
> > I tried hacking some code to turn off the NX bit in the PTE for the
> > hypercall stubs page, but I still get the oops.  I'm thinking it's
> > because the NX bit is set in the PMD.
> >
> > I'm quite new to the paging mechanism, so I'm not sure how to fix
> > this at the moment.   I'll keep poking around.  thought I'd share my
> > findings so far.
> >
> > Steve D.
> >
>
> I also meet this opps in IA32 Non-PAE guest . Since it has no NX bit
> in IA32, there may be other issue. Hope this info is helpful.
>
> Best Regards
> Ke
>
> Xen version 3.0.
> Hypercall area is 1 pages (order 0 allocation)
> Unable to handle kernel paging request at virtual address 1dd9c27c
>  printing eip:
> cdd9e00c
> *pde = 00000000
> Oops: 0002 [#1]
> PREEMPT
> Modules linked in: xen_platform_pci
> CPU:    0
> EIP:    0060:[<cdd9e00c>]    Not tainted VLI
> EFLAGS: 00010202   (2.6.16 #3)
> EIP is at 0xcdd9e00c
> eax: 1dd9c27c   ebx: 00000006   ecx: cdcffe04   edx: 00000000
> esi: 00000001   edi: cdcffe08   ebp: 00000006   esp: cdcffdf4
> ds: 007b   es: 007b   ss: 0068
> Process insmod (pid: 3778, threadinfo=cdcfe000 task=cfc16530)
> Stack: <0>0000007b d0809f53 d080a7af cdd9c000 00000000 00000000
> 00000000 00000007
>        00000000 f3000000 0000c100 d081100e 566e6558 65584d4d
> 4d4d566e cfeb0900
>        cfeb0800 cfeb0800 f3000000 cfeb0800 d0809667 c0454b00
> 0000c100 00000100
> Call Trace:
>  [<d0809f53>] setup_xen_features+0x43/0x90 [xen_platform_pci]
>  [<d081100e>] init_xen_info+0xe/0xa0 [xen_platform_pci]
>  [<d0809667>] platform_pci_init+0xf7/0x250 [xen_platform_pci]
>  [<c012a900>] __call_usermodehelper+0x0/0x70
>  [<c022caea>] pci_match_device+0x2a/0x120
>  [<c022cc65>] __pci_device_probe+0x65/0x80
>  [<c022ccaf>] pci_device_probe+0x2f/0x60
>  [<c02940e9>] driver_probe_device+0x99/0xf0
>  [<c02941c0>] __driver_attach+0x0/0x70
>  [<c0294227>] __driver_attach+0x67/0x70
>  [<c029347d>] bus_for_each_dev+0x5d/0x80
>  [<c0294255>] driver_attach+0x25/0x30
>  [<c02941c0>] __driver_attach+0x0/0x70
>  [<c0293a84>] bus_add_driver+0x84/0xe0
>  [<c0294783>] driver_register+0x63/0xa0
>  [<c0294700>] klist_devices_get+0x0/0x10
>  [<c0294710>] klist_devices_put+0x0/0x10
>  [<c022cf65>] __pci_register_driver+0x55/0x90
>  [<d08110b9>] platform_pci_module_init+0x19/0x50 [xen_platform_pci]
>  [<c0136cc2>] sys_init_module+0x132/0x200
>  [<c0103115>] syscall_call+0x7/0xb
> Code: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
> 00 00 00 00 00 00 00 00 00 00 f8 04 14 46 05 00 00 00 50 06 14 46
> <00> 00 00 00 50 06 14 46 00 00 00 00 00 00 00 00 00 00 00 00 00

Hi, Ke.

Thanks for the tip.  Your page fault appears to be after the hypercall.  On
my system the hypercall is at setup_xen_features+40.  Your page fault is at
setup_xen_features+0x43.  I'm running on a 64-bit OS, so I would expect my
code for  setup_xen_features to be a little larger than the 32-bit version.
That would mean the hypercall on the 32-bit version would be at or before
offset 0x40.  So I thing yours is page faulting after the hypercall.

Also, the error code in your oops indicates the fault was caused by a write
to a non-present page while in supervisor mode.  That's different from the
execution fault that I am seeing.

I'll be aware that once I fix the fault on the hypercall that I might run
into another page fault soon thereafter.

Steve D.


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.