Yu, Ke
2006-Sep-08 01:09 UTC
RE: [Xen-devel] Re: Oops when loading xen_platform_pci module in HVMdomain on CS 11429
Steve Dobbelstein wrote:> steved@us.ibm.com 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 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Hiromichi Itou
2006-Sep-08 06:27 UTC
Re: [Xen-devel] Re: Oops when loading xen_platform_pci module in HVMdomain on CS 11429
Hi Ke,> 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.Did you use xen-unstable tree before changeset 11418? Changeset 11418 probably fixed your problem. Hiromichi Ito On 2006/09/08, at 10:09, Yu, Ke wrote:> Steve Dobbelstein wrote: >> steved@us.ibm.com 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 > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xensource.com > http://lists.xensource.com/xen-devel_______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel
Steve Dobbelstein
2006-Sep-08 16:34 UTC
RE: [Xen-devel] Re: Oops when loading xen_platform_pci module in HVMdomain on CS 11429
"Yu, Ke" <ke.yu@intel.com> wrote on 09/07/2006 08:09:43 PM:> Steve Dobbelstein wrote: > > steved@us.ibm.com 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 00Hi, 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@lists.xensource.com http://lists.xensource.com/xen-devel
Yu Ke
2006-Sep-09 15:32 UTC
Re: [Xen-devel] Re: Oops when loading xen_platform_pci module in HVMdomain on CS 11429
2006/9/8, Hiromichi Itou <ito@begi.net>:> Hi Ke, > > Did you use xen-unstable tree before changeset 11418? > Changeset 11418 probably fixed your problem. > > Hiromichi Ito >Yes. cset 11418 fix this issue in ia32 side. I can successfully mount VBD partition in ia32 HVM with cset 11418 fix. Thanks for the info. Best Regards Ke ------------ Intel Open Source Center _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel