Messages in this thread | | | Date | Wed, 04 Nov 2015 19:16:25 +0100 | From | Sander Eikelenboom <> | Subject | Re: Linux 4.4 MW: Boot under Xen fails with CONFIG DEBUG WX enabled: RIP: ptdump walk pgd level core |
| |
On 2015-11-04 19:06, Ingo Molnar wrote: > * Stephen Smalley <sds@tycho.nsa.gov> wrote: > >> On 11/04/2015 06:55 AM, Sander Eikelenboom wrote: >> >Hi All, >> > >> >I just tried to boot with the current linus mergewindow tree under Xen. >> >It fails with a kernel panic at boot with the new "CONFIG_DEBUG_WX" >> >option enabled. >> >Disabling it makes the kernel boot fine. >> > >> >The splat: >> >[ 18.424241] Freeing unused kernel memory: 1104K (ffffffff822fc000 - >> >ffffffff82410000) >> >[ 18.430314] Write protecting the kernel read-only data: 18432k >> >[ 18.441054] Freeing unused kernel memory: 1144K (ffff880001ae2000 - >> >ffff880001c00000) >> >[ 18.447966] Freeing unused kernel memory: 1560K (ffff88000207a000 - >> >ffff880002200000) >> >[ 18.453947] BUG: unable to handle kernel paging request at >> >ffff88055c883000 >> >[ 18.459943] IP: [<ffffffff8105af8e>] >> >ptdump_walk_pgd_level_core+0x20e/0x440 >> >[ 18.465847] PGD 2212067 PUD 0 >> >[ 18.471564] Oops: 0000 [#1] SMP >> >[ 18.477248] Modules linked in: >> >[ 18.482918] CPU: 2 PID: 1 Comm: swapper/0 Not tainted >> >4.3.0-mw-20151104-linus-doflr+ #1 >> >[ 18.488804] Hardware name: MSI MS-7640/890FXA-GD70 (MS-7640) , BIOS >> >V1.8B1 09/13/2010 >> >[ 18.494778] task: ffff880059b90000 ti: ffff880059b98000 task.ti: >> >ffff880059b98000 >> >[ 18.500852] RIP: e030:[<ffffffff8105af8e>] [<ffffffff8105af8e>] >> >ptdump_walk_pgd_level_core+0x20e/0x440 > > It would be nice to see which line of code this corresponds to. Doing > this: > > gdb vmlinux > list *0xffffffff8105af8e > > should normally do the trick. > > Thanks, > > Ingo
Hi Ingo,
(gdb) list *0xffffffff8105af8e 0xffffffff8105af8e is in ptdump_walk_pgd_level_core (arch/x86/mm/dump_pagetables.c:181). warning: Source file is more recent than executable. 176 * On 64 bits, sign-extend the 48 bit address to 64 bit 177 */ 178 static unsigned long normalize_addr(unsigned long u) 179 { 180 #ifdef CONFIG_X86_64 181 return (signed long)(u << 16) >> 16; 182 #else 183 return u; 184 #endif 185 }
-- Sander
| |