* EFI tree kernel panic in phys_efi_set_virtual_address_map()
@ 2013-12-12 0:01 ` Toshi Kani
0 siblings, 0 replies; 20+ messages in thread
From: Toshi Kani @ 2013-12-12 0:01 UTC (permalink / raw)
To: Borislav Petkov; +Cc: linux-kernel, linux-efi, x86
Hi Boris,
An EFI tree kernel panic'd during boot on one of my systems. It boots
fine when efi=old_map option is specified. So, I think it is caused by
your EFI virtual mapping changes.
The panic message is as follows. I added some printk's to log the
arguments of phys_efi_set_virtual_address_map(). The fault address is
__pa(new_memmap) + 0x20 (too high for the map?).
Thanks,
-Toshi
efi: >> Call phys_efi_set_virtual_address_map()
efi: count 29
efi: desc_size 0x30
efi: new_memmap 0xffff8a03fec16800
efi: __pa(new_memmap) 0x203fec16800
BUG: unable to handle kernel paging request at 00000203fec16820
IP: [<0000000072dcda76>] 0x72dcda75
PGD 0
Oops: 0000 [#1] SMP
Modules linked in:
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.12.0+ #52
Hardware name: HP CB920s x1, BIOS Bundle: 005.028.018 SFW: 012.124.000
10/28/2013
task: ffffffff81a10480 ti: ffffffff81a00000 task.ti: ffffffff81a00000
RIP: 0010:[<0000000072dcda76>] [<0000000072dcda76>] 0x72dcda75
RSP: 0000:ffffffff81a01e08 EFLAGS: 00010206
RAX: 00000000725fee18 RBX: 00000000725feda0 RCX: 00000203fec16800
RDX: 0000000072dfe070 RSI: 0000000060000202 RDI: 0000000072dcdac8
RBP: 0000000072dd0560 R08: 0000000000000000 R09: 000000000000001d
R10: 0000000000000030 R11: 8000000000000000 R12: ffff8a03fec16800
R13: 0000000000000001 R14: 000000000000001d R15: 000000000009c000
FS: 0000000000000000(0000) GS:ffff88087fa00000(0000)
knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00000203fec16820 CR3: 000000000009c000 CR4: 00000000000406b0
Stack:
0000000072dfb88f 0000000000000001 0000000000000d08 0000000000000000
ffffffff81d79a98 0000000072dcdac8 0000000072dcdb93 0000000000000001
ffffffff81a01f80 0000000000000570 0000000000000000 0000000000000000
Call Trace:
[<ffffffff81045cec>] ? efi_call4+0x6c/0xf0
[<ffffffff81b02f65>] ? efi_enter_virtual_mode+0x229/0x3f1
[<ffffffff81aebdf2>] ? start_kernel+0x36c/0x407
[<ffffffff81aeb88f>] ? repair_env_string+0x5c/0x5c
[<ffffffff81aeb5a3>] ? x86_64_start_reservations+0x2a/0x2c
[<ffffffff81aeb696>] ? x86_64_start_kernel+0xf1/0xf4
Code: Bad RIP value.
RIP [<0000000072dcda76>] 0x72dcda75
RSP <ffffffff81a01e08>
CR2: 00000203fec16820
---[ end trace e50b25032c120443 ]---
^ permalink raw reply [flat|nested] 20+ messages in thread
* EFI tree kernel panic in phys_efi_set_virtual_address_map()
@ 2013-12-12 0:01 ` Toshi Kani
0 siblings, 0 replies; 20+ messages in thread
From: Toshi Kani @ 2013-12-12 0:01 UTC (permalink / raw)
To: Borislav Petkov
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-efi-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A
Hi Boris,
An EFI tree kernel panic'd during boot on one of my systems. It boots
fine when efi=old_map option is specified. So, I think it is caused by
your EFI virtual mapping changes.
The panic message is as follows. I added some printk's to log the
arguments of phys_efi_set_virtual_address_map(). The fault address is
__pa(new_memmap) + 0x20 (too high for the map?).
Thanks,
-Toshi
efi: >> Call phys_efi_set_virtual_address_map()
efi: count 29
efi: desc_size 0x30
efi: new_memmap 0xffff8a03fec16800
efi: __pa(new_memmap) 0x203fec16800
BUG: unable to handle kernel paging request at 00000203fec16820
IP: [<0000000072dcda76>] 0x72dcda75
PGD 0
Oops: 0000 [#1] SMP
Modules linked in:
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.12.0+ #52
Hardware name: HP CB920s x1, BIOS Bundle: 005.028.018 SFW: 012.124.000
10/28/2013
task: ffffffff81a10480 ti: ffffffff81a00000 task.ti: ffffffff81a00000
RIP: 0010:[<0000000072dcda76>] [<0000000072dcda76>] 0x72dcda75
RSP: 0000:ffffffff81a01e08 EFLAGS: 00010206
RAX: 00000000725fee18 RBX: 00000000725feda0 RCX: 00000203fec16800
RDX: 0000000072dfe070 RSI: 0000000060000202 RDI: 0000000072dcdac8
RBP: 0000000072dd0560 R08: 0000000000000000 R09: 000000000000001d
R10: 0000000000000030 R11: 8000000000000000 R12: ffff8a03fec16800
R13: 0000000000000001 R14: 000000000000001d R15: 000000000009c000
FS: 0000000000000000(0000) GS:ffff88087fa00000(0000)
knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00000203fec16820 CR3: 000000000009c000 CR4: 00000000000406b0
Stack:
0000000072dfb88f 0000000000000001 0000000000000d08 0000000000000000
ffffffff81d79a98 0000000072dcdac8 0000000072dcdb93 0000000000000001
ffffffff81a01f80 0000000000000570 0000000000000000 0000000000000000
Call Trace:
[<ffffffff81045cec>] ? efi_call4+0x6c/0xf0
[<ffffffff81b02f65>] ? efi_enter_virtual_mode+0x229/0x3f1
[<ffffffff81aebdf2>] ? start_kernel+0x36c/0x407
[<ffffffff81aeb88f>] ? repair_env_string+0x5c/0x5c
[<ffffffff81aeb5a3>] ? x86_64_start_reservations+0x2a/0x2c
[<ffffffff81aeb696>] ? x86_64_start_kernel+0xf1/0xf4
Code: Bad RIP value.
RIP [<0000000072dcda76>] 0x72dcda75
RSP <ffffffff81a01e08>
CR2: 00000203fec16820
---[ end trace e50b25032c120443 ]---
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: EFI tree kernel panic in phys_efi_set_virtual_address_map()
@ 2013-12-12 0:29 ` Borislav Petkov
0 siblings, 0 replies; 20+ messages in thread
From: Borislav Petkov @ 2013-12-12 0:29 UTC (permalink / raw)
To: Toshi Kani; +Cc: linux-kernel, linux-efi, x86
On Wed, Dec 11, 2013 at 05:01:03PM -0700, Toshi Kani wrote:
> Hi Boris,
>
> An EFI tree kernel panic'd during boot on one of my systems. It boots
> fine when efi=old_map option is specified. So, I think it is caused by
> your EFI virtual mapping changes.
>
> The panic message is as follows. I added some printk's to log the
> arguments of phys_efi_set_virtual_address_map(). The fault address is
> __pa(new_memmap) + 0x20 (too high for the map?).
>
> Thanks,
> -Toshi
>
>
>
> efi: >> Call phys_efi_set_virtual_address_map()
> efi: count 29
> efi: desc_size 0x30
> efi: new_memmap 0xffff8a03fec16800
> efi: __pa(new_memmap) 0x203fec16800
>
> BUG: unable to handle kernel paging request at 00000203fec16820
> IP: [<0000000072dcda76>] 0x72dcda75
> PGD 0
It looks like the page hierarchy which contains __pa(new_memmap) is not
mapped in the EFI page table. Nice.
> Oops: 0000 [#1] SMP
> Modules linked in:
> CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.12.0+ #52
> Hardware name: HP CB920s x1, BIOS Bundle: 005.028.018 SFW: 012.124.000
> 10/28/2013
> task: ffffffff81a10480 ti: ffffffff81a00000 task.ti: ffffffff81a00000
> RIP: 0010:[<0000000072dcda76>] [<0000000072dcda76>] 0x72dcda75
> RSP: 0000:ffffffff81a01e08 EFLAGS: 00010206
> RAX: 00000000725fee18 RBX: 00000000725feda0 RCX: 00000203fec16800
> RDX: 0000000072dfe070 RSI: 0000000060000202 RDI: 0000000072dcdac8
> RBP: 0000000072dd0560 R08: 0000000000000000 R09: 000000000000001d
> R10: 0000000000000030 R11: 8000000000000000 R12: ffff8a03fec16800
> R13: 0000000000000001 R14: 000000000000001d R15: 000000000009c000
> FS: 0000000000000000(0000) GS:ffff88087fa00000(0000)
> knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 00000203fec16820 CR3: 000000000009c000 CR4: 00000000000406b0
> Stack:
> 0000000072dfb88f 0000000000000001 0000000000000d08 0000000000000000
> ffffffff81d79a98 0000000072dcdac8 0000000072dcdb93 0000000000000001
> ffffffff81a01f80 0000000000000570 0000000000000000 0000000000000000
> Call Trace:
> [<ffffffff81045cec>] ? efi_call4+0x6c/0xf0
> [<ffffffff81b02f65>] ? efi_enter_virtual_mode+0x229/0x3f1
> [<ffffffff81aebdf2>] ? start_kernel+0x36c/0x407
> [<ffffffff81aeb88f>] ? repair_env_string+0x5c/0x5c
> [<ffffffff81aeb5a3>] ? x86_64_start_reservations+0x2a/0x2c
> [<ffffffff81aeb696>] ? x86_64_start_kernel+0xf1/0xf4
> Code: Bad RIP value.
> RIP [<0000000072dcda76>] 0x72dcda75
> RSP <ffffffff81a01e08>
> CR2: 00000203fec16820
> ---[ end trace e50b25032c120443 ]---
Ok, it is late here and I'm almost blocked but you could try the dirty
patch below - more fiddling tomorrow.
In the meantime, can you send me full dmesg, the exact tree you're using
and your .config?
Thanks.
--
diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
index f8ec4dafc74e..254d3f2eff9f 100644
--- a/arch/x86/platform/efi/efi.c
+++ b/arch/x86/platform/efi/efi.c
@@ -245,8 +245,13 @@ static efi_status_t __init phys_efi_set_virtual_address_map(
u32 descriptor_version,
efi_memory_desc_t *virtual_map)
{
+ pgd_t *pgd = (pgd_t *)__va(real_mode_header->trampoline_pgd);
efi_status_t status;
+ memcpy(pgd + pgd_index((unsigned long)virtual_map),
+ init_mm.pgd + pgd_index((unsigned long)virtual_map),
+ sizeof(pgd_t));
+
efi_call_phys_prelog();
status = efi_call_phys4(efi_phys.set_virtual_address_map,
memory_map_size, descriptor_size,
--
Regards/Gruss,
Boris.
Sent from a fat crate under my desk. Formatting is fine.
--
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: EFI tree kernel panic in phys_efi_set_virtual_address_map()
@ 2013-12-12 0:29 ` Borislav Petkov
0 siblings, 0 replies; 20+ messages in thread
From: Borislav Petkov @ 2013-12-12 0:29 UTC (permalink / raw)
To: Toshi Kani
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-efi-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A
On Wed, Dec 11, 2013 at 05:01:03PM -0700, Toshi Kani wrote:
> Hi Boris,
>
> An EFI tree kernel panic'd during boot on one of my systems. It boots
> fine when efi=old_map option is specified. So, I think it is caused by
> your EFI virtual mapping changes.
>
> The panic message is as follows. I added some printk's to log the
> arguments of phys_efi_set_virtual_address_map(). The fault address is
> __pa(new_memmap) + 0x20 (too high for the map?).
>
> Thanks,
> -Toshi
>
>
>
> efi: >> Call phys_efi_set_virtual_address_map()
> efi: count 29
> efi: desc_size 0x30
> efi: new_memmap 0xffff8a03fec16800
> efi: __pa(new_memmap) 0x203fec16800
>
> BUG: unable to handle kernel paging request at 00000203fec16820
> IP: [<0000000072dcda76>] 0x72dcda75
> PGD 0
It looks like the page hierarchy which contains __pa(new_memmap) is not
mapped in the EFI page table. Nice.
> Oops: 0000 [#1] SMP
> Modules linked in:
> CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.12.0+ #52
> Hardware name: HP CB920s x1, BIOS Bundle: 005.028.018 SFW: 012.124.000
> 10/28/2013
> task: ffffffff81a10480 ti: ffffffff81a00000 task.ti: ffffffff81a00000
> RIP: 0010:[<0000000072dcda76>] [<0000000072dcda76>] 0x72dcda75
> RSP: 0000:ffffffff81a01e08 EFLAGS: 00010206
> RAX: 00000000725fee18 RBX: 00000000725feda0 RCX: 00000203fec16800
> RDX: 0000000072dfe070 RSI: 0000000060000202 RDI: 0000000072dcdac8
> RBP: 0000000072dd0560 R08: 0000000000000000 R09: 000000000000001d
> R10: 0000000000000030 R11: 8000000000000000 R12: ffff8a03fec16800
> R13: 0000000000000001 R14: 000000000000001d R15: 000000000009c000
> FS: 0000000000000000(0000) GS:ffff88087fa00000(0000)
> knlGS:0000000000000000
> CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> CR2: 00000203fec16820 CR3: 000000000009c000 CR4: 00000000000406b0
> Stack:
> 0000000072dfb88f 0000000000000001 0000000000000d08 0000000000000000
> ffffffff81d79a98 0000000072dcdac8 0000000072dcdb93 0000000000000001
> ffffffff81a01f80 0000000000000570 0000000000000000 0000000000000000
> Call Trace:
> [<ffffffff81045cec>] ? efi_call4+0x6c/0xf0
> [<ffffffff81b02f65>] ? efi_enter_virtual_mode+0x229/0x3f1
> [<ffffffff81aebdf2>] ? start_kernel+0x36c/0x407
> [<ffffffff81aeb88f>] ? repair_env_string+0x5c/0x5c
> [<ffffffff81aeb5a3>] ? x86_64_start_reservations+0x2a/0x2c
> [<ffffffff81aeb696>] ? x86_64_start_kernel+0xf1/0xf4
> Code: Bad RIP value.
> RIP [<0000000072dcda76>] 0x72dcda75
> RSP <ffffffff81a01e08>
> CR2: 00000203fec16820
> ---[ end trace e50b25032c120443 ]---
Ok, it is late here and I'm almost blocked but you could try the dirty
patch below - more fiddling tomorrow.
In the meantime, can you send me full dmesg, the exact tree you're using
and your .config?
Thanks.
--
diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
index f8ec4dafc74e..254d3f2eff9f 100644
--- a/arch/x86/platform/efi/efi.c
+++ b/arch/x86/platform/efi/efi.c
@@ -245,8 +245,13 @@ static efi_status_t __init phys_efi_set_virtual_address_map(
u32 descriptor_version,
efi_memory_desc_t *virtual_map)
{
+ pgd_t *pgd = (pgd_t *)__va(real_mode_header->trampoline_pgd);
efi_status_t status;
+ memcpy(pgd + pgd_index((unsigned long)virtual_map),
+ init_mm.pgd + pgd_index((unsigned long)virtual_map),
+ sizeof(pgd_t));
+
efi_call_phys_prelog();
status = efi_call_phys4(efi_phys.set_virtual_address_map,
memory_map_size, descriptor_size,
--
Regards/Gruss,
Boris.
Sent from a fat crate under my desk. Formatting is fine.
--
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: EFI tree kernel panic in phys_efi_set_virtual_address_map()
@ 2013-12-12 0:32 ` Toshi Kani
0 siblings, 0 replies; 20+ messages in thread
From: Toshi Kani @ 2013-12-12 0:32 UTC (permalink / raw)
To: Borislav Petkov; +Cc: linux-kernel, linux-efi, x86
On Thu, 2013-12-12 at 01:29 +0100, Borislav Petkov wrote:
> On Wed, Dec 11, 2013 at 05:01:03PM -0700, Toshi Kani wrote:
> > Hi Boris,
> >
> > An EFI tree kernel panic'd during boot on one of my systems. It boots
> > fine when efi=old_map option is specified. So, I think it is caused by
> > your EFI virtual mapping changes.
> >
> > The panic message is as follows. I added some printk's to log the
> > arguments of phys_efi_set_virtual_address_map(). The fault address is
> > __pa(new_memmap) + 0x20 (too high for the map?).
> >
> > Thanks,
> > -Toshi
> >
> >
> >
> > efi: >> Call phys_efi_set_virtual_address_map()
> > efi: count 29
> > efi: desc_size 0x30
> > efi: new_memmap 0xffff8a03fec16800
> > efi: __pa(new_memmap) 0x203fec16800
> >
> > BUG: unable to handle kernel paging request at 00000203fec16820
> > IP: [<0000000072dcda76>] 0x72dcda75
> > PGD 0
>
> It looks like the page hierarchy which contains __pa(new_memmap) is not
> mapped in the EFI page table. Nice.
>
> > Oops: 0000 [#1] SMP
> > Modules linked in:
> > CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.12.0+ #52
> > Hardware name: HP CB920s x1, BIOS Bundle: 005.028.018 SFW: 012.124.000
> > 10/28/2013
> > task: ffffffff81a10480 ti: ffffffff81a00000 task.ti: ffffffff81a00000
> > RIP: 0010:[<0000000072dcda76>] [<0000000072dcda76>] 0x72dcda75
> > RSP: 0000:ffffffff81a01e08 EFLAGS: 00010206
> > RAX: 00000000725fee18 RBX: 00000000725feda0 RCX: 00000203fec16800
> > RDX: 0000000072dfe070 RSI: 0000000060000202 RDI: 0000000072dcdac8
> > RBP: 0000000072dd0560 R08: 0000000000000000 R09: 000000000000001d
> > R10: 0000000000000030 R11: 8000000000000000 R12: ffff8a03fec16800
> > R13: 0000000000000001 R14: 000000000000001d R15: 000000000009c000
> > FS: 0000000000000000(0000) GS:ffff88087fa00000(0000)
> > knlGS:0000000000000000
> > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > CR2: 00000203fec16820 CR3: 000000000009c000 CR4: 00000000000406b0
> > Stack:
> > 0000000072dfb88f 0000000000000001 0000000000000d08 0000000000000000
> > ffffffff81d79a98 0000000072dcdac8 0000000072dcdb93 0000000000000001
> > ffffffff81a01f80 0000000000000570 0000000000000000 0000000000000000
> > Call Trace:
> > [<ffffffff81045cec>] ? efi_call4+0x6c/0xf0
> > [<ffffffff81b02f65>] ? efi_enter_virtual_mode+0x229/0x3f1
> > [<ffffffff81aebdf2>] ? start_kernel+0x36c/0x407
> > [<ffffffff81aeb88f>] ? repair_env_string+0x5c/0x5c
> > [<ffffffff81aeb5a3>] ? x86_64_start_reservations+0x2a/0x2c
> > [<ffffffff81aeb696>] ? x86_64_start_kernel+0xf1/0xf4
> > Code: Bad RIP value.
> > RIP [<0000000072dcda76>] 0x72dcda75
> > RSP <ffffffff81a01e08>
> > CR2: 00000203fec16820
> > ---[ end trace e50b25032c120443 ]---
>
> Ok, it is late here and I'm almost blocked but you could try the dirty
> patch below - more fiddling tomorrow.
Wow, that was quick. Yes, I will test it and let you know how it goes.
> In the meantime, can you send me full dmesg, the exact tree you're using
> and your .config?
I will send you in a separate email.
Thanks,
-Toshi
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: EFI tree kernel panic in phys_efi_set_virtual_address_map()
@ 2013-12-12 0:32 ` Toshi Kani
0 siblings, 0 replies; 20+ messages in thread
From: Toshi Kani @ 2013-12-12 0:32 UTC (permalink / raw)
To: Borislav Petkov
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-efi-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A
On Thu, 2013-12-12 at 01:29 +0100, Borislav Petkov wrote:
> On Wed, Dec 11, 2013 at 05:01:03PM -0700, Toshi Kani wrote:
> > Hi Boris,
> >
> > An EFI tree kernel panic'd during boot on one of my systems. It boots
> > fine when efi=old_map option is specified. So, I think it is caused by
> > your EFI virtual mapping changes.
> >
> > The panic message is as follows. I added some printk's to log the
> > arguments of phys_efi_set_virtual_address_map(). The fault address is
> > __pa(new_memmap) + 0x20 (too high for the map?).
> >
> > Thanks,
> > -Toshi
> >
> >
> >
> > efi: >> Call phys_efi_set_virtual_address_map()
> > efi: count 29
> > efi: desc_size 0x30
> > efi: new_memmap 0xffff8a03fec16800
> > efi: __pa(new_memmap) 0x203fec16800
> >
> > BUG: unable to handle kernel paging request at 00000203fec16820
> > IP: [<0000000072dcda76>] 0x72dcda75
> > PGD 0
>
> It looks like the page hierarchy which contains __pa(new_memmap) is not
> mapped in the EFI page table. Nice.
>
> > Oops: 0000 [#1] SMP
> > Modules linked in:
> > CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.12.0+ #52
> > Hardware name: HP CB920s x1, BIOS Bundle: 005.028.018 SFW: 012.124.000
> > 10/28/2013
> > task: ffffffff81a10480 ti: ffffffff81a00000 task.ti: ffffffff81a00000
> > RIP: 0010:[<0000000072dcda76>] [<0000000072dcda76>] 0x72dcda75
> > RSP: 0000:ffffffff81a01e08 EFLAGS: 00010206
> > RAX: 00000000725fee18 RBX: 00000000725feda0 RCX: 00000203fec16800
> > RDX: 0000000072dfe070 RSI: 0000000060000202 RDI: 0000000072dcdac8
> > RBP: 0000000072dd0560 R08: 0000000000000000 R09: 000000000000001d
> > R10: 0000000000000030 R11: 8000000000000000 R12: ffff8a03fec16800
> > R13: 0000000000000001 R14: 000000000000001d R15: 000000000009c000
> > FS: 0000000000000000(0000) GS:ffff88087fa00000(0000)
> > knlGS:0000000000000000
> > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > CR2: 00000203fec16820 CR3: 000000000009c000 CR4: 00000000000406b0
> > Stack:
> > 0000000072dfb88f 0000000000000001 0000000000000d08 0000000000000000
> > ffffffff81d79a98 0000000072dcdac8 0000000072dcdb93 0000000000000001
> > ffffffff81a01f80 0000000000000570 0000000000000000 0000000000000000
> > Call Trace:
> > [<ffffffff81045cec>] ? efi_call4+0x6c/0xf0
> > [<ffffffff81b02f65>] ? efi_enter_virtual_mode+0x229/0x3f1
> > [<ffffffff81aebdf2>] ? start_kernel+0x36c/0x407
> > [<ffffffff81aeb88f>] ? repair_env_string+0x5c/0x5c
> > [<ffffffff81aeb5a3>] ? x86_64_start_reservations+0x2a/0x2c
> > [<ffffffff81aeb696>] ? x86_64_start_kernel+0xf1/0xf4
> > Code: Bad RIP value.
> > RIP [<0000000072dcda76>] 0x72dcda75
> > RSP <ffffffff81a01e08>
> > CR2: 00000203fec16820
> > ---[ end trace e50b25032c120443 ]---
>
> Ok, it is late here and I'm almost blocked but you could try the dirty
> patch below - more fiddling tomorrow.
Wow, that was quick. Yes, I will test it and let you know how it goes.
> In the meantime, can you send me full dmesg, the exact tree you're using
> and your .config?
I will send you in a separate email.
Thanks,
-Toshi
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: EFI tree kernel panic in phys_efi_set_virtual_address_map()
@ 2013-12-12 1:08 ` Toshi Kani
0 siblings, 0 replies; 20+ messages in thread
From: Toshi Kani @ 2013-12-12 1:08 UTC (permalink / raw)
To: Borislav Petkov; +Cc: linux-kernel, linux-efi, x86
On Wed, 2013-12-11 at 17:32 -0700, Toshi Kani wrote:
> On Thu, 2013-12-12 at 01:29 +0100, Borislav Petkov wrote:
> > On Wed, Dec 11, 2013 at 05:01:03PM -0700, Toshi Kani wrote:
> > > Hi Boris,
> > >
> > > An EFI tree kernel panic'd during boot on one of my systems. It boots
> > > fine when efi=old_map option is specified. So, I think it is caused by
> > > your EFI virtual mapping changes.
> > >
> > > The panic message is as follows. I added some printk's to log the
> > > arguments of phys_efi_set_virtual_address_map(). The fault address is
> > > __pa(new_memmap) + 0x20 (too high for the map?).
> > >
> > > Thanks,
> > > -Toshi
> > >
> > >
> > >
> > > efi: >> Call phys_efi_set_virtual_address_map()
> > > efi: count 29
> > > efi: desc_size 0x30
> > > efi: new_memmap 0xffff8a03fec16800
> > > efi: __pa(new_memmap) 0x203fec16800
> > >
> > > BUG: unable to handle kernel paging request at 00000203fec16820
> > > IP: [<0000000072dcda76>] 0x72dcda75
> > > PGD 0
> >
> > It looks like the page hierarchy which contains __pa(new_memmap) is not
> > mapped in the EFI page table. Nice.
> >
> > > Oops: 0000 [#1] SMP
> > > Modules linked in:
> > > CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.12.0+ #52
> > > Hardware name: HP CB920s x1, BIOS Bundle: 005.028.018 SFW: 012.124.000
> > > 10/28/2013
> > > task: ffffffff81a10480 ti: ffffffff81a00000 task.ti: ffffffff81a00000
> > > RIP: 0010:[<0000000072dcda76>] [<0000000072dcda76>] 0x72dcda75
> > > RSP: 0000:ffffffff81a01e08 EFLAGS: 00010206
> > > RAX: 00000000725fee18 RBX: 00000000725feda0 RCX: 00000203fec16800
> > > RDX: 0000000072dfe070 RSI: 0000000060000202 RDI: 0000000072dcdac8
> > > RBP: 0000000072dd0560 R08: 0000000000000000 R09: 000000000000001d
> > > R10: 0000000000000030 R11: 8000000000000000 R12: ffff8a03fec16800
> > > R13: 0000000000000001 R14: 000000000000001d R15: 000000000009c000
> > > FS: 0000000000000000(0000) GS:ffff88087fa00000(0000)
> > > knlGS:0000000000000000
> > > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > > CR2: 00000203fec16820 CR3: 000000000009c000 CR4: 00000000000406b0
> > > Stack:
> > > 0000000072dfb88f 0000000000000001 0000000000000d08 0000000000000000
> > > ffffffff81d79a98 0000000072dcdac8 0000000072dcdb93 0000000000000001
> > > ffffffff81a01f80 0000000000000570 0000000000000000 0000000000000000
> > > Call Trace:
> > > [<ffffffff81045cec>] ? efi_call4+0x6c/0xf0
> > > [<ffffffff81b02f65>] ? efi_enter_virtual_mode+0x229/0x3f1
> > > [<ffffffff81aebdf2>] ? start_kernel+0x36c/0x407
> > > [<ffffffff81aeb88f>] ? repair_env_string+0x5c/0x5c
> > > [<ffffffff81aeb5a3>] ? x86_64_start_reservations+0x2a/0x2c
> > > [<ffffffff81aeb696>] ? x86_64_start_kernel+0xf1/0xf4
> > > Code: Bad RIP value.
> > > RIP [<0000000072dcda76>] 0x72dcda75
> > > RSP <ffffffff81a01e08>
> > > CR2: 00000203fec16820
> > > ---[ end trace e50b25032c120443 ]---
> >
> > Ok, it is late here and I'm almost blocked but you could try the dirty
> > patch below - more fiddling tomorrow.
>
> Wow, that was quick. Yes, I will test it and let you know how it goes.
Unfortunately, it did not work. Hit the same panic again.
Thanks!
-Toshi
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: EFI tree kernel panic in phys_efi_set_virtual_address_map()
@ 2013-12-12 1:08 ` Toshi Kani
0 siblings, 0 replies; 20+ messages in thread
From: Toshi Kani @ 2013-12-12 1:08 UTC (permalink / raw)
To: Borislav Petkov
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-efi-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A
On Wed, 2013-12-11 at 17:32 -0700, Toshi Kani wrote:
> On Thu, 2013-12-12 at 01:29 +0100, Borislav Petkov wrote:
> > On Wed, Dec 11, 2013 at 05:01:03PM -0700, Toshi Kani wrote:
> > > Hi Boris,
> > >
> > > An EFI tree kernel panic'd during boot on one of my systems. It boots
> > > fine when efi=old_map option is specified. So, I think it is caused by
> > > your EFI virtual mapping changes.
> > >
> > > The panic message is as follows. I added some printk's to log the
> > > arguments of phys_efi_set_virtual_address_map(). The fault address is
> > > __pa(new_memmap) + 0x20 (too high for the map?).
> > >
> > > Thanks,
> > > -Toshi
> > >
> > >
> > >
> > > efi: >> Call phys_efi_set_virtual_address_map()
> > > efi: count 29
> > > efi: desc_size 0x30
> > > efi: new_memmap 0xffff8a03fec16800
> > > efi: __pa(new_memmap) 0x203fec16800
> > >
> > > BUG: unable to handle kernel paging request at 00000203fec16820
> > > IP: [<0000000072dcda76>] 0x72dcda75
> > > PGD 0
> >
> > It looks like the page hierarchy which contains __pa(new_memmap) is not
> > mapped in the EFI page table. Nice.
> >
> > > Oops: 0000 [#1] SMP
> > > Modules linked in:
> > > CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.12.0+ #52
> > > Hardware name: HP CB920s x1, BIOS Bundle: 005.028.018 SFW: 012.124.000
> > > 10/28/2013
> > > task: ffffffff81a10480 ti: ffffffff81a00000 task.ti: ffffffff81a00000
> > > RIP: 0010:[<0000000072dcda76>] [<0000000072dcda76>] 0x72dcda75
> > > RSP: 0000:ffffffff81a01e08 EFLAGS: 00010206
> > > RAX: 00000000725fee18 RBX: 00000000725feda0 RCX: 00000203fec16800
> > > RDX: 0000000072dfe070 RSI: 0000000060000202 RDI: 0000000072dcdac8
> > > RBP: 0000000072dd0560 R08: 0000000000000000 R09: 000000000000001d
> > > R10: 0000000000000030 R11: 8000000000000000 R12: ffff8a03fec16800
> > > R13: 0000000000000001 R14: 000000000000001d R15: 000000000009c000
> > > FS: 0000000000000000(0000) GS:ffff88087fa00000(0000)
> > > knlGS:0000000000000000
> > > CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > > CR2: 00000203fec16820 CR3: 000000000009c000 CR4: 00000000000406b0
> > > Stack:
> > > 0000000072dfb88f 0000000000000001 0000000000000d08 0000000000000000
> > > ffffffff81d79a98 0000000072dcdac8 0000000072dcdb93 0000000000000001
> > > ffffffff81a01f80 0000000000000570 0000000000000000 0000000000000000
> > > Call Trace:
> > > [<ffffffff81045cec>] ? efi_call4+0x6c/0xf0
> > > [<ffffffff81b02f65>] ? efi_enter_virtual_mode+0x229/0x3f1
> > > [<ffffffff81aebdf2>] ? start_kernel+0x36c/0x407
> > > [<ffffffff81aeb88f>] ? repair_env_string+0x5c/0x5c
> > > [<ffffffff81aeb5a3>] ? x86_64_start_reservations+0x2a/0x2c
> > > [<ffffffff81aeb696>] ? x86_64_start_kernel+0xf1/0xf4
> > > Code: Bad RIP value.
> > > RIP [<0000000072dcda76>] 0x72dcda75
> > > RSP <ffffffff81a01e08>
> > > CR2: 00000203fec16820
> > > ---[ end trace e50b25032c120443 ]---
> >
> > Ok, it is late here and I'm almost blocked but you could try the dirty
> > patch below - more fiddling tomorrow.
>
> Wow, that was quick. Yes, I will test it and let you know how it goes.
Unfortunately, it did not work. Hit the same panic again.
Thanks!
-Toshi
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: EFI tree kernel panic in phys_efi_set_virtual_address_map()
@ 2013-12-12 16:23 ` Borislav Petkov
0 siblings, 0 replies; 20+ messages in thread
From: Borislav Petkov @ 2013-12-12 16:23 UTC (permalink / raw)
To: Toshi Kani; +Cc: linux-kernel, linux-efi, x86
On Wed, Dec 11, 2013 at 06:10:20PM -0700, Toshi Kani wrote:
> > Unfortunately, it did not work. Hit the same panic again.
>
> dmesg output attached.
Ok, thanks.
Let's have a look at the EFI pagetable then. Please apply the attached
patch, make sure CONFIG_X86_PTDUMP is enabled, build, boot and catch
full dmesg again and send it to me.
Thanks.
---
diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
index 3d1999458709..39022e488c5d 100644
--- a/arch/x86/include/asm/pgtable.h
+++ b/arch/x86/include/asm/pgtable.h
@@ -15,6 +15,7 @@
: (prot))
#ifndef __ASSEMBLY__
+int ptdump_show(struct seq_file *m, void *v);
#include <asm/x86_init.h>
diff --git a/arch/x86/mm/dump_pagetables.c b/arch/x86/mm/dump_pagetables.c
index 0002a3a33081..744dc0dea3c9 100644
--- a/arch/x86/mm/dump_pagetables.c
+++ b/arch/x86/mm/dump_pagetables.c
@@ -99,47 +99,47 @@ static void printk_prot(struct seq_file *m, pgprot_t prot, int level)
if (!pgprot_val(prot)) {
/* Not present */
- seq_printf(m, " ");
+ pr_cont(" ");
} else {
if (pr & _PAGE_USER)
- seq_printf(m, "USR ");
+ pr_cont("USR ");
else
- seq_printf(m, " ");
+ pr_cont(" ");
if (pr & _PAGE_RW)
- seq_printf(m, "RW ");
+ pr_cont("RW ");
else
- seq_printf(m, "ro ");
+ pr_cont("ro ");
if (pr & _PAGE_PWT)
- seq_printf(m, "PWT ");
+ pr_cont("PWT ");
else
- seq_printf(m, " ");
+ pr_cont(" ");
if (pr & _PAGE_PCD)
- seq_printf(m, "PCD ");
+ pr_cont("PCD ");
else
- seq_printf(m, " ");
+ pr_cont(" ");
/* Bit 9 has a different meaning on level 3 vs 4 */
if (level <= 3) {
if (pr & _PAGE_PSE)
- seq_printf(m, "PSE ");
+ pr_cont("PSE ");
else
- seq_printf(m, " ");
+ pr_cont(" ");
} else {
if (pr & _PAGE_PAT)
- seq_printf(m, "pat ");
+ pr_cont("pat ");
else
- seq_printf(m, " ");
+ pr_cont(" ");
}
if (pr & _PAGE_GLOBAL)
- seq_printf(m, "GLB ");
+ pr_cont("GLB ");
else
- seq_printf(m, " ");
+ pr_cont(" ");
if (pr & _PAGE_NX)
- seq_printf(m, "NX ");
+ pr_cont("NX ");
else
- seq_printf(m, "x ");
+ pr_cont("x ");
}
- seq_printf(m, "%s\n", level_name[level]);
+ pr_cont("%s\n", level_name[level]);
}
/*
@@ -178,7 +178,7 @@ static void note_page(struct seq_file *m, struct pg_state *st,
st->current_prot = new_prot;
st->level = level;
st->marker = address_markers;
- seq_printf(m, "---[ %s ]---\n", st->marker->name);
+ pr_info("---[ %s ]---\n", st->marker->name);
} else if (prot != cur || level != st->level ||
st->current_address >= st->marker[1].start_address) {
const char *unit = units;
@@ -188,7 +188,7 @@ static void note_page(struct seq_file *m, struct pg_state *st,
/*
* Now print the actual finished series
*/
- seq_printf(m, "0x%0*lx-0x%0*lx ",
+ pr_info("0x%0*lx-0x%0*lx ",
width, st->start_address,
width, st->current_address);
@@ -197,7 +197,7 @@ static void note_page(struct seq_file *m, struct pg_state *st,
delta >>= 10;
unit++;
}
- seq_printf(m, "%9lu%c ", delta, *unit);
+ pr_cont("%9lu%c ", delta, *unit);
printk_prot(m, st->current_prot, st->level);
/*
@@ -207,7 +207,7 @@ static void note_page(struct seq_file *m, struct pg_state *st,
*/
if (st->current_address >= st->marker[1].start_address) {
st->marker++;
- seq_printf(m, "---[ %s ]---\n", st->marker->name);
+ pr_info("---[ %s ]---\n", st->marker->name);
}
st->start_address = st->current_address;
@@ -298,14 +298,11 @@ static void walk_pud_level(struct seq_file *m, struct pg_state *st, pgd_t addr,
static void walk_pgd_level(struct seq_file *m)
{
-#ifdef CONFIG_X86_64
- pgd_t *start = (pgd_t *) &init_level4_pgt;
-#else
- pgd_t *start = swapper_pg_dir;
-#endif
int i;
struct pg_state st;
+ pgd_t *start = (pgd_t *)__va(real_mode_header->trampoline_pgd);
+
memset(&st, 0, sizeof(st));
for (i = 0; i < PTRS_PER_PGD; i++) {
@@ -329,7 +326,7 @@ static void walk_pgd_level(struct seq_file *m)
note_page(m, &st, __pgprot(0), 0);
}
-static int ptdump_show(struct seq_file *m, void *v)
+int ptdump_show(struct seq_file *m, void *v)
{
walk_pgd_level(m);
return 0;
diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
index f8ec4dafc74e..f4920191ff8b 100644
--- a/arch/x86/platform/efi/efi.c
+++ b/arch/x86/platform/efi/efi.c
@@ -876,6 +876,11 @@ void __init efi_enter_virtual_mode(void)
efi_setup_page_tables();
efi_sync_low_kernel_mappings();
+ pr_info("desc_size: %lu, count: %d, new_memmap: %p, pa: 0x%lx\n",
+ memmap.desc_size, count, new_memmap, __pa(new_memmap));
+
+ ptdump_show(NULL, NULL);
+
status = phys_efi_set_virtual_address_map(
memmap.desc_size * count,
memmap.desc_size,
diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c
index bf286c386d33..0e2ccca2c7ce 100644
--- a/arch/x86/platform/efi/efi_64.c
+++ b/arch/x86/platform/efi/efi_64.c
@@ -160,6 +160,9 @@ static void __init __map_region(efi_memory_desc_t *md, u64 va)
if (kernel_map_pages_in_pgd(pgd, md->phys_addr, va, md->num_pages, pf))
pr_warn("Error mapping PA 0x%llx -> VA 0x%llx!\n",
md->phys_addr, va);
+ else
+ pr_info("PA: 0x%llx -> VA: 0x%llx\n",
+ md->phys_addr, va);
}
void __init efi_map_region(efi_memory_desc_t *md)
--
Regards/Gruss,
Boris.
Sent from a fat crate under my desk. Formatting is fine.
--
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: EFI tree kernel panic in phys_efi_set_virtual_address_map()
@ 2013-12-12 16:23 ` Borislav Petkov
0 siblings, 0 replies; 20+ messages in thread
From: Borislav Petkov @ 2013-12-12 16:23 UTC (permalink / raw)
To: Toshi Kani
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-efi-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A
On Wed, Dec 11, 2013 at 06:10:20PM -0700, Toshi Kani wrote:
> > Unfortunately, it did not work. Hit the same panic again.
>
> dmesg output attached.
Ok, thanks.
Let's have a look at the EFI pagetable then. Please apply the attached
patch, make sure CONFIG_X86_PTDUMP is enabled, build, boot and catch
full dmesg again and send it to me.
Thanks.
---
diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
index 3d1999458709..39022e488c5d 100644
--- a/arch/x86/include/asm/pgtable.h
+++ b/arch/x86/include/asm/pgtable.h
@@ -15,6 +15,7 @@
: (prot))
#ifndef __ASSEMBLY__
+int ptdump_show(struct seq_file *m, void *v);
#include <asm/x86_init.h>
diff --git a/arch/x86/mm/dump_pagetables.c b/arch/x86/mm/dump_pagetables.c
index 0002a3a33081..744dc0dea3c9 100644
--- a/arch/x86/mm/dump_pagetables.c
+++ b/arch/x86/mm/dump_pagetables.c
@@ -99,47 +99,47 @@ static void printk_prot(struct seq_file *m, pgprot_t prot, int level)
if (!pgprot_val(prot)) {
/* Not present */
- seq_printf(m, " ");
+ pr_cont(" ");
} else {
if (pr & _PAGE_USER)
- seq_printf(m, "USR ");
+ pr_cont("USR ");
else
- seq_printf(m, " ");
+ pr_cont(" ");
if (pr & _PAGE_RW)
- seq_printf(m, "RW ");
+ pr_cont("RW ");
else
- seq_printf(m, "ro ");
+ pr_cont("ro ");
if (pr & _PAGE_PWT)
- seq_printf(m, "PWT ");
+ pr_cont("PWT ");
else
- seq_printf(m, " ");
+ pr_cont(" ");
if (pr & _PAGE_PCD)
- seq_printf(m, "PCD ");
+ pr_cont("PCD ");
else
- seq_printf(m, " ");
+ pr_cont(" ");
/* Bit 9 has a different meaning on level 3 vs 4 */
if (level <= 3) {
if (pr & _PAGE_PSE)
- seq_printf(m, "PSE ");
+ pr_cont("PSE ");
else
- seq_printf(m, " ");
+ pr_cont(" ");
} else {
if (pr & _PAGE_PAT)
- seq_printf(m, "pat ");
+ pr_cont("pat ");
else
- seq_printf(m, " ");
+ pr_cont(" ");
}
if (pr & _PAGE_GLOBAL)
- seq_printf(m, "GLB ");
+ pr_cont("GLB ");
else
- seq_printf(m, " ");
+ pr_cont(" ");
if (pr & _PAGE_NX)
- seq_printf(m, "NX ");
+ pr_cont("NX ");
else
- seq_printf(m, "x ");
+ pr_cont("x ");
}
- seq_printf(m, "%s\n", level_name[level]);
+ pr_cont("%s\n", level_name[level]);
}
/*
@@ -178,7 +178,7 @@ static void note_page(struct seq_file *m, struct pg_state *st,
st->current_prot = new_prot;
st->level = level;
st->marker = address_markers;
- seq_printf(m, "---[ %s ]---\n", st->marker->name);
+ pr_info("---[ %s ]---\n", st->marker->name);
} else if (prot != cur || level != st->level ||
st->current_address >= st->marker[1].start_address) {
const char *unit = units;
@@ -188,7 +188,7 @@ static void note_page(struct seq_file *m, struct pg_state *st,
/*
* Now print the actual finished series
*/
- seq_printf(m, "0x%0*lx-0x%0*lx ",
+ pr_info("0x%0*lx-0x%0*lx ",
width, st->start_address,
width, st->current_address);
@@ -197,7 +197,7 @@ static void note_page(struct seq_file *m, struct pg_state *st,
delta >>= 10;
unit++;
}
- seq_printf(m, "%9lu%c ", delta, *unit);
+ pr_cont("%9lu%c ", delta, *unit);
printk_prot(m, st->current_prot, st->level);
/*
@@ -207,7 +207,7 @@ static void note_page(struct seq_file *m, struct pg_state *st,
*/
if (st->current_address >= st->marker[1].start_address) {
st->marker++;
- seq_printf(m, "---[ %s ]---\n", st->marker->name);
+ pr_info("---[ %s ]---\n", st->marker->name);
}
st->start_address = st->current_address;
@@ -298,14 +298,11 @@ static void walk_pud_level(struct seq_file *m, struct pg_state *st, pgd_t addr,
static void walk_pgd_level(struct seq_file *m)
{
-#ifdef CONFIG_X86_64
- pgd_t *start = (pgd_t *) &init_level4_pgt;
-#else
- pgd_t *start = swapper_pg_dir;
-#endif
int i;
struct pg_state st;
+ pgd_t *start = (pgd_t *)__va(real_mode_header->trampoline_pgd);
+
memset(&st, 0, sizeof(st));
for (i = 0; i < PTRS_PER_PGD; i++) {
@@ -329,7 +326,7 @@ static void walk_pgd_level(struct seq_file *m)
note_page(m, &st, __pgprot(0), 0);
}
-static int ptdump_show(struct seq_file *m, void *v)
+int ptdump_show(struct seq_file *m, void *v)
{
walk_pgd_level(m);
return 0;
diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
index f8ec4dafc74e..f4920191ff8b 100644
--- a/arch/x86/platform/efi/efi.c
+++ b/arch/x86/platform/efi/efi.c
@@ -876,6 +876,11 @@ void __init efi_enter_virtual_mode(void)
efi_setup_page_tables();
efi_sync_low_kernel_mappings();
+ pr_info("desc_size: %lu, count: %d, new_memmap: %p, pa: 0x%lx\n",
+ memmap.desc_size, count, new_memmap, __pa(new_memmap));
+
+ ptdump_show(NULL, NULL);
+
status = phys_efi_set_virtual_address_map(
memmap.desc_size * count,
memmap.desc_size,
diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c
index bf286c386d33..0e2ccca2c7ce 100644
--- a/arch/x86/platform/efi/efi_64.c
+++ b/arch/x86/platform/efi/efi_64.c
@@ -160,6 +160,9 @@ static void __init __map_region(efi_memory_desc_t *md, u64 va)
if (kernel_map_pages_in_pgd(pgd, md->phys_addr, va, md->num_pages, pf))
pr_warn("Error mapping PA 0x%llx -> VA 0x%llx!\n",
md->phys_addr, va);
+ else
+ pr_info("PA: 0x%llx -> VA: 0x%llx\n",
+ md->phys_addr, va);
}
void __init efi_map_region(efi_memory_desc_t *md)
--
Regards/Gruss,
Boris.
Sent from a fat crate under my desk. Formatting is fine.
--
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: EFI tree kernel panic in phys_efi_set_virtual_address_map()
@ 2013-12-12 16:43 ` Toshi Kani
0 siblings, 0 replies; 20+ messages in thread
From: Toshi Kani @ 2013-12-12 16:43 UTC (permalink / raw)
To: Borislav Petkov; +Cc: linux-kernel, linux-efi, x86
On Thu, 2013-12-12 at 17:23 +0100, Borislav Petkov wrote:
> On Wed, Dec 11, 2013 at 06:10:20PM -0700, Toshi Kani wrote:
> > > Unfortunately, it did not work. Hit the same panic again.
> >
> > dmesg output attached.
>
> Ok, thanks.
>
> Let's have a look at the EFI pagetable then. Please apply the attached
> patch, make sure CONFIG_X86_PTDUMP is enabled, build, boot and catch
> full dmesg again and send it to me.
Yes, I will test with the change, and send a full dmesg output to you.
Thanks!
-Toshi
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: EFI tree kernel panic in phys_efi_set_virtual_address_map()
@ 2013-12-12 16:43 ` Toshi Kani
0 siblings, 0 replies; 20+ messages in thread
From: Toshi Kani @ 2013-12-12 16:43 UTC (permalink / raw)
To: Borislav Petkov
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-efi-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A
On Thu, 2013-12-12 at 17:23 +0100, Borislav Petkov wrote:
> On Wed, Dec 11, 2013 at 06:10:20PM -0700, Toshi Kani wrote:
> > > Unfortunately, it did not work. Hit the same panic again.
> >
> > dmesg output attached.
>
> Ok, thanks.
>
> Let's have a look at the EFI pagetable then. Please apply the attached
> patch, make sure CONFIG_X86_PTDUMP is enabled, build, boot and catch
> full dmesg again and send it to me.
Yes, I will test with the change, and send a full dmesg output to you.
Thanks!
-Toshi
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: EFI tree kernel panic in phys_efi_set_virtual_address_map()
@ 2013-12-12 17:27 ` Toshi Kani
0 siblings, 0 replies; 20+ messages in thread
From: Toshi Kani @ 2013-12-12 17:27 UTC (permalink / raw)
To: Borislav Petkov; +Cc: linux-kernel, linux-efi, x86
[-- Attachment #1: Type: text/plain, Size: 597 bytes --]
On Thu, 2013-12-12 at 09:43 -0700, Toshi Kani wrote:
> On Thu, 2013-12-12 at 17:23 +0100, Borislav Petkov wrote:
> > On Wed, Dec 11, 2013 at 06:10:20PM -0700, Toshi Kani wrote:
> > > > Unfortunately, it did not work. Hit the same panic again.
> > >
> > > dmesg output attached.
> >
> > Ok, thanks.
> >
> > Let's have a look at the EFI pagetable then. Please apply the attached
> > patch, make sure CONFIG_X86_PTDUMP is enabled, build, boot and catch
> > full dmesg again and send it to me.
>
> Yes, I will test with the change, and send a full dmesg output to you.
Attached.
Thanks!
-Toshi
[-- Attachment #2: log.efi.panic6 --]
[-- Type: text/plain, Size: 43888 bytes --]
[Linux-EFI, setup=0x10e3, size=0x425a30]
[Initrd, addr=0x7413e000, size=0x11aa91c]
Initializing cgroup subsys cpuset
Initializing cgroup subsys cpu
Initializing cgroup subsys cpuacct
Linux version 3.12.0+ (toshi@misato.fc.hp.com) (gcc version 4.8.2 20131017 (Red Hat 4.8.2-1) (GCC) ) #56 SMP Thu Dec 12 09:43:25 MST 2013
Command line: ro root=/dev/mapper/vg_dhf1-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD KEYTABLE=us console=ttyS0,115200 rd_LVM_LV=vg_dhf1/lv_swap crashkernel=512M rd_LVM_LV=vg_dhf1/lv_root SYSFONT=latarcyrheb-sun16 rd_NO_DM
e820: BIOS-provided physical RAM map:
BIOS-e820: [mem 0x0000000000000000-0x000000000008dfff] usable
BIOS-e820: [mem 0x000000000008e000-0x000000000008ffff] reserved
BIOS-e820: [mem 0x0000000000090000-0x000000000009ffff] usable
BIOS-e820: [mem 0x0000000000100000-0x000000006de77fff] usable
BIOS-e820: [mem 0x000000006de78000-0x000000006ee77fff] ACPI NVS
BIOS-e820: [mem 0x000000006ee78000-0x00000000721fefff] usable
BIOS-e820: [mem 0x00000000721ff000-0x0000000072efefff] reserved
BIOS-e820: [mem 0x0000000072eff000-0x0000000073efefff] ACPI NVS
BIOS-e820: [mem 0x0000000073eff000-0x0000000073ffefff] ACPI data
BIOS-e820: [mem 0x0000000073fff000-0x000000007bffffff] usable
BIOS-e820: [mem 0x0000000080000000-0x000000008fffffff] reserved
BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed1ffff] reserved
BIOS-e820: [mem 0x00000000ff000000-0x00000000ff1fffff] reserved
BIOS-e820: [mem 0x0000000100000000-0x000000087fffffff] usable
BIOS-e820: [mem 0x0000020000000000-0x00000203ffffffff] usable
BIOS-e820: [mem 0x00003fdfe0000000-0x00003fdff3ffffff] reserved
BIOS-e820: [mem 0x00003fe060000000-0x00003fe073ffffff] reserved
BIOS-e820: [mem 0x00003fe0e0000000-0x00003fe0f3ffffff] reserved
BIOS-e820: [mem 0x00003fe160000000-0x00003fe173ffffff] reserved
BIOS-e820: [mem 0x00003fe1e0000000-0x00003fe1f3ffffff] reserved
BIOS-e820: [mem 0x00003fe260000000-0x00003fe273ffffff] reserved
BIOS-e820: [mem 0x00003fe2e0000000-0x00003fe2f3ffffff] reserved
BIOS-e820: [mem 0x00003fe360000000-0x00003fe373ffffff] reserved
BIOS-e820: [mem 0x00003fe3e0000000-0x00003fe3f3ffffff] reserved
BIOS-e820: [mem 0x00003fe460000000-0x00003fe473ffffff] reserved
BIOS-e820: [mem 0x00003fe4e0000000-0x00003fe4f3ffffff] reserved
BIOS-e820: [mem 0x00003fe560000000-0x00003fe573ffffff] reserved
BIOS-e820: [mem 0x00003fe5e0000000-0x00003fe5f3ffffff] reserved
BIOS-e820: [mem 0x00003fe660000000-0x00003fe673ffffff] reserved
BIOS-e820: [mem 0x00003fe6e0000000-0x00003fe6f3ffffff] reserved
BIOS-e820: [mem 0x00003fe760000000-0x00003fe773ffffff] reserved
BIOS-e820: [mem 0x00003fe7e0000000-0x00003fe7f3ffffff] reserved
NX (Execute Disable) protection: active
efi: EFI v2.31 by HP
efi: ACPI=0x73ffe000 ACPI 2.0=0x73ffe014 SMBIOS=0x72ef8000
efi: mem00: type=3, attr=0xf, range=[0x0000000000000000-0x0000000000001000) (0MB)
efi: mem01: type=7, attr=0xf, range=[0x0000000000001000-0x000000000008c000) (0MB)
efi: mem02: type=2, attr=0xf, range=[0x000000000008c000-0x000000000008e000) (0MB)
efi: mem03: type=0, attr=0xf, range=[0x000000000008e000-0x0000000000090000) (0MB)
efi: mem04: type=7, attr=0xf, range=[0x0000000000090000-0x00000000000a0000) (0MB)
efi: mem05: type=7, attr=0xf, range=[0x0000000000100000-0x0000000010000000) (255MB)
efi: mem06: type=3, attr=0xf, range=[0x0000000010000000-0x0000000010065000) (0MB)
efi: mem07: type=7, attr=0xf, range=[0x0000000010065000-0x000000005de00000) (1245MB)
efi: mem08: type=4, attr=0xf, range=[0x000000005de00000-0x000000005e000000) (2MB)
efi: mem09: type=7, attr=0xf, range=[0x000000005e000000-0x000000006d652000) (246MB)
efi: mem10: type=2, attr=0xf, range=[0x000000006d652000-0x000000006de78000) (8MB)
efi: mem11: type=10, attr=0xf, range=[0x000000006de78000-0x000000006ee78000) (16MB)
efi: mem12: type=4, attr=0xf, range=[0x000000006ee78000-0x00000000709fc000) (27MB)
efi: mem13: type=7, attr=0xf, range=[0x00000000709fc000-0x0000000070dfa000) (3MB)
efi: mem14: type=2, attr=0xf, range=[0x0000000070dfa000-0x0000000070dff000) (0MB)
efi: mem15: type=7, attr=0xf, range=[0x0000000070dff000-0x000000007109e000) (2MB)
efi: mem16: type=1, attr=0xf, range=[0x000000007109e000-0x00000000711ff000) (1MB)
efi: mem17: type=7, attr=0xf, range=[0x00000000711ff000-0x000000007182d000) (6MB)
efi: mem18: type=3, attr=0xf, range=[0x000000007182d000-0x00000000721ff000) (9MB)
efi: mem19: type=6, attr=0x800000000000000f, range=[0x00000000721ff000-0x00000000725ff000) (4MB)
efi: mem20: type=5, attr=0x800000000000000f, range=[0x00000000725ff000-0x0000000072dff000) (8MB)
efi: mem21: type=0, attr=0xf, range=[0x0000000072dff000-0x0000000072eff000) (1MB)
efi: mem22: type=10, attr=0xf, range=[0x0000000072eff000-0x0000000073eff000) (16MB)
efi: mem23: type=9, attr=0xf, range=[0x0000000073eff000-0x0000000073fff000) (1MB)
efi: mem24: type=7, attr=0xf, range=[0x0000000073fff000-0x000000007413e000) (1MB)
efi: mem25: type=2, attr=0xf, range=[0x000000007413e000-0x00000000752e9000) (17MB)
efi: mem26: type=4, attr=0xf, range=[0x00000000752e9000-0x000000007540a000) (1MB)
efi: mem27: type=7, attr=0xf, range=[0x000000007540a000-0x0000000075462000) (0MB)
efi: mem28: type=4, attr=0xf, range=[0x0000000075462000-0x000000007c000000) (107MB)
efi: mem29: type=7, attr=0xf, range=[0x0000000100000000-0x0000000880000000) (30720MB)
efi: mem30: type=7, attr=0xf, range=[0x0000020000000000-0x0000020400000000) (16384MB)
efi: mem31: type=11, attr=0x8000000000000001, range=[0x0000000080000000-0x0000000090000000) (256MB)
efi: mem32: type=11, attr=0x8000000000000001, range=[0x00000000fed1c000-0x00000000fed20000) (0MB)
efi: mem33: type=11, attr=0x8000000000000001, range=[0x00000000ff000000-0x00000000ff200000) (2MB)
efi: mem34: type=11, attr=0x8000000000000001, range=[0x00003fdfe0000000-0x00003fdff4000000) (320MB)
efi: mem35: type=11, attr=0x8000000000000001, range=[0x00003fe060000000-0x00003fe074000000) (320MB)
efi: mem36: type=11, attr=0x8000000000000001, range=[0x00003fe0e0000000-0x00003fe0f4000000) (320MB)
efi: mem37: type=11, attr=0x8000000000000001, range=[0x00003fe160000000-0x00003fe174000000) (320MB)
efi: mem38: type=11, attr=0x8000000000000001, range=[0x00003fe1e0000000-0x00003fe1f4000000) (320MB)
efi: mem39: type=11, attr=0x8000000000000001, range=[0x00003fe260000000-0x00003fe274000000) (320MB)
efi: mem40: type=11, attr=0x8000000000000001, range=[0x00003fe2e0000000-0x00003fe2f4000000) (320MB)
efi: mem41: type=11, attr=0x8000000000000001, range=[0x00003fe360000000-0x00003fe374000000) (320MB)
efi: mem42: type=11, attr=0x8000000000000001, range=[0x00003fe3e0000000-0x00003fe3f4000000) (320MB)
efi: mem43: type=11, attr=0x8000000000000001, range=[0x00003fe460000000-0x00003fe474000000) (320MB)
efi: mem44: type=11, attr=0x8000000000000001, range=[0x00003fe4e0000000-0x00003fe4f4000000) (320MB)
efi: mem45: type=11, attr=0x8000000000000001, range=[0x00003fe560000000-0x00003fe574000000) (320MB)
efi: mem46: type=11, attr=0x8000000000000001, range=[0x00003fe5e0000000-0x00003fe5f4000000) (320MB)
efi: mem47: type=11, attr=0x8000000000000001, range=[0x00003fe660000000-0x00003fe674000000) (320MB)
efi: mem48: type=11, attr=0x8000000000000001, range=[0x00003fe6e0000000-0x00003fe6f4000000) (320MB)
efi: mem49: type=11, attr=0x8000000000000001, range=[0x00003fe760000000-0x00003fe774000000) (320MB)
efi: mem50: type=11, attr=0x8000000000000001, range=[0x00003fe7e0000000-0x00003fe7f4000000) (320MB)
SMBIOS 2.7 present.
No AGP bridge found
e820: last_pfn = 0x20400000 max_arch_pfn = 0x400000000
x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
x2apic enabled by BIOS, switching to x2apic ops
e820: last_pfn = 0x7c000 max_arch_pfn = 0x400000000
Using GB pages for direct mapping
init_memory_mapping: [mem 0x00000000-0x000fffff]
init_memory_mapping: [mem 0x203ffe00000-0x203ffffffff]
init_memory_mapping: [mem 0x203fc000000-0x203ffdfffff]
init_memory_mapping: [mem 0x20380000000-0x203fbffffff]
init_memory_mapping: [mem 0x20000000000-0x2037fffffff]
init_memory_mapping: [mem 0x00100000-0x6de77fff]
init_memory_mapping: [mem 0x6ee78000-0x721fefff]
init_memory_mapping: [mem 0x73fff000-0x7bffffff]
init_memory_mapping: [mem 0x100000000-0x87fffffff]
RAMDISK: [mem 0x7413e000-0x752e8fff]
Reserving 512MB of memory at 384MB for crashkernel (System RAM: 49041MB)
ACPI: RSDP 0000000073ffe014 00024 (v02 HP )
ACPI: XSDT 0000000073ffd0e8 000AC (v01 HP 03010201 00000002 MSFT 01000013)
ACPI: FACP 0000000073ffb000 0010C (v05 HP 03010201 00000002 HPAG 00020000)
ACPI: DSDT 0000000073ff1000 00864 (v02 HP CORE 00000002 HPAG 00020000)
ACPI: FACS 0000000073e82000 00040
ACPI: MCEJ 0000000073ffc000 00130 (v01 HP 03010201 00000002 HPAG 00020000)
ACPI: HPET 0000000073ffa000 00038 (v01 HP 03010201 00000002 HPAG 00020000)
ACPI: MCFG 0000000073ff9000 0003C (v01 HP 03010201 00000002 HPAG 00020000)
ACPI: SLIT 0000000073ff8000 0003C (v01 HP 03010201 00000002 HPAG 00020000)
ACPI: APIC 0000000073ff7000 00684 (v03 HP 03010201 00000002 HPAG 00020000)
ACPI: SRAT 0000000073ff6000 005E8 (v02 HP 03010201 00000002 HPAG 00020000)
ACPI: SPMI 0000000073ff5000 00040 (v05 HP 03010201 00000002 HPAG 00020000)
ACPI: SPCR 0000000073ff4000 00050 (v01 HP 03010201 00000002 HPAG 00020000)
ACPI: DBGP 0000000073ff3000 00034 (v01 HP 03010201 00000002 HPAG 00020000)
ACPI: RASF 0000000073ff2000 00030 (v01 HP 03010201 00000002 HPAG 00020000)
ACPI: SSDT 0000000073fda000 166BC (v02 HP BLADE000 00000002 HPAG 00020000)
ACPI: DMAR 0000000073fd8000 001D0 (v01 HP 03010201 00000002 HPAG 00020000)
ACPI: HEST 0000000073fd7000 00144 (v01 INTEL 00000001 INTL 00000001)
ACPI: BERT 0000000073fd6000 00030 (v01 INTEL 00000001 INTL 00000001)
ACPI: ERST 0000000073fd5000 00230 (v01 INTEL 00000001 INTL 00000001)
ACPI: EINJ 0000000073fd4000 00150 (v01 INTEL 00000001 INTL 00000001)
Setting APIC routing to physical x2apic.
SRAT: PXM 1 -> APIC 0x0000 -> Node 0
SRAT: PXM 1 -> APIC 0x0001 -> Node 0
SRAT: PXM 1 -> APIC 0x0002 -> Node 0
SRAT: PXM 1 -> APIC 0x0003 -> Node 0
SRAT: PXM 1 -> APIC 0x0004 -> Node 0
SRAT: PXM 1 -> APIC 0x0005 -> Node 0
SRAT: PXM 1 -> APIC 0x0006 -> Node 0
SRAT: PXM 1 -> APIC 0x0007 -> Node 0
SRAT: PXM 1 -> APIC 0x0008 -> Node 0
SRAT: PXM 1 -> APIC 0x0009 -> Node 0
SRAT: PXM 1 -> APIC 0x000a -> Node 0
SRAT: PXM 1 -> APIC 0x000b -> Node 0
SRAT: PXM 1 -> APIC 0x000c -> Node 0
SRAT: PXM 1 -> APIC 0x000d -> Node 0
SRAT: PXM 1 -> APIC 0x000e -> Node 0
SRAT: PXM 1 -> APIC 0x000f -> Node 0
SRAT: PXM 1 -> APIC 0x0010 -> Node 0
SRAT: PXM 1 -> APIC 0x0011 -> Node 0
SRAT: PXM 1 -> APIC 0x0012 -> Node 0
SRAT: PXM 1 -> APIC 0x0013 -> Node 0
SRAT: PXM 1 -> APIC 0x0014 -> Node 0
SRAT: PXM 1 -> APIC 0x0015 -> Node 0
SRAT: PXM 1 -> APIC 0x0016 -> Node 0
SRAT: PXM 1 -> APIC 0x0017 -> Node 0
SRAT: PXM 1 -> APIC 0x0018 -> Node 0
SRAT: PXM 1 -> APIC 0x0019 -> Node 0
SRAT: PXM 1 -> APIC 0x001a -> Node 0
SRAT: PXM 1 -> APIC 0x001b -> Node 0
SRAT: PXM 2 -> APIC 0x0022 -> Node 1
SRAT: PXM 2 -> APIC 0x0023 -> Node 1
SRAT: PXM 2 -> APIC 0x0024 -> Node 1
SRAT: PXM 2 -> APIC 0x0025 -> Node 1
SRAT: PXM 2 -> APIC 0x0026 -> Node 1
SRAT: PXM 2 -> APIC 0x0027 -> Node 1
SRAT: PXM 2 -> APIC 0x0028 -> Node 1
SRAT: PXM 2 -> APIC 0x0029 -> Node 1
SRAT: PXM 2 -> APIC 0x002a -> Node 1
SRAT: PXM 2 -> APIC 0x002b -> Node 1
SRAT: PXM 2 -> APIC 0x002c -> Node 1
SRAT: PXM 2 -> APIC 0x002d -> Node 1
SRAT: PXM 2 -> APIC 0x002e -> Node 1
SRAT: PXM 2 -> APIC 0x002f -> Node 1
SRAT: PXM 2 -> APIC 0x0030 -> Node 1
SRAT: PXM 2 -> APIC 0x0031 -> Node 1
SRAT: PXM 2 -> APIC 0x0032 -> Node 1
SRAT: PXM 2 -> APIC 0x0033 -> Node 1
SRAT: PXM 2 -> APIC 0x0034 -> Node 1
SRAT: PXM 2 -> APIC 0x0035 -> Node 1
SRAT: PXM 2 -> APIC 0x0036 -> Node 1
SRAT: PXM 2 -> APIC 0x0037 -> Node 1
SRAT: PXM 2 -> APIC 0x0038 -> Node 1
SRAT: PXM 2 -> APIC 0x0039 -> Node 1
SRAT: PXM 2 -> APIC 0x003a -> Node 1
SRAT: PXM 2 -> APIC 0x003b -> Node 1
SRAT: PXM 2 -> APIC 0x003c -> Node 1
SRAT: PXM 2 -> APIC 0x003d -> Node 1
SRAT: Node 0 PXM 1 [mem 0x00000000-0x7fffffff]
SRAT: Node 0 PXM 1 [mem 0x100000000-0x87fffffff]
SRAT: Node 1 PXM 2 [mem 0x20000000000-0x203ffffffff]
NUMA: Warning: node ids are out of bound, from=-1 to=-1 distance=10
NUMA: Node 0 [mem 0x00000000-0x7fffffff] + [mem 0x100000000-0x87fffffff] -> [mem 0x00000000-0x87fffffff]
Initmem setup node 0 [mem 0x00000000-0x87fffffff]
NODE_DATA [mem 0x87ffd9000-0x87fffffff]
Initmem setup node 1 [mem 0x20000000000-0x203ffffffff]
NODE_DATA [mem 0x203fffd5000-0x203ffffbfff]
Zone ranges:
DMA [mem 0x00001000-0x00ffffff]
DMA32 [mem 0x01000000-0xffffffff]
Normal [mem 0x100000000-0x203ffffffff]
Movable zone start for each node
Early memory node ranges
node 0: [mem 0x00001000-0x0008dfff]
node 0: [mem 0x00090000-0x0009ffff]
node 0: [mem 0x00100000-0x6de77fff]
node 0: [mem 0x6ee78000-0x721fefff]
node 0: [mem 0x73fff000-0x7bffffff]
node 0: [mem 0x100000000-0x87fffffff]
node 1: [mem 0x20000000000-0x203ffffffff]
ACPI: X2APIC (apic_id[0x00] uid[0x00] enabled)
ACPI: X2APIC (apic_id[0x02] uid[0x02] enabled)
ACPI: X2APIC (apic_id[0x04] uid[0x04] enabled)
ACPI: X2APIC (apic_id[0x06] uid[0x06] enabled)
ACPI: X2APIC (apic_id[0x08] uid[0x08] enabled)
ACPI: X2APIC (apic_id[0x0a] uid[0x0a] enabled)
ACPI: X2APIC (apic_id[0x0c] uid[0x0c] enabled)
ACPI: X2APIC (apic_id[0x0e] uid[0x0e] enabled)
ACPI: X2APIC (apic_id[0x10] uid[0x10] enabled)
ACPI: X2APIC (apic_id[0x12] uid[0x12] enabled)
ACPI: X2APIC (apic_id[0x14] uid[0x14] enabled)
ACPI: X2APIC (apic_id[0x16] uid[0x16] enabled)
ACPI: X2APIC (apic_id[0x18] uid[0x18] enabled)
ACPI: X2APIC (apic_id[0x1a] uid[0x1a] enabled)
ACPI: X2APIC (apic_id[0x22] uid[0x26] enabled)
ACPI: X2APIC (apic_id[0x24] uid[0x28] enabled)
ACPI: X2APIC (apic_id[0x26] uid[0x2a] enabled)
ACPI: X2APIC (apic_id[0x28] uid[0x2c] enabled)
ACPI: X2APIC (apic_id[0x2a] uid[0x2e] enabled)
ACPI: X2APIC (apic_id[0x2c] uid[0x30] enabled)
ACPI: X2APIC (apic_id[0x2e] uid[0x32] enabled)
ACPI: X2APIC (apic_id[0x30] uid[0x34] enabled)
ACPI: X2APIC (apic_id[0x32] uid[0x36] enabled)
ACPI: X2APIC (apic_id[0x34] uid[0x38] enabled)
ACPI: X2APIC (apic_id[0x36] uid[0x3a] enabled)
ACPI: X2APIC (apic_id[0x38] uid[0x3c] enabled)
ACPI: X2APIC (apic_id[0x3a] uid[0x3e] enabled)
ACPI: X2APIC (apic_id[0x3c] uid[0x40] enabled)
ACPI: X2APIC (apic_id[0x01] uid[0x01] enabled)
ACPI: X2APIC (apic_id[0x03] uid[0x03] enabled)
ACPI: X2APIC (apic_id[0x05] uid[0x05] enabled)
ACPI: X2APIC (apic_id[0x07] uid[0x07] enabled)
ACPI: X2APIC (apic_id[0x09] uid[0x09] enabled)
ACPI: X2APIC (apic_id[0x0b] uid[0x0b] enabled)
ACPI: X2APIC (apic_id[0x0d] uid[0x0d] enabled)
ACPI: X2APIC (apic_id[0x0f] uid[0x0f] enabled)
ACPI: X2APIC (apic_id[0x11] uid[0x11] enabled)
ACPI: X2APIC (apic_id[0x13] uid[0x13] enabled)
ACPI: X2APIC (apic_id[0x15] uid[0x15] enabled)
ACPI: X2APIC (apic_id[0x17] uid[0x17] enabled)
ACPI: X2APIC (apic_id[0x19] uid[0x19] enabled)
ACPI: X2APIC (apic_id[0x1b] uid[0x1b] enabled)
ACPI: X2APIC (apic_id[0x23] uid[0x27] enabled)
ACPI: X2APIC (apic_id[0x25] uid[0x29] enabled)
ACPI: X2APIC (apic_id[0x27] uid[0x2b] enabled)
ACPI: X2APIC (apic_id[0x29] uid[0x2d] enabled)
ACPI: X2APIC (apic_id[0x2b] uid[0x2f] enabled)
ACPI: X2APIC (apic_id[0x2d] uid[0x31] enabled)
ACPI: X2APIC (apic_id[0x2f] uid[0x33] enabled)
ACPI: X2APIC (apic_id[0x31] uid[0x35] enabled)
ACPI: X2APIC (apic_id[0x33] uid[0x37] enabled)
ACPI: X2APIC (apic_id[0x35] uid[0x39] enabled)
ACPI: X2APIC (apic_id[0x37] uid[0x3b] enabled)
ACPI: X2APIC (apic_id[0x39] uid[0x3d] enabled)
ACPI: X2APIC (apic_id[0x3b] uid[0x3f] enabled)
ACPI: X2APIC (apic_id[0x3d] uid[0x41] enabled)
ACPI: X2APIC_NMI (uid[0x00] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x01] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x02] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x03] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x04] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x05] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x06] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x07] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x08] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x09] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x0a] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x0b] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x0c] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x0d] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x0e] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x0f] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x10] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x11] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x12] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x13] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x14] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x15] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x16] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x17] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x18] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x19] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x1a] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x1b] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x26] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x27] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x28] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x29] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x2a] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x2b] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x2c] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x2d] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x2e] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x2f] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x30] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x31] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x32] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x33] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x34] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x35] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x36] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x37] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x38] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x39] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x3a] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x3b] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x3c] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x3d] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x3e] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x3f] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x40] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x41] high level lint[0x1])
ACPI: IOAPIC (id[0x08] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 8, version 32, address 0xfec00000, GSI 0-23
ACPI: IOAPIC (id[0x09] address[0xfec01000] gsi_base[24])
IOAPIC[1]: apic_id 9, version 32, address 0xfec01000, GSI 24-47
ACPI: IOAPIC (id[0x0a] address[0xfec04000] gsi_base[48])
IOAPIC[2]: apic_id 10, version 32, address 0xfec04000, GSI 48-71
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
Using ACPI (MADT) for SMP configuration information
ACPI: HPET id: 0x8086a301 base: 0xfed00000
smpboot: Allowing 56 CPUs, 0 hotplug CPUs
PM: Registered nosave memory: [mem 0x0008e000-0x0008ffff]
PM: Registered nosave memory: [mem 0x000a0000-0x000fffff]
PM: Registered nosave memory: [mem 0x6de78000-0x6ee77fff]
PM: Registered nosave memory: [mem 0x721ff000-0x72efefff]
PM: Registered nosave memory: [mem 0x72eff000-0x73efefff]
PM: Registered nosave memory: [mem 0x73eff000-0x73ffefff]
PM: Registered nosave memory: [mem 0x7c000000-0x7fffffff]
PM: Registered nosave memory: [mem 0x80000000-0x8fffffff]
PM: Registered nosave memory: [mem 0x90000000-0xfed1bfff]
PM: Registered nosave memory: [mem 0xfed1c000-0xfed1ffff]
PM: Registered nosave memory: [mem 0xfed20000-0xfeffffff]
PM: Registered nosave memory: [mem 0xff000000-0xff1fffff]
PM: Registered nosave memory: [mem 0xff200000-0xffffffff]
PM: Registered nosave memory: [mem 0x880000000-0x1ffffffffff]
e820: [mem 0x90000000-0xfed1bfff] available for PCI devices
setup_percpu: NR_CPUS:256 nr_cpumask_bits:256 nr_cpu_ids:56 nr_node_ids:2
PERCPU: Embedded 27 pages/cpu @ffff88087fa00000 s80704 r8192 d21696 u131072
Built 2 zonelists in Zone order, mobility grouping on. Total pages: 12382984
Policy zone: Normal
Kernel command line: ro root=/dev/mapper/vg_dhf1-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD KEYTABLE=us console=ttyS0,115200 rd_LVM_LV=vg_dhf1/lv_swap crashkernel=512M rd_LVM_LV=vg_dhf1/lv_root SYSFONT=latarcyrheb-sun16 rd_NO_DM
PID hash table entries: 4096 (order: 3, 32768 bytes)
xsave: enabled xstate_bv 0x7, cntxt size 0x340
Checking aperture...
No AGP bridge found
Memory: 48748476K/50218612K available (5405K kernel code, 854K rwdata, 2576K rodata, 1672K init, 1872K bss, 1470136K reserved)
Hierarchical RCU implementation.
RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=56.
NR_IRQS:16640 nr_irqs:1944 16
Console: colour dummy device 80x25
console [ttyS0] enabled
tsc: Fast TSC calibration using PIT
tsc: Detected 2799.880 MHz processor
Calibrating delay loop (skipped), value calculated using timer frequency.. 5599.76 BogoMIPS (lpj=2799880)
pid_max: default: 57344 minimum: 448
PA: 0x0 -> VA: 0x0
PA: 0x0 -> VA: 0xffffffff00000000
PA: 0x10000000 -> VA: 0x10000000
PA: 0x10000000 -> VA: 0xfffffffeffe00000
PA: 0x5de00000 -> VA: 0x5de00000
PA: 0x5de00000 -> VA: 0xfffffffeffc00000
PA: 0x6ee78000 -> VA: 0x6ee78000
PA: 0x6ee78000 -> VA: 0xfffffffefe078000
PA: 0x7182d000 -> VA: 0x7182d000
PA: 0x7182d000 -> VA: 0xfffffffefd62d000
PA: 0x721ff000 -> VA: 0x721ff000
PA: 0x721ff000 -> VA: 0xfffffffefd1ff000
PA: 0x725ff000 -> VA: 0x725ff000
PA: 0x725ff000 -> VA: 0xfffffffefc9ff000
PA: 0x752e9000 -> VA: 0x752e9000
PA: 0x752e9000 -> VA: 0xfffffffefc6e9000
PA: 0x75462000 -> VA: 0x75462000
PA: 0x75462000 -> VA: 0xfffffffef5a62000
PA: 0x80000000 -> VA: 0x80000000
PA: 0x80000000 -> VA: 0xfffffffee5a00000
PA: 0xfed1c000 -> VA: 0xfed1c000
PA: 0xfed1c000 -> VA: 0xfffffffee591c000
PA: 0xff000000 -> VA: 0xff000000
PA: 0xff000000 -> VA: 0xfffffffee5600000
PA: 0x3fdfe0000000 -> VA: 0x3fdfe0000000
PA: 0x3fdfe0000000 -> VA: 0xfffffffed1600000
PA: 0x3fe060000000 -> VA: 0x3fe060000000
PA: 0x3fe060000000 -> VA: 0xfffffffebd600000
PA: 0x3fe0e0000000 -> VA: 0x3fe0e0000000
PA: 0x3fe0e0000000 -> VA: 0xfffffffea9600000
PA: 0x3fe160000000 -> VA: 0x3fe160000000
PA: 0x3fe160000000 -> VA: 0xfffffffe95600000
PA: 0x3fe1e0000000 -> VA: 0x3fe1e0000000
PA: 0x3fe1e0000000 -> VA: 0xfffffffe81600000
PA: 0x3fe260000000 -> VA: 0x3fe260000000
PA: 0x3fe260000000 -> VA: 0xfffffffe6d600000
PA: 0x3fe2e0000000 -> VA: 0x3fe2e0000000
PA: 0x3fe2e0000000 -> VA: 0xfffffffe59600000
PA: 0x3fe360000000 -> VA: 0x3fe360000000
PA: 0x3fe360000000 -> VA: 0xfffffffe45600000
PA: 0x3fe3e0000000 -> VA: 0x3fe3e0000000
PA: 0x3fe3e0000000 -> VA: 0xfffffffe31600000
PA: 0x3fe460000000 -> VA: 0x3fe460000000
PA: 0x3fe460000000 -> VA: 0xfffffffe1d600000
PA: 0x3fe4e0000000 -> VA: 0x3fe4e0000000
PA: 0x3fe4e0000000 -> VA: 0xfffffffe09600000
PA: 0x3fe560000000 -> VA: 0x3fe560000000
PA: 0x3fe560000000 -> VA: 0xfffffffdf5600000
PA: 0x3fe5e0000000 -> VA: 0x3fe5e0000000
PA: 0x3fe5e0000000 -> VA: 0xfffffffde1600000
PA: 0x3fe660000000 -> VA: 0x3fe660000000
PA: 0x3fe660000000 -> VA: 0xfffffffdcd600000
PA: 0x3fe6e0000000 -> VA: 0x3fe6e0000000
PA: 0x3fe6e0000000 -> VA: 0xfffffffdb9600000
PA: 0x3fe760000000 -> VA: 0x3fe760000000
PA: 0x3fe760000000 -> VA: 0xfffffffda5600000
PA: 0x3fe7e0000000 -> VA: 0x3fe7e0000000
PA: 0x3fe7e0000000 -> VA: 0xfffffffd91600000
efi: desc_size: 48, count: 29, new_memmap: ffff8a03fec16800, pa: 0x203fec16800
---[ User Space ]---
0x0000000000000000-0x0000000000200000 2M RW GLB NX pte
0x0000000000200000-0x0000000010000000 254M RW PSE GLB NX pmd
0x0000000010000000-0x0000000010065000 404K RW GLB x pte
0x0000000010065000-0x0000000010200000 1644K RW GLB NX pte
0x0000000010200000-0x000000005de00000 1244M RW PSE GLB NX pmd
0x000000005de00000-0x000000005e000000 2M RW PSE GLB x pmd
0x000000005e000000-0x000000006de00000 254M RW PSE GLB NX pmd
0x000000006de00000-0x000000006de78000 480K RW GLB NX pte
0x000000006de78000-0x000000006e000000 1568K pte
0x000000006e000000-0x000000006ee00000 14M pmd
0x000000006ee00000-0x000000006ee78000 480K pte
0x000000006ee78000-0x000000006f000000 1568K RW GLB x pte
0x000000006f000000-0x0000000070800000 24M RW PSE GLB x pmd
0x0000000070800000-0x00000000709fc000 2032K RW GLB x pte
0x00000000709fc000-0x0000000070a00000 16K RW GLB NX pte
0x0000000070a00000-0x0000000071800000 14M RW PSE GLB NX pmd
0x0000000071800000-0x000000007182d000 180K RW GLB NX pte
0x000000007182d000-0x0000000071a00000 1868K RW GLB x pte
0x0000000071a00000-0x0000000072000000 6M RW PSE GLB x pmd
0x0000000072000000-0x00000000721ff000 2044K RW GLB x pte
0x00000000721ff000-0x0000000072200000 4K RW x pte
0x0000000072200000-0x0000000072400000 2M RW PSE x pmd
0x0000000072400000-0x0000000072600000 2M RW x pte
0x0000000072600000-0x0000000072c00000 6M RW PSE x pmd
0x0000000072c00000-0x0000000072dff000 2044K RW x pte
0x0000000072dff000-0x0000000072e00000 4K pte
0x0000000072e00000-0x0000000073e00000 16M pmd
0x0000000073e00000-0x0000000073fff000 2044K pte
0x0000000073fff000-0x0000000074000000 4K RW GLB NX pte
0x0000000074000000-0x0000000075200000 18M RW PSE GLB NX pmd
0x0000000075200000-0x00000000752e9000 932K RW GLB NX pte
0x00000000752e9000-0x000000007540a000 1156K RW GLB x pte
0x000000007540a000-0x0000000075462000 352K RW GLB NX pte
0x0000000075462000-0x0000000075600000 1656K RW GLB x pte
0x0000000075600000-0x000000007c000000 106M RW PSE GLB x pmd
0x000000007c000000-0x0000000080000000 64M pmd
0x0000000080000000-0x0000000090000000 256M RW PCD PSE x pmd
0x0000000090000000-0x00000000fec00000 1772M pmd
0x00000000fec00000-0x00000000fed1c000 1136K pte
0x00000000fed1c000-0x00000000fed20000 16K RW PCD x pte
0x00000000fed20000-0x00000000fee00000 896K pte
0x00000000fee00000-0x00000000ff000000 2M pmd
0x00000000ff000000-0x00000000ff200000 2M RW PCD PSE x pmd
0x00000000ff200000-0x0000000100000000 14M pmd
0x0000000100000000-0x0000000880000000 30G RW PSE GLB NX pud
0x0000000880000000-0x0000008000000000 478G pud
0x0000008000000000-0x00003f8000000000 63T pgd
0x00003f8000000000-0x00003fdfc0000000 383G pud
0x00003fdfc0000000-0x00003fdfe0000000 512M pmd
0x00003fdfe0000000-0x00003fdff4000000 320M RW PCD PSE x pmd
0x00003fdff4000000-0x00003fe000000000 192M pmd
0x00003fe000000000-0x00003fe040000000 1G pud
0x00003fe040000000-0x00003fe060000000 512M pmd
0x00003fe060000000-0x00003fe074000000 320M RW PCD PSE x pmd
0x00003fe074000000-0x00003fe080000000 192M pmd
0x00003fe080000000-0x00003fe0c0000000 1G pud
0x00003fe0c0000000-0x00003fe0e0000000 512M pmd
0x00003fe0e0000000-0x00003fe0f4000000 320M RW PCD PSE x pmd
0x00003fe0f4000000-0x00003fe100000000 192M pmd
0x00003fe100000000-0x00003fe140000000 1G pud
0x00003fe140000000-0x00003fe160000000 512M pmd
0x00003fe160000000-0x00003fe174000000 320M RW PCD PSE x pmd
0x00003fe174000000-0x00003fe180000000 192M pmd
0x00003fe180000000-0x00003fe1c0000000 1G pud
0x00003fe1c0000000-0x00003fe1e0000000 512M pmd
0x00003fe1e0000000-0x00003fe1f4000000 320M RW PCD PSE x pmd
0x00003fe1f4000000-0x00003fe200000000 192M pmd
0x00003fe200000000-0x00003fe240000000 1G pud
0x00003fe240000000-0x00003fe260000000 512M pmd
0x00003fe260000000-0x00003fe274000000 320M RW PCD PSE x pmd
0x00003fe274000000-0x00003fe280000000 192M pmd
0x00003fe280000000-0x00003fe2c0000000 1G pud
0x00003fe2c0000000-0x00003fe2e0000000 512M pmd
0x00003fe2e0000000-0x00003fe2f4000000 320M RW PCD PSE x pmd
0x00003fe2f4000000-0x00003fe300000000 192M pmd
0x00003fe300000000-0x00003fe340000000 1G pud
0x00003fe340000000-0x00003fe360000000 512M pmd
0x00003fe360000000-0x00003fe374000000 320M RW PCD PSE x pmd
0x00003fe374000000-0x00003fe380000000 192M pmd
0x00003fe380000000-0x00003fe3c0000000 1G pud
0x00003fe3c0000000-0x00003fe3e0000000 512M pmd
0x00003fe3e0000000-0x00003fe3f4000000 320M RW PCD PSE x pmd
0x00003fe3f4000000-0x00003fe400000000 192M pmd
0x00003fe400000000-0x00003fe440000000 1G pud
0x00003fe440000000-0x00003fe460000000 512M pmd
0x00003fe460000000-0x00003fe474000000 320M RW PCD PSE x pmd
0x00003fe474000000-0x00003fe480000000 192M pmd
0x00003fe480000000-0x00003fe4c0000000 1G pud
0x00003fe4c0000000-0x00003fe4e0000000 512M pmd
0x00003fe4e0000000-0x00003fe4f4000000 320M RW PCD PSE x pmd
0x00003fe4f4000000-0x00003fe500000000 192M pmd
0x00003fe500000000-0x00003fe540000000 1G pud
0x00003fe540000000-0x00003fe560000000 512M pmd
0x00003fe560000000-0x00003fe574000000 320M RW PCD PSE x pmd
0x00003fe574000000-0x00003fe580000000 192M pmd
0x00003fe580000000-0x00003fe5c0000000 1G pud
0x00003fe5c0000000-0x00003fe5e0000000 512M pmd
0x00003fe5e0000000-0x00003fe5f4000000 320M RW PCD PSE x pmd
0x00003fe5f4000000-0x00003fe600000000 192M pmd
0x00003fe600000000-0x00003fe640000000 1G pud
0x00003fe640000000-0x00003fe660000000 512M pmd
0x00003fe660000000-0x00003fe674000000 320M RW PCD PSE x pmd
0x00003fe674000000-0x00003fe680000000 192M pmd
0x00003fe680000000-0x00003fe6c0000000 1G pud
0x00003fe6c0000000-0x00003fe6e0000000 512M pmd
0x00003fe6e0000000-0x00003fe6f4000000 320M RW PCD PSE x pmd
0x00003fe6f4000000-0x00003fe700000000 192M pmd
0x00003fe700000000-0x00003fe740000000 1G pud
0x00003fe740000000-0x00003fe760000000 512M pmd
0x00003fe760000000-0x00003fe774000000 320M RW PCD PSE x pmd
0x00003fe774000000-0x00003fe780000000 192M pmd
0x00003fe780000000-0x00003fe7c0000000 1G pud
0x00003fe7c0000000-0x00003fe7e0000000 512M pmd
0x00003fe7e0000000-0x00003fe7f4000000 320M RW PCD PSE x pmd
0x00003fe7f4000000-0x00003fe800000000 192M pmd
0x00003fe800000000-0x0000400000000000 96G pud
0x0000400000000000-0xffff800000000000 16777024T pgd
---[ Kernel Space ]---
0xffff800000000000-0xffff880000000000 8T pgd
---[ Low Kernel Mapping ]---
0xffff880000000000-0xffff880000200000 2M RW GLB NX pte
0xffff880000200000-0xffff880010000000 254M RW PSE GLB NX pmd
0xffff880010000000-0xffff880010065000 404K RW GLB x pte
0xffff880010065000-0xffff880010200000 1644K RW GLB NX pte
0xffff880010200000-0xffff88005de00000 1244M RW PSE GLB NX pmd
0xffff88005de00000-0xffff88005e000000 2M RW PSE GLB x pmd
0xffff88005e000000-0xffff88006de00000 254M RW PSE GLB NX pmd
0xffff88006de00000-0xffff88006de78000 480K RW GLB NX pte
0xffff88006de78000-0xffff88006e000000 1568K pte
0xffff88006e000000-0xffff88006ee00000 14M pmd
0xffff88006ee00000-0xffff88006ee78000 480K pte
0xffff88006ee78000-0xffff88006f000000 1568K RW GLB x pte
0xffff88006f000000-0xffff880070800000 24M RW PSE GLB x pmd
0xffff880070800000-0xffff8800709fc000 2032K RW GLB x pte
0xffff8800709fc000-0xffff880070a00000 16K RW GLB NX pte
0xffff880070a00000-0xffff880071800000 14M RW PSE GLB NX pmd
0xffff880071800000-0xffff88007182d000 180K RW GLB NX pte
0xffff88007182d000-0xffff880071a00000 1868K RW GLB x pte
0xffff880071a00000-0xffff880072000000 6M RW PSE GLB x pmd
0xffff880072000000-0xffff8800721ff000 2044K RW GLB x pte
0xffff8800721ff000-0xffff880072200000 4K RW x pte
0xffff880072200000-0xffff880072400000 2M RW PSE x pmd
0xffff880072400000-0xffff880072600000 2M RW x pte
0xffff880072600000-0xffff880072c00000 6M RW PSE x pmd
0xffff880072c00000-0xffff880072dff000 2044K RW x pte
0xffff880072dff000-0xffff880072e00000 4K pte
0xffff880072e00000-0xffff880073e00000 16M pmd
0xffff880073e00000-0xffff880073fff000 2044K pte
0xffff880073fff000-0xffff880074000000 4K RW GLB NX pte
0xffff880074000000-0xffff880075200000 18M RW PSE GLB NX pmd
0xffff880075200000-0xffff8800752e9000 932K RW GLB NX pte
0xffff8800752e9000-0xffff88007540a000 1156K RW GLB x pte
0xffff88007540a000-0xffff880075462000 352K RW GLB NX pte
0xffff880075462000-0xffff880075600000 1656K RW GLB x pte
0xffff880075600000-0xffff88007c000000 106M RW PSE GLB x pmd
0xffff88007c000000-0xffff880080000000 64M pmd
0xffff880080000000-0xffff880090000000 256M RW PCD PSE x pmd
0xffff880090000000-0xffff8800fec00000 1772M pmd
0xffff8800fec00000-0xffff8800fed1c000 1136K pte
0xffff8800fed1c000-0xffff8800fed20000 16K RW PCD x pte
0xffff8800fed20000-0xffff8800fee00000 896K pte
0xffff8800fee00000-0xffff8800ff000000 2M pmd
0xffff8800ff000000-0xffff8800ff200000 2M RW PCD PSE x pmd
0xffff8800ff200000-0xffff880100000000 14M pmd
0xffff880100000000-0xffff880880000000 30G RW PSE GLB NX pud
0xffff880880000000-0xffff888000000000 478G pud
0xffff888000000000-0xffff8a0000000000 1536G pgd
0xffff8a0000000000-0xffff8a0400000000 16G RW PSE GLB NX pud
0xffff8a0400000000-0xffff8a8000000000 496G pud
0xffff8a8000000000-0xffffc90000000000 64000G pgd
---[ vmalloc() Area ]---
0xffffc90000000000-0xffffc90000001000 4K RW PCD GLB NX pte
0xffffc90000001000-0xffffc90000200000 2044K pte
0xffffc90000200000-0xffffc90040000000 1022M pmd
0xffffc90040000000-0xffffc98000000000 511G pud
0xffffc98000000000-0xffffea0000000000 33280G pgd
---[ Vmemmap ]---
0xffffea0000000000-0xffffea0001c00000 28M RW PSE GLB NX pmd
0xffffea0001c00000-0xffffea0003800000 28M pmd
0xffffea0003800000-0xffffea001dc00000 420M RW PSE GLB NX pmd
0xffffea001dc00000-0xffffea0040000000 548M pmd
0xffffea0040000000-0xffffea0700000000 27G pud
0xffffea0700000000-0xffffea070e000000 224M RW PSE GLB NX pmd
0xffffea070e000000-0xffffea0740000000 800M pmd
0xffffea0740000000-0xffffea8000000000 483G pud
0xffffea8000000000-0xffffff8000000000 21T pgd
0xffffff8000000000-0xfffffffd80000000 502G pud
0xfffffffd80000000-0xfffffffd91600000 278M pmd
0xfffffffd91600000-0xfffffffee5800000 5442M RW PCD PSE x pmd
0xfffffffee5800000-0xfffffffee591c000 1136K pte
0xfffffffee591c000-0xfffffffee5920000 16K RW PCD x pte
0xfffffffee5920000-0xfffffffee5a00000 896K pte
0xfffffffee5a00000-0xfffffffef5a00000 256M RW PCD PSE x pmd
0xfffffffef5a00000-0xfffffffef5a62000 392K pte
0xfffffffef5a62000-0xfffffffef5c00000 1656K RW x pte
0xfffffffef5c00000-0xfffffffefc600000 106M RW PSE x pmd
0xfffffffefc600000-0xfffffffefc6e9000 932K pte
0xfffffffefc6e9000-0xfffffffefc80a000 1156K RW x pte
0xfffffffefc80a000-0xfffffffefc9ff000 2004K pte
0xfffffffefc9ff000-0xfffffffefca00000 4K RW x pte
0xfffffffefca00000-0xfffffffefd000000 6M RW PSE x pmd
0xfffffffefd000000-0xfffffffefd200000 2M RW x pte
0xfffffffefd200000-0xfffffffefd400000 2M RW PSE x pmd
0xfffffffefd400000-0xfffffffefd5ff000 2044K RW x pte
0xfffffffefd5ff000-0xfffffffefd62d000 184K pte
0xfffffffefd62d000-0xfffffffefd800000 1868K RW x pte
0xfffffffefd800000-0xfffffffefde00000 6M RW PSE x pmd
0xfffffffefde00000-0xfffffffefdfff000 2044K RW x pte
0xfffffffefdfff000-0xfffffffefe078000 484K pte
0xfffffffefe078000-0xfffffffefe200000 1568K RW x pte
0xfffffffefe200000-0xfffffffeffa00000 24M RW PSE x pmd
0xfffffffeffa00000-0xfffffffeffbfc000 2032K RW x pte
0xfffffffeffbfc000-0xfffffffeffc00000 16K pte
0xfffffffeffc00000-0xfffffffeffe00000 2M RW PSE x pmd
0xfffffffeffe00000-0xfffffffeffe65000 404K RW x pte
0xfffffffeffe65000-0xffffffff00000000 1644K pte
0xffffffff00000000-0xffffffff80000000 2G pud
---[ High Kernel Mapping ]---
0xffffffff80000000-0xffffffff81000000 16M pmd
0xffffffff81000000-0xffffffff82000000 16M RW PSE GLB x pmd
0xffffffff82000000-0xffffffffa0000000 480M pmd
---[ Modules ]---
0xffffffffa0000000-0xffffffffff000000 1520M pmd
---[ End Modules ]---
0xffffffffff000000-0xffffffffff400000 4M pmd
0xffffffffff400000-0xffffffffff477000 476K pte
0xffffffffff477000-0xffffffffff478000 4K RW GLB NX pte
0xffffffffff478000-0xffffffffff579000 1028K pte
0xffffffffff579000-0xffffffffff57a000 4K ro GLB NX pte
0xffffffffff57a000-0xffffffffff5f7000 500K pte
0xffffffffff5f7000-0xffffffffff5fa000 12K RW PWT PCD GLB NX pte
0xffffffffff5fa000-0xffffffffff5fe000 16K pte
0xffffffffff5fe000-0xffffffffff5ff000 4K USR ro PWT PCD GLB NX pte
0xffffffffff5ff000-0xffffffffff601000 8K USR ro GLB NX pte
0xffffffffff601000-0xffffffffff800000 2044K pte
0xffffffffff800000-0x0000000000000000 8M pmd
BUG: unable to handle kernel paging request at 00000203fec16820
IP: [<0000000072dcda76>] 0x72dcda75
PGD 0
Oops: 0000 [#1] SMP
Modules linked in:
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.12.0+ #56
Hardware name: HP CB920s x1, BIOS Bundle: 005.028.018 SFW: 012.124.000 10/28/2013
task: ffffffff81a10480 ti: ffffffff81a00000 task.ti: ffffffff81a00000
RIP: 0010:[<0000000072dcda76>] [<0000000072dcda76>] 0x72dcda75
RSP: 0000:ffffffff81a01e08 EFLAGS: 00010206
RAX: 00000000725fee18 RBX: 00000000725feda0 RCX: 00000203fec16800
RDX: 0000000072dfe070 RSI: 0000000060000202 RDI: 0000000072dcdac8
RBP: 0000000072dd0560 R08: 0000000000000000 R09: 000000000000001d
R10: 0000000000000030 R11: 8000000000000000 R12: ffff8a03fec16800
R13: 0000000000000570 R14: 0000000000000030 R15: 000000000009c000
FS: 0000000000000000(0000) GS:ffff88087fa00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00000203fec16820 CR3: 000000000009c000 CR4: 00000000000406b0
Stack:
0000000072dfb88f 0000000000000001 0000000000002722 0000000000000000
ffffffff81acc728 0000000072dcdac8 0000000072dcdb93 0000000000000001
ffffffff81a01f80 0000000000000570 ffff880001a0f000 0000000000000000
Call Trace:
[<ffffffff81043e7a>] ? ptdump_show+0x2ba/0x2d0
[<ffffffff810462cc>] ? efi_call4+0x6c/0xf0
[<ffffffff81b02f2f>] ? efi_enter_virtual_mode+0x1f3/0x3a7
[<ffffffff81aebdf2>] ? start_kernel+0x36c/0x407
[<ffffffff81aeb88f>] ? repair_env_string+0x5c/0x5c
[<ffffffff81aeb5a3>] ? x86_64_start_reservations+0x2a/0x2c
[<ffffffff81aeb696>] ? x86_64_start_kernel+0xf1/0xf4
Code: Bad RIP value.
RIP [<0000000072dcda76>] 0x72dcda75
RSP <ffffffff81a01e08>
CR2: 00000203fec16820
---[ end trace 243af497e6e63797 ]---
Kernel panic - not syncing: Attempted to kill the idle task!
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: EFI tree kernel panic in phys_efi_set_virtual_address_map()
@ 2013-12-12 17:27 ` Toshi Kani
0 siblings, 0 replies; 20+ messages in thread
From: Toshi Kani @ 2013-12-12 17:27 UTC (permalink / raw)
To: Borislav Petkov
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-efi-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A
[-- Attachment #1: Type: text/plain, Size: 597 bytes --]
On Thu, 2013-12-12 at 09:43 -0700, Toshi Kani wrote:
> On Thu, 2013-12-12 at 17:23 +0100, Borislav Petkov wrote:
> > On Wed, Dec 11, 2013 at 06:10:20PM -0700, Toshi Kani wrote:
> > > > Unfortunately, it did not work. Hit the same panic again.
> > >
> > > dmesg output attached.
> >
> > Ok, thanks.
> >
> > Let's have a look at the EFI pagetable then. Please apply the attached
> > patch, make sure CONFIG_X86_PTDUMP is enabled, build, boot and catch
> > full dmesg again and send it to me.
>
> Yes, I will test with the change, and send a full dmesg output to you.
Attached.
Thanks!
-Toshi
[-- Attachment #2: log.efi.panic6 --]
[-- Type: text/plain, Size: 43911 bytes --]
[Linux-EFI, setup=0x10e3, size=0x425a30]
[Initrd, addr=0x7413e000, size=0x11aa91c]
Initializing cgroup subsys cpuset
Initializing cgroup subsys cpu
Initializing cgroup subsys cpuacct
Linux version 3.12.0+ (toshi-RbGIw1UOYPVo/CpIj0byZw@public.gmane.org) (gcc version 4.8.2 20131017 (Red Hat 4.8.2-1) (GCC) ) #56 SMP Thu Dec 12 09:43:25 MST 2013
Command line: ro root=/dev/mapper/vg_dhf1-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD KEYTABLE=us console=ttyS0,115200 rd_LVM_LV=vg_dhf1/lv_swap crashkernel=512M rd_LVM_LV=vg_dhf1/lv_root SYSFONT=latarcyrheb-sun16 rd_NO_DM
e820: BIOS-provided physical RAM map:
BIOS-e820: [mem 0x0000000000000000-0x000000000008dfff] usable
BIOS-e820: [mem 0x000000000008e000-0x000000000008ffff] reserved
BIOS-e820: [mem 0x0000000000090000-0x000000000009ffff] usable
BIOS-e820: [mem 0x0000000000100000-0x000000006de77fff] usable
BIOS-e820: [mem 0x000000006de78000-0x000000006ee77fff] ACPI NVS
BIOS-e820: [mem 0x000000006ee78000-0x00000000721fefff] usable
BIOS-e820: [mem 0x00000000721ff000-0x0000000072efefff] reserved
BIOS-e820: [mem 0x0000000072eff000-0x0000000073efefff] ACPI NVS
BIOS-e820: [mem 0x0000000073eff000-0x0000000073ffefff] ACPI data
BIOS-e820: [mem 0x0000000073fff000-0x000000007bffffff] usable
BIOS-e820: [mem 0x0000000080000000-0x000000008fffffff] reserved
BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed1ffff] reserved
BIOS-e820: [mem 0x00000000ff000000-0x00000000ff1fffff] reserved
BIOS-e820: [mem 0x0000000100000000-0x000000087fffffff] usable
BIOS-e820: [mem 0x0000020000000000-0x00000203ffffffff] usable
BIOS-e820: [mem 0x00003fdfe0000000-0x00003fdff3ffffff] reserved
BIOS-e820: [mem 0x00003fe060000000-0x00003fe073ffffff] reserved
BIOS-e820: [mem 0x00003fe0e0000000-0x00003fe0f3ffffff] reserved
BIOS-e820: [mem 0x00003fe160000000-0x00003fe173ffffff] reserved
BIOS-e820: [mem 0x00003fe1e0000000-0x00003fe1f3ffffff] reserved
BIOS-e820: [mem 0x00003fe260000000-0x00003fe273ffffff] reserved
BIOS-e820: [mem 0x00003fe2e0000000-0x00003fe2f3ffffff] reserved
BIOS-e820: [mem 0x00003fe360000000-0x00003fe373ffffff] reserved
BIOS-e820: [mem 0x00003fe3e0000000-0x00003fe3f3ffffff] reserved
BIOS-e820: [mem 0x00003fe460000000-0x00003fe473ffffff] reserved
BIOS-e820: [mem 0x00003fe4e0000000-0x00003fe4f3ffffff] reserved
BIOS-e820: [mem 0x00003fe560000000-0x00003fe573ffffff] reserved
BIOS-e820: [mem 0x00003fe5e0000000-0x00003fe5f3ffffff] reserved
BIOS-e820: [mem 0x00003fe660000000-0x00003fe673ffffff] reserved
BIOS-e820: [mem 0x00003fe6e0000000-0x00003fe6f3ffffff] reserved
BIOS-e820: [mem 0x00003fe760000000-0x00003fe773ffffff] reserved
BIOS-e820: [mem 0x00003fe7e0000000-0x00003fe7f3ffffff] reserved
NX (Execute Disable) protection: active
efi: EFI v2.31 by HP
efi: ACPI=0x73ffe000 ACPI 2.0=0x73ffe014 SMBIOS=0x72ef8000
efi: mem00: type=3, attr=0xf, range=[0x0000000000000000-0x0000000000001000) (0MB)
efi: mem01: type=7, attr=0xf, range=[0x0000000000001000-0x000000000008c000) (0MB)
efi: mem02: type=2, attr=0xf, range=[0x000000000008c000-0x000000000008e000) (0MB)
efi: mem03: type=0, attr=0xf, range=[0x000000000008e000-0x0000000000090000) (0MB)
efi: mem04: type=7, attr=0xf, range=[0x0000000000090000-0x00000000000a0000) (0MB)
efi: mem05: type=7, attr=0xf, range=[0x0000000000100000-0x0000000010000000) (255MB)
efi: mem06: type=3, attr=0xf, range=[0x0000000010000000-0x0000000010065000) (0MB)
efi: mem07: type=7, attr=0xf, range=[0x0000000010065000-0x000000005de00000) (1245MB)
efi: mem08: type=4, attr=0xf, range=[0x000000005de00000-0x000000005e000000) (2MB)
efi: mem09: type=7, attr=0xf, range=[0x000000005e000000-0x000000006d652000) (246MB)
efi: mem10: type=2, attr=0xf, range=[0x000000006d652000-0x000000006de78000) (8MB)
efi: mem11: type=10, attr=0xf, range=[0x000000006de78000-0x000000006ee78000) (16MB)
efi: mem12: type=4, attr=0xf, range=[0x000000006ee78000-0x00000000709fc000) (27MB)
efi: mem13: type=7, attr=0xf, range=[0x00000000709fc000-0x0000000070dfa000) (3MB)
efi: mem14: type=2, attr=0xf, range=[0x0000000070dfa000-0x0000000070dff000) (0MB)
efi: mem15: type=7, attr=0xf, range=[0x0000000070dff000-0x000000007109e000) (2MB)
efi: mem16: type=1, attr=0xf, range=[0x000000007109e000-0x00000000711ff000) (1MB)
efi: mem17: type=7, attr=0xf, range=[0x00000000711ff000-0x000000007182d000) (6MB)
efi: mem18: type=3, attr=0xf, range=[0x000000007182d000-0x00000000721ff000) (9MB)
efi: mem19: type=6, attr=0x800000000000000f, range=[0x00000000721ff000-0x00000000725ff000) (4MB)
efi: mem20: type=5, attr=0x800000000000000f, range=[0x00000000725ff000-0x0000000072dff000) (8MB)
efi: mem21: type=0, attr=0xf, range=[0x0000000072dff000-0x0000000072eff000) (1MB)
efi: mem22: type=10, attr=0xf, range=[0x0000000072eff000-0x0000000073eff000) (16MB)
efi: mem23: type=9, attr=0xf, range=[0x0000000073eff000-0x0000000073fff000) (1MB)
efi: mem24: type=7, attr=0xf, range=[0x0000000073fff000-0x000000007413e000) (1MB)
efi: mem25: type=2, attr=0xf, range=[0x000000007413e000-0x00000000752e9000) (17MB)
efi: mem26: type=4, attr=0xf, range=[0x00000000752e9000-0x000000007540a000) (1MB)
efi: mem27: type=7, attr=0xf, range=[0x000000007540a000-0x0000000075462000) (0MB)
efi: mem28: type=4, attr=0xf, range=[0x0000000075462000-0x000000007c000000) (107MB)
efi: mem29: type=7, attr=0xf, range=[0x0000000100000000-0x0000000880000000) (30720MB)
efi: mem30: type=7, attr=0xf, range=[0x0000020000000000-0x0000020400000000) (16384MB)
efi: mem31: type=11, attr=0x8000000000000001, range=[0x0000000080000000-0x0000000090000000) (256MB)
efi: mem32: type=11, attr=0x8000000000000001, range=[0x00000000fed1c000-0x00000000fed20000) (0MB)
efi: mem33: type=11, attr=0x8000000000000001, range=[0x00000000ff000000-0x00000000ff200000) (2MB)
efi: mem34: type=11, attr=0x8000000000000001, range=[0x00003fdfe0000000-0x00003fdff4000000) (320MB)
efi: mem35: type=11, attr=0x8000000000000001, range=[0x00003fe060000000-0x00003fe074000000) (320MB)
efi: mem36: type=11, attr=0x8000000000000001, range=[0x00003fe0e0000000-0x00003fe0f4000000) (320MB)
efi: mem37: type=11, attr=0x8000000000000001, range=[0x00003fe160000000-0x00003fe174000000) (320MB)
efi: mem38: type=11, attr=0x8000000000000001, range=[0x00003fe1e0000000-0x00003fe1f4000000) (320MB)
efi: mem39: type=11, attr=0x8000000000000001, range=[0x00003fe260000000-0x00003fe274000000) (320MB)
efi: mem40: type=11, attr=0x8000000000000001, range=[0x00003fe2e0000000-0x00003fe2f4000000) (320MB)
efi: mem41: type=11, attr=0x8000000000000001, range=[0x00003fe360000000-0x00003fe374000000) (320MB)
efi: mem42: type=11, attr=0x8000000000000001, range=[0x00003fe3e0000000-0x00003fe3f4000000) (320MB)
efi: mem43: type=11, attr=0x8000000000000001, range=[0x00003fe460000000-0x00003fe474000000) (320MB)
efi: mem44: type=11, attr=0x8000000000000001, range=[0x00003fe4e0000000-0x00003fe4f4000000) (320MB)
efi: mem45: type=11, attr=0x8000000000000001, range=[0x00003fe560000000-0x00003fe574000000) (320MB)
efi: mem46: type=11, attr=0x8000000000000001, range=[0x00003fe5e0000000-0x00003fe5f4000000) (320MB)
efi: mem47: type=11, attr=0x8000000000000001, range=[0x00003fe660000000-0x00003fe674000000) (320MB)
efi: mem48: type=11, attr=0x8000000000000001, range=[0x00003fe6e0000000-0x00003fe6f4000000) (320MB)
efi: mem49: type=11, attr=0x8000000000000001, range=[0x00003fe760000000-0x00003fe774000000) (320MB)
efi: mem50: type=11, attr=0x8000000000000001, range=[0x00003fe7e0000000-0x00003fe7f4000000) (320MB)
SMBIOS 2.7 present.
No AGP bridge found
e820: last_pfn = 0x20400000 max_arch_pfn = 0x400000000
x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
x2apic enabled by BIOS, switching to x2apic ops
e820: last_pfn = 0x7c000 max_arch_pfn = 0x400000000
Using GB pages for direct mapping
init_memory_mapping: [mem 0x00000000-0x000fffff]
init_memory_mapping: [mem 0x203ffe00000-0x203ffffffff]
init_memory_mapping: [mem 0x203fc000000-0x203ffdfffff]
init_memory_mapping: [mem 0x20380000000-0x203fbffffff]
init_memory_mapping: [mem 0x20000000000-0x2037fffffff]
init_memory_mapping: [mem 0x00100000-0x6de77fff]
init_memory_mapping: [mem 0x6ee78000-0x721fefff]
init_memory_mapping: [mem 0x73fff000-0x7bffffff]
init_memory_mapping: [mem 0x100000000-0x87fffffff]
RAMDISK: [mem 0x7413e000-0x752e8fff]
Reserving 512MB of memory at 384MB for crashkernel (System RAM: 49041MB)
ACPI: RSDP 0000000073ffe014 00024 (v02 HP )
ACPI: XSDT 0000000073ffd0e8 000AC (v01 HP 03010201 00000002 MSFT 01000013)
ACPI: FACP 0000000073ffb000 0010C (v05 HP 03010201 00000002 HPAG 00020000)
ACPI: DSDT 0000000073ff1000 00864 (v02 HP CORE 00000002 HPAG 00020000)
ACPI: FACS 0000000073e82000 00040
ACPI: MCEJ 0000000073ffc000 00130 (v01 HP 03010201 00000002 HPAG 00020000)
ACPI: HPET 0000000073ffa000 00038 (v01 HP 03010201 00000002 HPAG 00020000)
ACPI: MCFG 0000000073ff9000 0003C (v01 HP 03010201 00000002 HPAG 00020000)
ACPI: SLIT 0000000073ff8000 0003C (v01 HP 03010201 00000002 HPAG 00020000)
ACPI: APIC 0000000073ff7000 00684 (v03 HP 03010201 00000002 HPAG 00020000)
ACPI: SRAT 0000000073ff6000 005E8 (v02 HP 03010201 00000002 HPAG 00020000)
ACPI: SPMI 0000000073ff5000 00040 (v05 HP 03010201 00000002 HPAG 00020000)
ACPI: SPCR 0000000073ff4000 00050 (v01 HP 03010201 00000002 HPAG 00020000)
ACPI: DBGP 0000000073ff3000 00034 (v01 HP 03010201 00000002 HPAG 00020000)
ACPI: RASF 0000000073ff2000 00030 (v01 HP 03010201 00000002 HPAG 00020000)
ACPI: SSDT 0000000073fda000 166BC (v02 HP BLADE000 00000002 HPAG 00020000)
ACPI: DMAR 0000000073fd8000 001D0 (v01 HP 03010201 00000002 HPAG 00020000)
ACPI: HEST 0000000073fd7000 00144 (v01 INTEL 00000001 INTL 00000001)
ACPI: BERT 0000000073fd6000 00030 (v01 INTEL 00000001 INTL 00000001)
ACPI: ERST 0000000073fd5000 00230 (v01 INTEL 00000001 INTL 00000001)
ACPI: EINJ 0000000073fd4000 00150 (v01 INTEL 00000001 INTL 00000001)
Setting APIC routing to physical x2apic.
SRAT: PXM 1 -> APIC 0x0000 -> Node 0
SRAT: PXM 1 -> APIC 0x0001 -> Node 0
SRAT: PXM 1 -> APIC 0x0002 -> Node 0
SRAT: PXM 1 -> APIC 0x0003 -> Node 0
SRAT: PXM 1 -> APIC 0x0004 -> Node 0
SRAT: PXM 1 -> APIC 0x0005 -> Node 0
SRAT: PXM 1 -> APIC 0x0006 -> Node 0
SRAT: PXM 1 -> APIC 0x0007 -> Node 0
SRAT: PXM 1 -> APIC 0x0008 -> Node 0
SRAT: PXM 1 -> APIC 0x0009 -> Node 0
SRAT: PXM 1 -> APIC 0x000a -> Node 0
SRAT: PXM 1 -> APIC 0x000b -> Node 0
SRAT: PXM 1 -> APIC 0x000c -> Node 0
SRAT: PXM 1 -> APIC 0x000d -> Node 0
SRAT: PXM 1 -> APIC 0x000e -> Node 0
SRAT: PXM 1 -> APIC 0x000f -> Node 0
SRAT: PXM 1 -> APIC 0x0010 -> Node 0
SRAT: PXM 1 -> APIC 0x0011 -> Node 0
SRAT: PXM 1 -> APIC 0x0012 -> Node 0
SRAT: PXM 1 -> APIC 0x0013 -> Node 0
SRAT: PXM 1 -> APIC 0x0014 -> Node 0
SRAT: PXM 1 -> APIC 0x0015 -> Node 0
SRAT: PXM 1 -> APIC 0x0016 -> Node 0
SRAT: PXM 1 -> APIC 0x0017 -> Node 0
SRAT: PXM 1 -> APIC 0x0018 -> Node 0
SRAT: PXM 1 -> APIC 0x0019 -> Node 0
SRAT: PXM 1 -> APIC 0x001a -> Node 0
SRAT: PXM 1 -> APIC 0x001b -> Node 0
SRAT: PXM 2 -> APIC 0x0022 -> Node 1
SRAT: PXM 2 -> APIC 0x0023 -> Node 1
SRAT: PXM 2 -> APIC 0x0024 -> Node 1
SRAT: PXM 2 -> APIC 0x0025 -> Node 1
SRAT: PXM 2 -> APIC 0x0026 -> Node 1
SRAT: PXM 2 -> APIC 0x0027 -> Node 1
SRAT: PXM 2 -> APIC 0x0028 -> Node 1
SRAT: PXM 2 -> APIC 0x0029 -> Node 1
SRAT: PXM 2 -> APIC 0x002a -> Node 1
SRAT: PXM 2 -> APIC 0x002b -> Node 1
SRAT: PXM 2 -> APIC 0x002c -> Node 1
SRAT: PXM 2 -> APIC 0x002d -> Node 1
SRAT: PXM 2 -> APIC 0x002e -> Node 1
SRAT: PXM 2 -> APIC 0x002f -> Node 1
SRAT: PXM 2 -> APIC 0x0030 -> Node 1
SRAT: PXM 2 -> APIC 0x0031 -> Node 1
SRAT: PXM 2 -> APIC 0x0032 -> Node 1
SRAT: PXM 2 -> APIC 0x0033 -> Node 1
SRAT: PXM 2 -> APIC 0x0034 -> Node 1
SRAT: PXM 2 -> APIC 0x0035 -> Node 1
SRAT: PXM 2 -> APIC 0x0036 -> Node 1
SRAT: PXM 2 -> APIC 0x0037 -> Node 1
SRAT: PXM 2 -> APIC 0x0038 -> Node 1
SRAT: PXM 2 -> APIC 0x0039 -> Node 1
SRAT: PXM 2 -> APIC 0x003a -> Node 1
SRAT: PXM 2 -> APIC 0x003b -> Node 1
SRAT: PXM 2 -> APIC 0x003c -> Node 1
SRAT: PXM 2 -> APIC 0x003d -> Node 1
SRAT: Node 0 PXM 1 [mem 0x00000000-0x7fffffff]
SRAT: Node 0 PXM 1 [mem 0x100000000-0x87fffffff]
SRAT: Node 1 PXM 2 [mem 0x20000000000-0x203ffffffff]
NUMA: Warning: node ids are out of bound, from=-1 to=-1 distance=10
NUMA: Node 0 [mem 0x00000000-0x7fffffff] + [mem 0x100000000-0x87fffffff] -> [mem 0x00000000-0x87fffffff]
Initmem setup node 0 [mem 0x00000000-0x87fffffff]
NODE_DATA [mem 0x87ffd9000-0x87fffffff]
Initmem setup node 1 [mem 0x20000000000-0x203ffffffff]
NODE_DATA [mem 0x203fffd5000-0x203ffffbfff]
Zone ranges:
DMA [mem 0x00001000-0x00ffffff]
DMA32 [mem 0x01000000-0xffffffff]
Normal [mem 0x100000000-0x203ffffffff]
Movable zone start for each node
Early memory node ranges
node 0: [mem 0x00001000-0x0008dfff]
node 0: [mem 0x00090000-0x0009ffff]
node 0: [mem 0x00100000-0x6de77fff]
node 0: [mem 0x6ee78000-0x721fefff]
node 0: [mem 0x73fff000-0x7bffffff]
node 0: [mem 0x100000000-0x87fffffff]
node 1: [mem 0x20000000000-0x203ffffffff]
ACPI: X2APIC (apic_id[0x00] uid[0x00] enabled)
ACPI: X2APIC (apic_id[0x02] uid[0x02] enabled)
ACPI: X2APIC (apic_id[0x04] uid[0x04] enabled)
ACPI: X2APIC (apic_id[0x06] uid[0x06] enabled)
ACPI: X2APIC (apic_id[0x08] uid[0x08] enabled)
ACPI: X2APIC (apic_id[0x0a] uid[0x0a] enabled)
ACPI: X2APIC (apic_id[0x0c] uid[0x0c] enabled)
ACPI: X2APIC (apic_id[0x0e] uid[0x0e] enabled)
ACPI: X2APIC (apic_id[0x10] uid[0x10] enabled)
ACPI: X2APIC (apic_id[0x12] uid[0x12] enabled)
ACPI: X2APIC (apic_id[0x14] uid[0x14] enabled)
ACPI: X2APIC (apic_id[0x16] uid[0x16] enabled)
ACPI: X2APIC (apic_id[0x18] uid[0x18] enabled)
ACPI: X2APIC (apic_id[0x1a] uid[0x1a] enabled)
ACPI: X2APIC (apic_id[0x22] uid[0x26] enabled)
ACPI: X2APIC (apic_id[0x24] uid[0x28] enabled)
ACPI: X2APIC (apic_id[0x26] uid[0x2a] enabled)
ACPI: X2APIC (apic_id[0x28] uid[0x2c] enabled)
ACPI: X2APIC (apic_id[0x2a] uid[0x2e] enabled)
ACPI: X2APIC (apic_id[0x2c] uid[0x30] enabled)
ACPI: X2APIC (apic_id[0x2e] uid[0x32] enabled)
ACPI: X2APIC (apic_id[0x30] uid[0x34] enabled)
ACPI: X2APIC (apic_id[0x32] uid[0x36] enabled)
ACPI: X2APIC (apic_id[0x34] uid[0x38] enabled)
ACPI: X2APIC (apic_id[0x36] uid[0x3a] enabled)
ACPI: X2APIC (apic_id[0x38] uid[0x3c] enabled)
ACPI: X2APIC (apic_id[0x3a] uid[0x3e] enabled)
ACPI: X2APIC (apic_id[0x3c] uid[0x40] enabled)
ACPI: X2APIC (apic_id[0x01] uid[0x01] enabled)
ACPI: X2APIC (apic_id[0x03] uid[0x03] enabled)
ACPI: X2APIC (apic_id[0x05] uid[0x05] enabled)
ACPI: X2APIC (apic_id[0x07] uid[0x07] enabled)
ACPI: X2APIC (apic_id[0x09] uid[0x09] enabled)
ACPI: X2APIC (apic_id[0x0b] uid[0x0b] enabled)
ACPI: X2APIC (apic_id[0x0d] uid[0x0d] enabled)
ACPI: X2APIC (apic_id[0x0f] uid[0x0f] enabled)
ACPI: X2APIC (apic_id[0x11] uid[0x11] enabled)
ACPI: X2APIC (apic_id[0x13] uid[0x13] enabled)
ACPI: X2APIC (apic_id[0x15] uid[0x15] enabled)
ACPI: X2APIC (apic_id[0x17] uid[0x17] enabled)
ACPI: X2APIC (apic_id[0x19] uid[0x19] enabled)
ACPI: X2APIC (apic_id[0x1b] uid[0x1b] enabled)
ACPI: X2APIC (apic_id[0x23] uid[0x27] enabled)
ACPI: X2APIC (apic_id[0x25] uid[0x29] enabled)
ACPI: X2APIC (apic_id[0x27] uid[0x2b] enabled)
ACPI: X2APIC (apic_id[0x29] uid[0x2d] enabled)
ACPI: X2APIC (apic_id[0x2b] uid[0x2f] enabled)
ACPI: X2APIC (apic_id[0x2d] uid[0x31] enabled)
ACPI: X2APIC (apic_id[0x2f] uid[0x33] enabled)
ACPI: X2APIC (apic_id[0x31] uid[0x35] enabled)
ACPI: X2APIC (apic_id[0x33] uid[0x37] enabled)
ACPI: X2APIC (apic_id[0x35] uid[0x39] enabled)
ACPI: X2APIC (apic_id[0x37] uid[0x3b] enabled)
ACPI: X2APIC (apic_id[0x39] uid[0x3d] enabled)
ACPI: X2APIC (apic_id[0x3b] uid[0x3f] enabled)
ACPI: X2APIC (apic_id[0x3d] uid[0x41] enabled)
ACPI: X2APIC_NMI (uid[0x00] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x01] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x02] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x03] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x04] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x05] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x06] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x07] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x08] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x09] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x0a] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x0b] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x0c] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x0d] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x0e] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x0f] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x10] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x11] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x12] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x13] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x14] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x15] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x16] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x17] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x18] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x19] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x1a] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x1b] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x26] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x27] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x28] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x29] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x2a] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x2b] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x2c] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x2d] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x2e] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x2f] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x30] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x31] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x32] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x33] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x34] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x35] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x36] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x37] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x38] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x39] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x3a] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x3b] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x3c] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x3d] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x3e] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x3f] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x40] high level lint[0x1])
ACPI: X2APIC_NMI (uid[0x41] high level lint[0x1])
ACPI: IOAPIC (id[0x08] address[0xfec00000] gsi_base[0])
IOAPIC[0]: apic_id 8, version 32, address 0xfec00000, GSI 0-23
ACPI: IOAPIC (id[0x09] address[0xfec01000] gsi_base[24])
IOAPIC[1]: apic_id 9, version 32, address 0xfec01000, GSI 24-47
ACPI: IOAPIC (id[0x0a] address[0xfec04000] gsi_base[48])
IOAPIC[2]: apic_id 10, version 32, address 0xfec04000, GSI 48-71
ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
Using ACPI (MADT) for SMP configuration information
ACPI: HPET id: 0x8086a301 base: 0xfed00000
smpboot: Allowing 56 CPUs, 0 hotplug CPUs
PM: Registered nosave memory: [mem 0x0008e000-0x0008ffff]
PM: Registered nosave memory: [mem 0x000a0000-0x000fffff]
PM: Registered nosave memory: [mem 0x6de78000-0x6ee77fff]
PM: Registered nosave memory: [mem 0x721ff000-0x72efefff]
PM: Registered nosave memory: [mem 0x72eff000-0x73efefff]
PM: Registered nosave memory: [mem 0x73eff000-0x73ffefff]
PM: Registered nosave memory: [mem 0x7c000000-0x7fffffff]
PM: Registered nosave memory: [mem 0x80000000-0x8fffffff]
PM: Registered nosave memory: [mem 0x90000000-0xfed1bfff]
PM: Registered nosave memory: [mem 0xfed1c000-0xfed1ffff]
PM: Registered nosave memory: [mem 0xfed20000-0xfeffffff]
PM: Registered nosave memory: [mem 0xff000000-0xff1fffff]
PM: Registered nosave memory: [mem 0xff200000-0xffffffff]
PM: Registered nosave memory: [mem 0x880000000-0x1ffffffffff]
e820: [mem 0x90000000-0xfed1bfff] available for PCI devices
setup_percpu: NR_CPUS:256 nr_cpumask_bits:256 nr_cpu_ids:56 nr_node_ids:2
PERCPU: Embedded 27 pages/cpu @ffff88087fa00000 s80704 r8192 d21696 u131072
Built 2 zonelists in Zone order, mobility grouping on. Total pages: 12382984
Policy zone: Normal
Kernel command line: ro root=/dev/mapper/vg_dhf1-lv_root rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD KEYTABLE=us console=ttyS0,115200 rd_LVM_LV=vg_dhf1/lv_swap crashkernel=512M rd_LVM_LV=vg_dhf1/lv_root SYSFONT=latarcyrheb-sun16 rd_NO_DM
PID hash table entries: 4096 (order: 3, 32768 bytes)
xsave: enabled xstate_bv 0x7, cntxt size 0x340
Checking aperture...
No AGP bridge found
Memory: 48748476K/50218612K available (5405K kernel code, 854K rwdata, 2576K rodata, 1672K init, 1872K bss, 1470136K reserved)
Hierarchical RCU implementation.
RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=56.
NR_IRQS:16640 nr_irqs:1944 16
Console: colour dummy device 80x25
console [ttyS0] enabled
tsc: Fast TSC calibration using PIT
tsc: Detected 2799.880 MHz processor
Calibrating delay loop (skipped), value calculated using timer frequency.. 5599.76 BogoMIPS (lpj=2799880)
pid_max: default: 57344 minimum: 448
PA: 0x0 -> VA: 0x0
PA: 0x0 -> VA: 0xffffffff00000000
PA: 0x10000000 -> VA: 0x10000000
PA: 0x10000000 -> VA: 0xfffffffeffe00000
PA: 0x5de00000 -> VA: 0x5de00000
PA: 0x5de00000 -> VA: 0xfffffffeffc00000
PA: 0x6ee78000 -> VA: 0x6ee78000
PA: 0x6ee78000 -> VA: 0xfffffffefe078000
PA: 0x7182d000 -> VA: 0x7182d000
PA: 0x7182d000 -> VA: 0xfffffffefd62d000
PA: 0x721ff000 -> VA: 0x721ff000
PA: 0x721ff000 -> VA: 0xfffffffefd1ff000
PA: 0x725ff000 -> VA: 0x725ff000
PA: 0x725ff000 -> VA: 0xfffffffefc9ff000
PA: 0x752e9000 -> VA: 0x752e9000
PA: 0x752e9000 -> VA: 0xfffffffefc6e9000
PA: 0x75462000 -> VA: 0x75462000
PA: 0x75462000 -> VA: 0xfffffffef5a62000
PA: 0x80000000 -> VA: 0x80000000
PA: 0x80000000 -> VA: 0xfffffffee5a00000
PA: 0xfed1c000 -> VA: 0xfed1c000
PA: 0xfed1c000 -> VA: 0xfffffffee591c000
PA: 0xff000000 -> VA: 0xff000000
PA: 0xff000000 -> VA: 0xfffffffee5600000
PA: 0x3fdfe0000000 -> VA: 0x3fdfe0000000
PA: 0x3fdfe0000000 -> VA: 0xfffffffed1600000
PA: 0x3fe060000000 -> VA: 0x3fe060000000
PA: 0x3fe060000000 -> VA: 0xfffffffebd600000
PA: 0x3fe0e0000000 -> VA: 0x3fe0e0000000
PA: 0x3fe0e0000000 -> VA: 0xfffffffea9600000
PA: 0x3fe160000000 -> VA: 0x3fe160000000
PA: 0x3fe160000000 -> VA: 0xfffffffe95600000
PA: 0x3fe1e0000000 -> VA: 0x3fe1e0000000
PA: 0x3fe1e0000000 -> VA: 0xfffffffe81600000
PA: 0x3fe260000000 -> VA: 0x3fe260000000
PA: 0x3fe260000000 -> VA: 0xfffffffe6d600000
PA: 0x3fe2e0000000 -> VA: 0x3fe2e0000000
PA: 0x3fe2e0000000 -> VA: 0xfffffffe59600000
PA: 0x3fe360000000 -> VA: 0x3fe360000000
PA: 0x3fe360000000 -> VA: 0xfffffffe45600000
PA: 0x3fe3e0000000 -> VA: 0x3fe3e0000000
PA: 0x3fe3e0000000 -> VA: 0xfffffffe31600000
PA: 0x3fe460000000 -> VA: 0x3fe460000000
PA: 0x3fe460000000 -> VA: 0xfffffffe1d600000
PA: 0x3fe4e0000000 -> VA: 0x3fe4e0000000
PA: 0x3fe4e0000000 -> VA: 0xfffffffe09600000
PA: 0x3fe560000000 -> VA: 0x3fe560000000
PA: 0x3fe560000000 -> VA: 0xfffffffdf5600000
PA: 0x3fe5e0000000 -> VA: 0x3fe5e0000000
PA: 0x3fe5e0000000 -> VA: 0xfffffffde1600000
PA: 0x3fe660000000 -> VA: 0x3fe660000000
PA: 0x3fe660000000 -> VA: 0xfffffffdcd600000
PA: 0x3fe6e0000000 -> VA: 0x3fe6e0000000
PA: 0x3fe6e0000000 -> VA: 0xfffffffdb9600000
PA: 0x3fe760000000 -> VA: 0x3fe760000000
PA: 0x3fe760000000 -> VA: 0xfffffffda5600000
PA: 0x3fe7e0000000 -> VA: 0x3fe7e0000000
PA: 0x3fe7e0000000 -> VA: 0xfffffffd91600000
efi: desc_size: 48, count: 29, new_memmap: ffff8a03fec16800, pa: 0x203fec16800
---[ User Space ]---
0x0000000000000000-0x0000000000200000 2M RW GLB NX pte
0x0000000000200000-0x0000000010000000 254M RW PSE GLB NX pmd
0x0000000010000000-0x0000000010065000 404K RW GLB x pte
0x0000000010065000-0x0000000010200000 1644K RW GLB NX pte
0x0000000010200000-0x000000005de00000 1244M RW PSE GLB NX pmd
0x000000005de00000-0x000000005e000000 2M RW PSE GLB x pmd
0x000000005e000000-0x000000006de00000 254M RW PSE GLB NX pmd
0x000000006de00000-0x000000006de78000 480K RW GLB NX pte
0x000000006de78000-0x000000006e000000 1568K pte
0x000000006e000000-0x000000006ee00000 14M pmd
0x000000006ee00000-0x000000006ee78000 480K pte
0x000000006ee78000-0x000000006f000000 1568K RW GLB x pte
0x000000006f000000-0x0000000070800000 24M RW PSE GLB x pmd
0x0000000070800000-0x00000000709fc000 2032K RW GLB x pte
0x00000000709fc000-0x0000000070a00000 16K RW GLB NX pte
0x0000000070a00000-0x0000000071800000 14M RW PSE GLB NX pmd
0x0000000071800000-0x000000007182d000 180K RW GLB NX pte
0x000000007182d000-0x0000000071a00000 1868K RW GLB x pte
0x0000000071a00000-0x0000000072000000 6M RW PSE GLB x pmd
0x0000000072000000-0x00000000721ff000 2044K RW GLB x pte
0x00000000721ff000-0x0000000072200000 4K RW x pte
0x0000000072200000-0x0000000072400000 2M RW PSE x pmd
0x0000000072400000-0x0000000072600000 2M RW x pte
0x0000000072600000-0x0000000072c00000 6M RW PSE x pmd
0x0000000072c00000-0x0000000072dff000 2044K RW x pte
0x0000000072dff000-0x0000000072e00000 4K pte
0x0000000072e00000-0x0000000073e00000 16M pmd
0x0000000073e00000-0x0000000073fff000 2044K pte
0x0000000073fff000-0x0000000074000000 4K RW GLB NX pte
0x0000000074000000-0x0000000075200000 18M RW PSE GLB NX pmd
0x0000000075200000-0x00000000752e9000 932K RW GLB NX pte
0x00000000752e9000-0x000000007540a000 1156K RW GLB x pte
0x000000007540a000-0x0000000075462000 352K RW GLB NX pte
0x0000000075462000-0x0000000075600000 1656K RW GLB x pte
0x0000000075600000-0x000000007c000000 106M RW PSE GLB x pmd
0x000000007c000000-0x0000000080000000 64M pmd
0x0000000080000000-0x0000000090000000 256M RW PCD PSE x pmd
0x0000000090000000-0x00000000fec00000 1772M pmd
0x00000000fec00000-0x00000000fed1c000 1136K pte
0x00000000fed1c000-0x00000000fed20000 16K RW PCD x pte
0x00000000fed20000-0x00000000fee00000 896K pte
0x00000000fee00000-0x00000000ff000000 2M pmd
0x00000000ff000000-0x00000000ff200000 2M RW PCD PSE x pmd
0x00000000ff200000-0x0000000100000000 14M pmd
0x0000000100000000-0x0000000880000000 30G RW PSE GLB NX pud
0x0000000880000000-0x0000008000000000 478G pud
0x0000008000000000-0x00003f8000000000 63T pgd
0x00003f8000000000-0x00003fdfc0000000 383G pud
0x00003fdfc0000000-0x00003fdfe0000000 512M pmd
0x00003fdfe0000000-0x00003fdff4000000 320M RW PCD PSE x pmd
0x00003fdff4000000-0x00003fe000000000 192M pmd
0x00003fe000000000-0x00003fe040000000 1G pud
0x00003fe040000000-0x00003fe060000000 512M pmd
0x00003fe060000000-0x00003fe074000000 320M RW PCD PSE x pmd
0x00003fe074000000-0x00003fe080000000 192M pmd
0x00003fe080000000-0x00003fe0c0000000 1G pud
0x00003fe0c0000000-0x00003fe0e0000000 512M pmd
0x00003fe0e0000000-0x00003fe0f4000000 320M RW PCD PSE x pmd
0x00003fe0f4000000-0x00003fe100000000 192M pmd
0x00003fe100000000-0x00003fe140000000 1G pud
0x00003fe140000000-0x00003fe160000000 512M pmd
0x00003fe160000000-0x00003fe174000000 320M RW PCD PSE x pmd
0x00003fe174000000-0x00003fe180000000 192M pmd
0x00003fe180000000-0x00003fe1c0000000 1G pud
0x00003fe1c0000000-0x00003fe1e0000000 512M pmd
0x00003fe1e0000000-0x00003fe1f4000000 320M RW PCD PSE x pmd
0x00003fe1f4000000-0x00003fe200000000 192M pmd
0x00003fe200000000-0x00003fe240000000 1G pud
0x00003fe240000000-0x00003fe260000000 512M pmd
0x00003fe260000000-0x00003fe274000000 320M RW PCD PSE x pmd
0x00003fe274000000-0x00003fe280000000 192M pmd
0x00003fe280000000-0x00003fe2c0000000 1G pud
0x00003fe2c0000000-0x00003fe2e0000000 512M pmd
0x00003fe2e0000000-0x00003fe2f4000000 320M RW PCD PSE x pmd
0x00003fe2f4000000-0x00003fe300000000 192M pmd
0x00003fe300000000-0x00003fe340000000 1G pud
0x00003fe340000000-0x00003fe360000000 512M pmd
0x00003fe360000000-0x00003fe374000000 320M RW PCD PSE x pmd
0x00003fe374000000-0x00003fe380000000 192M pmd
0x00003fe380000000-0x00003fe3c0000000 1G pud
0x00003fe3c0000000-0x00003fe3e0000000 512M pmd
0x00003fe3e0000000-0x00003fe3f4000000 320M RW PCD PSE x pmd
0x00003fe3f4000000-0x00003fe400000000 192M pmd
0x00003fe400000000-0x00003fe440000000 1G pud
0x00003fe440000000-0x00003fe460000000 512M pmd
0x00003fe460000000-0x00003fe474000000 320M RW PCD PSE x pmd
0x00003fe474000000-0x00003fe480000000 192M pmd
0x00003fe480000000-0x00003fe4c0000000 1G pud
0x00003fe4c0000000-0x00003fe4e0000000 512M pmd
0x00003fe4e0000000-0x00003fe4f4000000 320M RW PCD PSE x pmd
0x00003fe4f4000000-0x00003fe500000000 192M pmd
0x00003fe500000000-0x00003fe540000000 1G pud
0x00003fe540000000-0x00003fe560000000 512M pmd
0x00003fe560000000-0x00003fe574000000 320M RW PCD PSE x pmd
0x00003fe574000000-0x00003fe580000000 192M pmd
0x00003fe580000000-0x00003fe5c0000000 1G pud
0x00003fe5c0000000-0x00003fe5e0000000 512M pmd
0x00003fe5e0000000-0x00003fe5f4000000 320M RW PCD PSE x pmd
0x00003fe5f4000000-0x00003fe600000000 192M pmd
0x00003fe600000000-0x00003fe640000000 1G pud
0x00003fe640000000-0x00003fe660000000 512M pmd
0x00003fe660000000-0x00003fe674000000 320M RW PCD PSE x pmd
0x00003fe674000000-0x00003fe680000000 192M pmd
0x00003fe680000000-0x00003fe6c0000000 1G pud
0x00003fe6c0000000-0x00003fe6e0000000 512M pmd
0x00003fe6e0000000-0x00003fe6f4000000 320M RW PCD PSE x pmd
0x00003fe6f4000000-0x00003fe700000000 192M pmd
0x00003fe700000000-0x00003fe740000000 1G pud
0x00003fe740000000-0x00003fe760000000 512M pmd
0x00003fe760000000-0x00003fe774000000 320M RW PCD PSE x pmd
0x00003fe774000000-0x00003fe780000000 192M pmd
0x00003fe780000000-0x00003fe7c0000000 1G pud
0x00003fe7c0000000-0x00003fe7e0000000 512M pmd
0x00003fe7e0000000-0x00003fe7f4000000 320M RW PCD PSE x pmd
0x00003fe7f4000000-0x00003fe800000000 192M pmd
0x00003fe800000000-0x0000400000000000 96G pud
0x0000400000000000-0xffff800000000000 16777024T pgd
---[ Kernel Space ]---
0xffff800000000000-0xffff880000000000 8T pgd
---[ Low Kernel Mapping ]---
0xffff880000000000-0xffff880000200000 2M RW GLB NX pte
0xffff880000200000-0xffff880010000000 254M RW PSE GLB NX pmd
0xffff880010000000-0xffff880010065000 404K RW GLB x pte
0xffff880010065000-0xffff880010200000 1644K RW GLB NX pte
0xffff880010200000-0xffff88005de00000 1244M RW PSE GLB NX pmd
0xffff88005de00000-0xffff88005e000000 2M RW PSE GLB x pmd
0xffff88005e000000-0xffff88006de00000 254M RW PSE GLB NX pmd
0xffff88006de00000-0xffff88006de78000 480K RW GLB NX pte
0xffff88006de78000-0xffff88006e000000 1568K pte
0xffff88006e000000-0xffff88006ee00000 14M pmd
0xffff88006ee00000-0xffff88006ee78000 480K pte
0xffff88006ee78000-0xffff88006f000000 1568K RW GLB x pte
0xffff88006f000000-0xffff880070800000 24M RW PSE GLB x pmd
0xffff880070800000-0xffff8800709fc000 2032K RW GLB x pte
0xffff8800709fc000-0xffff880070a00000 16K RW GLB NX pte
0xffff880070a00000-0xffff880071800000 14M RW PSE GLB NX pmd
0xffff880071800000-0xffff88007182d000 180K RW GLB NX pte
0xffff88007182d000-0xffff880071a00000 1868K RW GLB x pte
0xffff880071a00000-0xffff880072000000 6M RW PSE GLB x pmd
0xffff880072000000-0xffff8800721ff000 2044K RW GLB x pte
0xffff8800721ff000-0xffff880072200000 4K RW x pte
0xffff880072200000-0xffff880072400000 2M RW PSE x pmd
0xffff880072400000-0xffff880072600000 2M RW x pte
0xffff880072600000-0xffff880072c00000 6M RW PSE x pmd
0xffff880072c00000-0xffff880072dff000 2044K RW x pte
0xffff880072dff000-0xffff880072e00000 4K pte
0xffff880072e00000-0xffff880073e00000 16M pmd
0xffff880073e00000-0xffff880073fff000 2044K pte
0xffff880073fff000-0xffff880074000000 4K RW GLB NX pte
0xffff880074000000-0xffff880075200000 18M RW PSE GLB NX pmd
0xffff880075200000-0xffff8800752e9000 932K RW GLB NX pte
0xffff8800752e9000-0xffff88007540a000 1156K RW GLB x pte
0xffff88007540a000-0xffff880075462000 352K RW GLB NX pte
0xffff880075462000-0xffff880075600000 1656K RW GLB x pte
0xffff880075600000-0xffff88007c000000 106M RW PSE GLB x pmd
0xffff88007c000000-0xffff880080000000 64M pmd
0xffff880080000000-0xffff880090000000 256M RW PCD PSE x pmd
0xffff880090000000-0xffff8800fec00000 1772M pmd
0xffff8800fec00000-0xffff8800fed1c000 1136K pte
0xffff8800fed1c000-0xffff8800fed20000 16K RW PCD x pte
0xffff8800fed20000-0xffff8800fee00000 896K pte
0xffff8800fee00000-0xffff8800ff000000 2M pmd
0xffff8800ff000000-0xffff8800ff200000 2M RW PCD PSE x pmd
0xffff8800ff200000-0xffff880100000000 14M pmd
0xffff880100000000-0xffff880880000000 30G RW PSE GLB NX pud
0xffff880880000000-0xffff888000000000 478G pud
0xffff888000000000-0xffff8a0000000000 1536G pgd
0xffff8a0000000000-0xffff8a0400000000 16G RW PSE GLB NX pud
0xffff8a0400000000-0xffff8a8000000000 496G pud
0xffff8a8000000000-0xffffc90000000000 64000G pgd
---[ vmalloc() Area ]---
0xffffc90000000000-0xffffc90000001000 4K RW PCD GLB NX pte
0xffffc90000001000-0xffffc90000200000 2044K pte
0xffffc90000200000-0xffffc90040000000 1022M pmd
0xffffc90040000000-0xffffc98000000000 511G pud
0xffffc98000000000-0xffffea0000000000 33280G pgd
---[ Vmemmap ]---
0xffffea0000000000-0xffffea0001c00000 28M RW PSE GLB NX pmd
0xffffea0001c00000-0xffffea0003800000 28M pmd
0xffffea0003800000-0xffffea001dc00000 420M RW PSE GLB NX pmd
0xffffea001dc00000-0xffffea0040000000 548M pmd
0xffffea0040000000-0xffffea0700000000 27G pud
0xffffea0700000000-0xffffea070e000000 224M RW PSE GLB NX pmd
0xffffea070e000000-0xffffea0740000000 800M pmd
0xffffea0740000000-0xffffea8000000000 483G pud
0xffffea8000000000-0xffffff8000000000 21T pgd
0xffffff8000000000-0xfffffffd80000000 502G pud
0xfffffffd80000000-0xfffffffd91600000 278M pmd
0xfffffffd91600000-0xfffffffee5800000 5442M RW PCD PSE x pmd
0xfffffffee5800000-0xfffffffee591c000 1136K pte
0xfffffffee591c000-0xfffffffee5920000 16K RW PCD x pte
0xfffffffee5920000-0xfffffffee5a00000 896K pte
0xfffffffee5a00000-0xfffffffef5a00000 256M RW PCD PSE x pmd
0xfffffffef5a00000-0xfffffffef5a62000 392K pte
0xfffffffef5a62000-0xfffffffef5c00000 1656K RW x pte
0xfffffffef5c00000-0xfffffffefc600000 106M RW PSE x pmd
0xfffffffefc600000-0xfffffffefc6e9000 932K pte
0xfffffffefc6e9000-0xfffffffefc80a000 1156K RW x pte
0xfffffffefc80a000-0xfffffffefc9ff000 2004K pte
0xfffffffefc9ff000-0xfffffffefca00000 4K RW x pte
0xfffffffefca00000-0xfffffffefd000000 6M RW PSE x pmd
0xfffffffefd000000-0xfffffffefd200000 2M RW x pte
0xfffffffefd200000-0xfffffffefd400000 2M RW PSE x pmd
0xfffffffefd400000-0xfffffffefd5ff000 2044K RW x pte
0xfffffffefd5ff000-0xfffffffefd62d000 184K pte
0xfffffffefd62d000-0xfffffffefd800000 1868K RW x pte
0xfffffffefd800000-0xfffffffefde00000 6M RW PSE x pmd
0xfffffffefde00000-0xfffffffefdfff000 2044K RW x pte
0xfffffffefdfff000-0xfffffffefe078000 484K pte
0xfffffffefe078000-0xfffffffefe200000 1568K RW x pte
0xfffffffefe200000-0xfffffffeffa00000 24M RW PSE x pmd
0xfffffffeffa00000-0xfffffffeffbfc000 2032K RW x pte
0xfffffffeffbfc000-0xfffffffeffc00000 16K pte
0xfffffffeffc00000-0xfffffffeffe00000 2M RW PSE x pmd
0xfffffffeffe00000-0xfffffffeffe65000 404K RW x pte
0xfffffffeffe65000-0xffffffff00000000 1644K pte
0xffffffff00000000-0xffffffff80000000 2G pud
---[ High Kernel Mapping ]---
0xffffffff80000000-0xffffffff81000000 16M pmd
0xffffffff81000000-0xffffffff82000000 16M RW PSE GLB x pmd
0xffffffff82000000-0xffffffffa0000000 480M pmd
---[ Modules ]---
0xffffffffa0000000-0xffffffffff000000 1520M pmd
---[ End Modules ]---
0xffffffffff000000-0xffffffffff400000 4M pmd
0xffffffffff400000-0xffffffffff477000 476K pte
0xffffffffff477000-0xffffffffff478000 4K RW GLB NX pte
0xffffffffff478000-0xffffffffff579000 1028K pte
0xffffffffff579000-0xffffffffff57a000 4K ro GLB NX pte
0xffffffffff57a000-0xffffffffff5f7000 500K pte
0xffffffffff5f7000-0xffffffffff5fa000 12K RW PWT PCD GLB NX pte
0xffffffffff5fa000-0xffffffffff5fe000 16K pte
0xffffffffff5fe000-0xffffffffff5ff000 4K USR ro PWT PCD GLB NX pte
0xffffffffff5ff000-0xffffffffff601000 8K USR ro GLB NX pte
0xffffffffff601000-0xffffffffff800000 2044K pte
0xffffffffff800000-0x0000000000000000 8M pmd
BUG: unable to handle kernel paging request at 00000203fec16820
IP: [<0000000072dcda76>] 0x72dcda75
PGD 0
Oops: 0000 [#1] SMP
Modules linked in:
CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.12.0+ #56
Hardware name: HP CB920s x1, BIOS Bundle: 005.028.018 SFW: 012.124.000 10/28/2013
task: ffffffff81a10480 ti: ffffffff81a00000 task.ti: ffffffff81a00000
RIP: 0010:[<0000000072dcda76>] [<0000000072dcda76>] 0x72dcda75
RSP: 0000:ffffffff81a01e08 EFLAGS: 00010206
RAX: 00000000725fee18 RBX: 00000000725feda0 RCX: 00000203fec16800
RDX: 0000000072dfe070 RSI: 0000000060000202 RDI: 0000000072dcdac8
RBP: 0000000072dd0560 R08: 0000000000000000 R09: 000000000000001d
R10: 0000000000000030 R11: 8000000000000000 R12: ffff8a03fec16800
R13: 0000000000000570 R14: 0000000000000030 R15: 000000000009c000
FS: 0000000000000000(0000) GS:ffff88087fa00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00000203fec16820 CR3: 000000000009c000 CR4: 00000000000406b0
Stack:
0000000072dfb88f 0000000000000001 0000000000002722 0000000000000000
ffffffff81acc728 0000000072dcdac8 0000000072dcdb93 0000000000000001
ffffffff81a01f80 0000000000000570 ffff880001a0f000 0000000000000000
Call Trace:
[<ffffffff81043e7a>] ? ptdump_show+0x2ba/0x2d0
[<ffffffff810462cc>] ? efi_call4+0x6c/0xf0
[<ffffffff81b02f2f>] ? efi_enter_virtual_mode+0x1f3/0x3a7
[<ffffffff81aebdf2>] ? start_kernel+0x36c/0x407
[<ffffffff81aeb88f>] ? repair_env_string+0x5c/0x5c
[<ffffffff81aeb5a3>] ? x86_64_start_reservations+0x2a/0x2c
[<ffffffff81aeb696>] ? x86_64_start_kernel+0xf1/0xf4
Code: Bad RIP value.
RIP [<0000000072dcda76>] 0x72dcda75
RSP <ffffffff81a01e08>
CR2: 00000203fec16820
---[ end trace 243af497e6e63797 ]---
Kernel panic - not syncing: Attempted to kill the idle task!
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: EFI tree kernel panic in phys_efi_set_virtual_address_map()
@ 2013-12-12 17:36 ` Toshi Kani
0 siblings, 0 replies; 20+ messages in thread
From: Toshi Kani @ 2013-12-12 17:36 UTC (permalink / raw)
To: Borislav Petkov; +Cc: linux-kernel, linux-efi, x86
On Thu, 2013-12-12 at 10:27 -0700, Toshi Kani wrote:
> On Thu, 2013-12-12 at 09:43 -0700, Toshi Kani wrote:
> > On Thu, 2013-12-12 at 17:23 +0100, Borislav Petkov wrote:
> > > On Wed, Dec 11, 2013 at 06:10:20PM -0700, Toshi Kani wrote:
> > > > > Unfortunately, it did not work. Hit the same panic again.
> > > >
> > > > dmesg output attached.
> > >
> > > Ok, thanks.
> > >
> > > Let's have a look at the EFI pagetable then. Please apply the attached
> > > patch, make sure CONFIG_X86_PTDUMP is enabled, build, boot and catch
> > > full dmesg again and send it to me.
> >
> > Yes, I will test with the change, and send a full dmesg output to you.
>
> Attached.
BTW, the test system is shared and will be used by other test for a
couple of hours or so. So, please take your time. :-)
Thanks!
-Toshi
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: EFI tree kernel panic in phys_efi_set_virtual_address_map()
@ 2013-12-12 17:36 ` Toshi Kani
0 siblings, 0 replies; 20+ messages in thread
From: Toshi Kani @ 2013-12-12 17:36 UTC (permalink / raw)
To: Borislav Petkov
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-efi-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A
On Thu, 2013-12-12 at 10:27 -0700, Toshi Kani wrote:
> On Thu, 2013-12-12 at 09:43 -0700, Toshi Kani wrote:
> > On Thu, 2013-12-12 at 17:23 +0100, Borislav Petkov wrote:
> > > On Wed, Dec 11, 2013 at 06:10:20PM -0700, Toshi Kani wrote:
> > > > > Unfortunately, it did not work. Hit the same panic again.
> > > >
> > > > dmesg output attached.
> > >
> > > Ok, thanks.
> > >
> > > Let's have a look at the EFI pagetable then. Please apply the attached
> > > patch, make sure CONFIG_X86_PTDUMP is enabled, build, boot and catch
> > > full dmesg again and send it to me.
> >
> > Yes, I will test with the change, and send a full dmesg output to you.
>
> Attached.
BTW, the test system is shared and will be used by other test for a
couple of hours or so. So, please take your time. :-)
Thanks!
-Toshi
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: EFI tree kernel panic in phys_efi_set_virtual_address_map()
@ 2013-12-12 20:35 ` Borislav Petkov
0 siblings, 0 replies; 20+ messages in thread
From: Borislav Petkov @ 2013-12-12 20:35 UTC (permalink / raw)
To: Toshi Kani; +Cc: linux-kernel, linux-efi, x86
On Thu, Dec 12, 2013 at 10:36:17AM -0700, Toshi Kani wrote:
> BTW, the test system is shared and will be used by other test for a
> couple of hours or so. So, please take your time. :-)
Yeah, ok :-)
I went and polished the debugging patch a bit more - it seems we're
going to need it more often now, should probably send it up too :)
Right, so the pagetable dump shows that the new_memmap is not mapped in
it, thus the #PF.
Ok, so next try: let's dump the pagetable after we've copied the pgd
containing new_memmap. Same exercise as before, please.
Thanks.
---
diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
index 3d1999458709..507f62647e39 100644
--- a/arch/x86/include/asm/pgtable.h
+++ b/arch/x86/include/asm/pgtable.h
@@ -16,6 +16,12 @@
#ifndef __ASSEMBLY__
+struct ptdump_desc {
+ pgd_t *pgd;
+ bool to_dmesg;
+};
+int ptdump_show(struct seq_file *m, void *v);
+
#include <asm/x86_init.h>
/*
diff --git a/arch/x86/mm/dump_pagetables.c b/arch/x86/mm/dump_pagetables.c
index 0002a3a33081..29e55d644727 100644
--- a/arch/x86/mm/dump_pagetables.c
+++ b/arch/x86/mm/dump_pagetables.c
@@ -19,6 +19,8 @@
#include <asm/pgtable.h>
+bool dump_to_dmesg;
+
/*
* The dumper groups pagetable entries of the same type into one, and for
* that it needs to keep some state when walking, and flush this state
@@ -88,6 +90,24 @@ static struct addr_marker address_markers[] = {
#define PUD_LEVEL_MULT (PTRS_PER_PMD * PMD_LEVEL_MULT)
#define PGD_LEVEL_MULT (PTRS_PER_PUD * PUD_LEVEL_MULT)
+#define pt_dump_seq_printf(m, fmt, args...) \
+({ \
+ if (dump_to_dmesg) \
+ printk(KERN_INFO fmt, ##args); \
+ else \
+ if (m) \
+ seq_printf(m, fmt, ##args); \
+})
+
+#define pt_dump_cont_printf(m, fmt, args...) \
+({ \
+ if (dump_to_dmesg) \
+ printk(KERN_CONT fmt, ##args); \
+ else \
+ if (m) \
+ seq_printf(m, fmt, ##args); \
+})
+
/*
* Print a readable form of a pgprot_t to the seq_file
*/
@@ -99,47 +119,47 @@ static void printk_prot(struct seq_file *m, pgprot_t prot, int level)
if (!pgprot_val(prot)) {
/* Not present */
- seq_printf(m, " ");
+ pt_dump_cont_printf(m, " ");
} else {
if (pr & _PAGE_USER)
- seq_printf(m, "USR ");
+ pt_dump_cont_printf(m, "USR ");
else
- seq_printf(m, " ");
+ pt_dump_cont_printf(m, " ");
if (pr & _PAGE_RW)
- seq_printf(m, "RW ");
+ pt_dump_cont_printf(m, "RW ");
else
- seq_printf(m, "ro ");
+ pt_dump_cont_printf(m, "ro ");
if (pr & _PAGE_PWT)
- seq_printf(m, "PWT ");
+ pt_dump_cont_printf(m, "PWT ");
else
- seq_printf(m, " ");
+ pt_dump_cont_printf(m, " ");
if (pr & _PAGE_PCD)
- seq_printf(m, "PCD ");
+ pt_dump_cont_printf(m, "PCD ");
else
- seq_printf(m, " ");
+ pt_dump_cont_printf(m, " ");
/* Bit 9 has a different meaning on level 3 vs 4 */
if (level <= 3) {
if (pr & _PAGE_PSE)
- seq_printf(m, "PSE ");
+ pt_dump_cont_printf(m, "PSE ");
else
- seq_printf(m, " ");
+ pt_dump_cont_printf(m, " ");
} else {
if (pr & _PAGE_PAT)
- seq_printf(m, "pat ");
+ pt_dump_cont_printf(m, "pat ");
else
- seq_printf(m, " ");
+ pt_dump_cont_printf(m, " ");
}
if (pr & _PAGE_GLOBAL)
- seq_printf(m, "GLB ");
+ pt_dump_cont_printf(m, "GLB ");
else
- seq_printf(m, " ");
+ pt_dump_cont_printf(m, " ");
if (pr & _PAGE_NX)
- seq_printf(m, "NX ");
+ pt_dump_cont_printf(m, "NX ");
else
- seq_printf(m, "x ");
+ pt_dump_cont_printf(m, "x ");
}
- seq_printf(m, "%s\n", level_name[level]);
+ pt_dump_cont_printf(m, "%s\n", level_name[level]);
}
/*
@@ -178,7 +198,7 @@ static void note_page(struct seq_file *m, struct pg_state *st,
st->current_prot = new_prot;
st->level = level;
st->marker = address_markers;
- seq_printf(m, "---[ %s ]---\n", st->marker->name);
+ pt_dump_seq_printf(m, "---[ %s ]---\n", st->marker->name);
} else if (prot != cur || level != st->level ||
st->current_address >= st->marker[1].start_address) {
const char *unit = units;
@@ -188,16 +208,16 @@ static void note_page(struct seq_file *m, struct pg_state *st,
/*
* Now print the actual finished series
*/
- seq_printf(m, "0x%0*lx-0x%0*lx ",
- width, st->start_address,
- width, st->current_address);
+ pt_dump_seq_printf(m, "0x%0*lx-0x%0*lx ",
+ width, st->start_address,
+ width, st->current_address);
delta = (st->current_address - st->start_address) >> 10;
while (!(delta & 1023) && unit[1]) {
delta >>= 10;
unit++;
}
- seq_printf(m, "%9lu%c ", delta, *unit);
+ pt_dump_cont_printf(m, "%9lu%c ", delta, *unit);
printk_prot(m, st->current_prot, st->level);
/*
@@ -207,7 +227,7 @@ static void note_page(struct seq_file *m, struct pg_state *st,
*/
if (st->current_address >= st->marker[1].start_address) {
st->marker++;
- seq_printf(m, "---[ %s ]---\n", st->marker->name);
+ pt_dump_seq_printf(m, "---[ %s ]---\n", st->marker->name);
}
st->start_address = st->current_address;
@@ -296,7 +316,7 @@ static void walk_pud_level(struct seq_file *m, struct pg_state *st, pgd_t addr,
#define pgd_none(a) pud_none(__pud(pgd_val(a)))
#endif
-static void walk_pgd_level(struct seq_file *m)
+static void walk_pgd_level(struct seq_file *m, pgd_t *pgd)
{
#ifdef CONFIG_X86_64
pgd_t *start = (pgd_t *) &init_level4_pgt;
@@ -306,6 +326,9 @@ static void walk_pgd_level(struct seq_file *m)
int i;
struct pg_state st;
+ if (pgd)
+ start = pgd;
+
memset(&st, 0, sizeof(st));
for (i = 0; i < PTRS_PER_PGD; i++) {
@@ -329,9 +352,13 @@ static void walk_pgd_level(struct seq_file *m)
note_page(m, &st, __pgprot(0), 0);
}
-static int ptdump_show(struct seq_file *m, void *v)
+int ptdump_show(struct seq_file *m, void *v)
{
- walk_pgd_level(m);
+ struct ptdump_desc *d = (struct ptdump_desc *)v;
+
+ dump_to_dmesg = d->to_dmesg;
+
+ walk_pgd_level(m, d->pgd);
return 0;
}
diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
index f8ec4dafc74e..7af028a853e8 100644
--- a/arch/x86/platform/efi/efi.c
+++ b/arch/x86/platform/efi/efi.c
@@ -792,6 +792,8 @@ void __init old_map_region(efi_memory_desc_t *md)
*/
void __init efi_enter_virtual_mode(void)
{
+ pgd_t *pgd = (pgd_t *)__va(real_mode_header->trampoline_pgd);
+ struct ptdump_desc pt = { pgd, true };
efi_memory_desc_t *md, *prev_md = NULL;
void *p, *new_memmap = NULL;
unsigned long size;
@@ -876,6 +878,15 @@ void __init efi_enter_virtual_mode(void)
efi_setup_page_tables();
efi_sync_low_kernel_mappings();
+ memcpy(pgd + pgd_index(__pa(new_memmap)),
+ init_mm.pgd + pgd_index(__pa(new_memmap)),
+ sizeof(pgd_t));
+
+ pr_info("desc_size: %lu, count: %d, new_memmap: %p, pa: 0x%lx\n",
+ memmap.desc_size, count, new_memmap, __pa(new_memmap));
+
+ ptdump_show(NULL, &pt);
+
status = phys_efi_set_virtual_address_map(
memmap.desc_size * count,
memmap.desc_size,
diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c
index bf286c386d33..0e2ccca2c7ce 100644
--- a/arch/x86/platform/efi/efi_64.c
+++ b/arch/x86/platform/efi/efi_64.c
@@ -160,6 +160,9 @@ static void __init __map_region(efi_memory_desc_t *md, u64 va)
if (kernel_map_pages_in_pgd(pgd, md->phys_addr, va, md->num_pages, pf))
pr_warn("Error mapping PA 0x%llx -> VA 0x%llx!\n",
md->phys_addr, va);
+ else
+ pr_info("PA: 0x%llx -> VA: 0x%llx\n",
+ md->phys_addr, va);
}
void __init efi_map_region(efi_memory_desc_t *md)
--
Regards/Gruss,
Boris.
Sent from a fat crate under my desk. Formatting is fine.
--
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: EFI tree kernel panic in phys_efi_set_virtual_address_map()
@ 2013-12-12 20:35 ` Borislav Petkov
0 siblings, 0 replies; 20+ messages in thread
From: Borislav Petkov @ 2013-12-12 20:35 UTC (permalink / raw)
To: Toshi Kani
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-efi-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A
On Thu, Dec 12, 2013 at 10:36:17AM -0700, Toshi Kani wrote:
> BTW, the test system is shared and will be used by other test for a
> couple of hours or so. So, please take your time. :-)
Yeah, ok :-)
I went and polished the debugging patch a bit more - it seems we're
going to need it more often now, should probably send it up too :)
Right, so the pagetable dump shows that the new_memmap is not mapped in
it, thus the #PF.
Ok, so next try: let's dump the pagetable after we've copied the pgd
containing new_memmap. Same exercise as before, please.
Thanks.
---
diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
index 3d1999458709..507f62647e39 100644
--- a/arch/x86/include/asm/pgtable.h
+++ b/arch/x86/include/asm/pgtable.h
@@ -16,6 +16,12 @@
#ifndef __ASSEMBLY__
+struct ptdump_desc {
+ pgd_t *pgd;
+ bool to_dmesg;
+};
+int ptdump_show(struct seq_file *m, void *v);
+
#include <asm/x86_init.h>
/*
diff --git a/arch/x86/mm/dump_pagetables.c b/arch/x86/mm/dump_pagetables.c
index 0002a3a33081..29e55d644727 100644
--- a/arch/x86/mm/dump_pagetables.c
+++ b/arch/x86/mm/dump_pagetables.c
@@ -19,6 +19,8 @@
#include <asm/pgtable.h>
+bool dump_to_dmesg;
+
/*
* The dumper groups pagetable entries of the same type into one, and for
* that it needs to keep some state when walking, and flush this state
@@ -88,6 +90,24 @@ static struct addr_marker address_markers[] = {
#define PUD_LEVEL_MULT (PTRS_PER_PMD * PMD_LEVEL_MULT)
#define PGD_LEVEL_MULT (PTRS_PER_PUD * PUD_LEVEL_MULT)
+#define pt_dump_seq_printf(m, fmt, args...) \
+({ \
+ if (dump_to_dmesg) \
+ printk(KERN_INFO fmt, ##args); \
+ else \
+ if (m) \
+ seq_printf(m, fmt, ##args); \
+})
+
+#define pt_dump_cont_printf(m, fmt, args...) \
+({ \
+ if (dump_to_dmesg) \
+ printk(KERN_CONT fmt, ##args); \
+ else \
+ if (m) \
+ seq_printf(m, fmt, ##args); \
+})
+
/*
* Print a readable form of a pgprot_t to the seq_file
*/
@@ -99,47 +119,47 @@ static void printk_prot(struct seq_file *m, pgprot_t prot, int level)
if (!pgprot_val(prot)) {
/* Not present */
- seq_printf(m, " ");
+ pt_dump_cont_printf(m, " ");
} else {
if (pr & _PAGE_USER)
- seq_printf(m, "USR ");
+ pt_dump_cont_printf(m, "USR ");
else
- seq_printf(m, " ");
+ pt_dump_cont_printf(m, " ");
if (pr & _PAGE_RW)
- seq_printf(m, "RW ");
+ pt_dump_cont_printf(m, "RW ");
else
- seq_printf(m, "ro ");
+ pt_dump_cont_printf(m, "ro ");
if (pr & _PAGE_PWT)
- seq_printf(m, "PWT ");
+ pt_dump_cont_printf(m, "PWT ");
else
- seq_printf(m, " ");
+ pt_dump_cont_printf(m, " ");
if (pr & _PAGE_PCD)
- seq_printf(m, "PCD ");
+ pt_dump_cont_printf(m, "PCD ");
else
- seq_printf(m, " ");
+ pt_dump_cont_printf(m, " ");
/* Bit 9 has a different meaning on level 3 vs 4 */
if (level <= 3) {
if (pr & _PAGE_PSE)
- seq_printf(m, "PSE ");
+ pt_dump_cont_printf(m, "PSE ");
else
- seq_printf(m, " ");
+ pt_dump_cont_printf(m, " ");
} else {
if (pr & _PAGE_PAT)
- seq_printf(m, "pat ");
+ pt_dump_cont_printf(m, "pat ");
else
- seq_printf(m, " ");
+ pt_dump_cont_printf(m, " ");
}
if (pr & _PAGE_GLOBAL)
- seq_printf(m, "GLB ");
+ pt_dump_cont_printf(m, "GLB ");
else
- seq_printf(m, " ");
+ pt_dump_cont_printf(m, " ");
if (pr & _PAGE_NX)
- seq_printf(m, "NX ");
+ pt_dump_cont_printf(m, "NX ");
else
- seq_printf(m, "x ");
+ pt_dump_cont_printf(m, "x ");
}
- seq_printf(m, "%s\n", level_name[level]);
+ pt_dump_cont_printf(m, "%s\n", level_name[level]);
}
/*
@@ -178,7 +198,7 @@ static void note_page(struct seq_file *m, struct pg_state *st,
st->current_prot = new_prot;
st->level = level;
st->marker = address_markers;
- seq_printf(m, "---[ %s ]---\n", st->marker->name);
+ pt_dump_seq_printf(m, "---[ %s ]---\n", st->marker->name);
} else if (prot != cur || level != st->level ||
st->current_address >= st->marker[1].start_address) {
const char *unit = units;
@@ -188,16 +208,16 @@ static void note_page(struct seq_file *m, struct pg_state *st,
/*
* Now print the actual finished series
*/
- seq_printf(m, "0x%0*lx-0x%0*lx ",
- width, st->start_address,
- width, st->current_address);
+ pt_dump_seq_printf(m, "0x%0*lx-0x%0*lx ",
+ width, st->start_address,
+ width, st->current_address);
delta = (st->current_address - st->start_address) >> 10;
while (!(delta & 1023) && unit[1]) {
delta >>= 10;
unit++;
}
- seq_printf(m, "%9lu%c ", delta, *unit);
+ pt_dump_cont_printf(m, "%9lu%c ", delta, *unit);
printk_prot(m, st->current_prot, st->level);
/*
@@ -207,7 +227,7 @@ static void note_page(struct seq_file *m, struct pg_state *st,
*/
if (st->current_address >= st->marker[1].start_address) {
st->marker++;
- seq_printf(m, "---[ %s ]---\n", st->marker->name);
+ pt_dump_seq_printf(m, "---[ %s ]---\n", st->marker->name);
}
st->start_address = st->current_address;
@@ -296,7 +316,7 @@ static void walk_pud_level(struct seq_file *m, struct pg_state *st, pgd_t addr,
#define pgd_none(a) pud_none(__pud(pgd_val(a)))
#endif
-static void walk_pgd_level(struct seq_file *m)
+static void walk_pgd_level(struct seq_file *m, pgd_t *pgd)
{
#ifdef CONFIG_X86_64
pgd_t *start = (pgd_t *) &init_level4_pgt;
@@ -306,6 +326,9 @@ static void walk_pgd_level(struct seq_file *m)
int i;
struct pg_state st;
+ if (pgd)
+ start = pgd;
+
memset(&st, 0, sizeof(st));
for (i = 0; i < PTRS_PER_PGD; i++) {
@@ -329,9 +352,13 @@ static void walk_pgd_level(struct seq_file *m)
note_page(m, &st, __pgprot(0), 0);
}
-static int ptdump_show(struct seq_file *m, void *v)
+int ptdump_show(struct seq_file *m, void *v)
{
- walk_pgd_level(m);
+ struct ptdump_desc *d = (struct ptdump_desc *)v;
+
+ dump_to_dmesg = d->to_dmesg;
+
+ walk_pgd_level(m, d->pgd);
return 0;
}
diff --git a/arch/x86/platform/efi/efi.c b/arch/x86/platform/efi/efi.c
index f8ec4dafc74e..7af028a853e8 100644
--- a/arch/x86/platform/efi/efi.c
+++ b/arch/x86/platform/efi/efi.c
@@ -792,6 +792,8 @@ void __init old_map_region(efi_memory_desc_t *md)
*/
void __init efi_enter_virtual_mode(void)
{
+ pgd_t *pgd = (pgd_t *)__va(real_mode_header->trampoline_pgd);
+ struct ptdump_desc pt = { pgd, true };
efi_memory_desc_t *md, *prev_md = NULL;
void *p, *new_memmap = NULL;
unsigned long size;
@@ -876,6 +878,15 @@ void __init efi_enter_virtual_mode(void)
efi_setup_page_tables();
efi_sync_low_kernel_mappings();
+ memcpy(pgd + pgd_index(__pa(new_memmap)),
+ init_mm.pgd + pgd_index(__pa(new_memmap)),
+ sizeof(pgd_t));
+
+ pr_info("desc_size: %lu, count: %d, new_memmap: %p, pa: 0x%lx\n",
+ memmap.desc_size, count, new_memmap, __pa(new_memmap));
+
+ ptdump_show(NULL, &pt);
+
status = phys_efi_set_virtual_address_map(
memmap.desc_size * count,
memmap.desc_size,
diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c
index bf286c386d33..0e2ccca2c7ce 100644
--- a/arch/x86/platform/efi/efi_64.c
+++ b/arch/x86/platform/efi/efi_64.c
@@ -160,6 +160,9 @@ static void __init __map_region(efi_memory_desc_t *md, u64 va)
if (kernel_map_pages_in_pgd(pgd, md->phys_addr, va, md->num_pages, pf))
pr_warn("Error mapping PA 0x%llx -> VA 0x%llx!\n",
md->phys_addr, va);
+ else
+ pr_info("PA: 0x%llx -> VA: 0x%llx\n",
+ md->phys_addr, va);
}
void __init efi_map_region(efi_memory_desc_t *md)
--
Regards/Gruss,
Boris.
Sent from a fat crate under my desk. Formatting is fine.
--
^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: EFI tree kernel panic in phys_efi_set_virtual_address_map()
@ 2013-12-12 20:44 ` Toshi Kani
0 siblings, 0 replies; 20+ messages in thread
From: Toshi Kani @ 2013-12-12 20:44 UTC (permalink / raw)
To: Borislav Petkov; +Cc: linux-kernel, linux-efi, x86
On Thu, 2013-12-12 at 21:35 +0100, Borislav Petkov wrote:
> On Thu, Dec 12, 2013 at 10:36:17AM -0700, Toshi Kani wrote:
> > BTW, the test system is shared and will be used by other test for a
> > couple of hours or so. So, please take your time. :-)
>
> Yeah, ok :-)
>
> I went and polished the debugging patch a bit more - it seems we're
> going to need it more often now, should probably send it up too :)
>
> Right, so the pagetable dump shows that the new_memmap is not mapped in
> it, thus the #PF.
>
> Ok, so next try: let's dump the pagetable after we've copied the pgd
> containing new_memmap. Same exercise as before, please.
Will do.
Thanks,
-Toshi
^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: EFI tree kernel panic in phys_efi_set_virtual_address_map()
@ 2013-12-12 20:44 ` Toshi Kani
0 siblings, 0 replies; 20+ messages in thread
From: Toshi Kani @ 2013-12-12 20:44 UTC (permalink / raw)
To: Borislav Petkov
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA,
linux-efi-u79uwXL29TY76Z2rM5mHXA, x86-DgEjT+Ai2ygdnm+yROfE0A
On Thu, 2013-12-12 at 21:35 +0100, Borislav Petkov wrote:
> On Thu, Dec 12, 2013 at 10:36:17AM -0700, Toshi Kani wrote:
> > BTW, the test system is shared and will be used by other test for a
> > couple of hours or so. So, please take your time. :-)
>
> Yeah, ok :-)
>
> I went and polished the debugging patch a bit more - it seems we're
> going to need it more often now, should probably send it up too :)
>
> Right, so the pagetable dump shows that the new_memmap is not mapped in
> it, thus the #PF.
>
> Ok, so next try: let's dump the pagetable after we've copied the pgd
> containing new_memmap. Same exercise as before, please.
Will do.
Thanks,
-Toshi
^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2013-12-12 20:49 UTC | newest]
Thread overview: 20+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-12-12 0:01 EFI tree kernel panic in phys_efi_set_virtual_address_map() Toshi Kani
2013-12-12 0:01 ` Toshi Kani
2013-12-12 0:29 ` Borislav Petkov
2013-12-12 0:29 ` Borislav Petkov
2013-12-12 0:32 ` Toshi Kani
2013-12-12 0:32 ` Toshi Kani
2013-12-12 1:08 ` Toshi Kani
2013-12-12 1:08 ` Toshi Kani
[not found] ` <1386810620.1791.307.camel@misato.fc.hp.com>
2013-12-12 16:23 ` Borislav Petkov
2013-12-12 16:23 ` Borislav Petkov
2013-12-12 16:43 ` Toshi Kani
2013-12-12 16:43 ` Toshi Kani
2013-12-12 17:27 ` Toshi Kani
2013-12-12 17:27 ` Toshi Kani
2013-12-12 17:36 ` Toshi Kani
2013-12-12 17:36 ` Toshi Kani
2013-12-12 20:35 ` Borislav Petkov
2013-12-12 20:35 ` Borislav Petkov
2013-12-12 20:44 ` Toshi Kani
2013-12-12 20:44 ` Toshi Kani
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.