* 3.14 x86 ACPI handover regression
@ 2014-09-10 15:44 Daniel J Blueman
2014-09-10 18:19 ` Yinghai Lu
0 siblings, 1 reply; 2+ messages in thread
From: Daniel J Blueman @ 2014-09-10 15:44 UTC (permalink / raw)
To: Yinghai Lu, Santosh Shilimkar
Cc: Dave Hansen, Russell King, Konrad Rzeszutek Wilk, Ingo Molnar,
H. Peter Anvin, Andrew Morton, Linus Torvalds, LKML,
Steffen Persvold
Kernels 3.14 and newer fail ACPI handover [1] on Supermicro H8QGL
servers, invariant of BIOS version or settings, causing boot failure,
confirmed across a bunch of servers.
Doing some bisect-fu, it turns out that reverting Yinghai's patch fixes
the behaviour. Booting with Santosh's patch (5b6e529521d3, which Yinghai
reverts) succeeds, but interestingly booting with the patch before
Santosh's patch also succeeds, suggesting there's other interaction.
Behaviour is stable at all places tested.
Any tips on how to proceed?
Thanks,
Daniel
-- [1]
ACPI Error: Hardware did not enter ACPI mode (20131218/evxfevnt-113)
ACPI Warning: AcpiEnable failed (20131218/utxfinit-169)
ACPI: Unable to enable ACPI
-- [2]
commit 4ce7a8697cb795fda6bdf082c14743b4bcd551c3
Author: Yinghai Lu <yinghai@kernel.org>
Date: Mon Jan 27 17:06:50 2014 -0800
x86: revert wrong memblock current limit setting
Dave reported big numa system booting is broken.
It turns out that commit 5b6e529521d3 ("x86: memblock: set current
limit
to max low memory address") sets the limit to low wrongly.
max_low_pfn_mapped is different from max_pfn_mapped.
max_low_pfn_mapped is always under 4G.
That will memblock_alloc_nid all go under 4G.
Revert 5b6e529521d3 to fix a no-boot regression which was triggered by
457ff1de2d24 ("lib/swiotlb.c: use memblock apis for early memory
allocations").
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Reported-by: Dave Hansen <dave.hansen@intel.com>
Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
Cc: Russell King <linux@arm.linux.org.uk>
Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
diff --git a/arch/x86/include/asm/page_types.h
b/arch/x86/include/asm/page_types.h
index 2f59cce..f97fbe3 100644
--- a/arch/x86/include/asm/page_types.h
+++ b/arch/x86/include/asm/page_types.h
@@ -51,9 +51,9 @@ extern int devmem_is_allowed(unsigned long pagenr);
extern unsigned long max_low_pfn_mapped;
extern unsigned long max_pfn_mapped;
-static inline phys_addr_t get_max_low_mapped(void)
+static inline phys_addr_t get_max_mapped(void)
{
- return (phys_addr_t)max_low_pfn_mapped << PAGE_SHIFT;
+ return (phys_addr_t)max_pfn_mapped << PAGE_SHIFT;
}
bool pfn_range_is_mapped(unsigned long start_pfn, unsigned long end_pfn);
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index c967559..06853e6 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -1119,7 +1119,7 @@ void __init setup_arch(char **cmdline_p)
setup_real_mode();
- memblock_set_current_limit(get_max_low_mapped());
+ memblock_set_current_limit(get_max_mapped());
dma_contiguous_reserve(0);
/*
--
Daniel J Blueman
Principal Software Engineer, Numascale
^ permalink raw reply related [flat|nested] 2+ messages in thread* Re: 3.14 x86 ACPI handover regression
2014-09-10 15:44 3.14 x86 ACPI handover regression Daniel J Blueman
@ 2014-09-10 18:19 ` Yinghai Lu
0 siblings, 0 replies; 2+ messages in thread
From: Yinghai Lu @ 2014-09-10 18:19 UTC (permalink / raw)
To: Daniel J Blueman, ACPI Devel Maling List, Rafael J. Wysocki
Cc: Santosh Shilimkar, Dave Hansen, Russell King,
Konrad Rzeszutek Wilk, Ingo Molnar, H. Peter Anvin, Andrew Morton,
Linus Torvalds, LKML, Steffen Persvold
[+ linux acpi]
could be other problems ...that is caused by wrong
use memblock_alloc replace memblock_find....
On Wed, Sep 10, 2014 at 8:44 AM, Daniel J Blueman <daniel@numascale.com> wrote:
> Kernels 3.14 and newer fail ACPI handover [1] on Supermicro H8QGL servers,
> invariant of BIOS version or settings, causing boot failure, confirmed
> across a bunch of servers.
>
> Doing some bisect-fu, it turns out that reverting Yinghai's patch fixes the
> behaviour. Booting with Santosh's patch (5b6e529521d3, which Yinghai
> reverts) succeeds, but interestingly booting with the patch before Santosh's
> patch also succeeds, suggesting there's other interaction. Behaviour is
> stable at all places tested.
>
> Any tips on how to proceed?
>
> Thanks,
> Daniel
>
> -- [1]
>
> ACPI Error: Hardware did not enter ACPI mode (20131218/evxfevnt-113)
> ACPI Warning: AcpiEnable failed (20131218/utxfinit-169)
> ACPI: Unable to enable ACPI
>
> -- [2]
>
> commit 4ce7a8697cb795fda6bdf082c14743b4bcd551c3
> Author: Yinghai Lu <yinghai@kernel.org>
> Date: Mon Jan 27 17:06:50 2014 -0800
>
> x86: revert wrong memblock current limit setting
>
> Dave reported big numa system booting is broken.
>
> It turns out that commit 5b6e529521d3 ("x86: memblock: set current limit
> to max low memory address") sets the limit to low wrongly.
>
> max_low_pfn_mapped is different from max_pfn_mapped.
> max_low_pfn_mapped is always under 4G.
>
> That will memblock_alloc_nid all go under 4G.
>
> Revert 5b6e529521d3 to fix a no-boot regression which was triggered by
> 457ff1de2d24 ("lib/swiotlb.c: use memblock apis for early memory
> allocations").
>
> Signed-off-by: Yinghai Lu <yinghai@kernel.org>
> Reported-by: Dave Hansen <dave.hansen@intel.com>
> Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com>
> Cc: Russell King <linux@arm.linux.org.uk>
> Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
> Cc: Ingo Molnar <mingo@elte.hu>
> Cc: "H. Peter Anvin" <hpa@zytor.com>
> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
>
> diff --git a/arch/x86/include/asm/page_types.h
> b/arch/x86/include/asm/page_types.h
> index 2f59cce..f97fbe3 100644
> --- a/arch/x86/include/asm/page_types.h
> +++ b/arch/x86/include/asm/page_types.h
> @@ -51,9 +51,9 @@ extern int devmem_is_allowed(unsigned long pagenr);
> extern unsigned long max_low_pfn_mapped;
> extern unsigned long max_pfn_mapped;
>
> -static inline phys_addr_t get_max_low_mapped(void)
> +static inline phys_addr_t get_max_mapped(void)
> {
> - return (phys_addr_t)max_low_pfn_mapped << PAGE_SHIFT;
> + return (phys_addr_t)max_pfn_mapped << PAGE_SHIFT;
> }
>
> bool pfn_range_is_mapped(unsigned long start_pfn, unsigned long end_pfn);
> diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
> index c967559..06853e6 100644
> --- a/arch/x86/kernel/setup.c
> +++ b/arch/x86/kernel/setup.c
> @@ -1119,7 +1119,7 @@ void __init setup_arch(char **cmdline_p)
>
> setup_real_mode();
>
> - memblock_set_current_limit(get_max_low_mapped());
> + memblock_set_current_limit(get_max_mapped());
> dma_contiguous_reserve(0);
>
> /*
> --
> Daniel J Blueman
> Principal Software Engineer, Numascale
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2014-09-10 18:19 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-09-10 15:44 3.14 x86 ACPI handover regression Daniel J Blueman
2014-09-10 18:19 ` Yinghai Lu
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox