* Re: [PATCH] memblock: Add limit checking to memblock_virt_alloc
2014-01-28 22:04 [PATCH] memblock: Add limit checking to memblock_virt_alloc Yinghai Lu
@ 2014-01-28 22:08 ` Dave Hansen
2014-01-28 22:47 ` Yinghai Lu
2014-01-28 22:08 ` Andrew Morton
` (3 subsequent siblings)
4 siblings, 1 reply; 22+ messages in thread
From: Dave Hansen @ 2014-01-28 22:08 UTC (permalink / raw)
To: Yinghai Lu, Andrew Morton, Linus Torvalds, Ingo Molnar,
H. Peter Anvin, 'Russell King - ARM Linux', Kevin Hilman,
Olof Johansson, Konrad Rzeszutek Wilk
Cc: Santosh Shilimkar, linux-kernel
On 01/28/2014 02:04 PM, Yinghai Lu wrote:
> In original bootmem wrapper for memblock, we have limit checking.
>
> Add it to memblock_virt_alloc, to address arm and x86 booting crash.
>
> Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Do you have a git tree or cumulative set of patches that you'd like us
to all test? I'm happy to boot it on my system, I just want to make
sure I've got the same set that you're testing.
^ permalink raw reply [flat|nested] 22+ messages in thread* Re: [PATCH] memblock: Add limit checking to memblock_virt_alloc
2014-01-28 22:08 ` Dave Hansen
@ 2014-01-28 22:47 ` Yinghai Lu
2014-01-28 22:55 ` Dave Hansen
` (2 more replies)
0 siblings, 3 replies; 22+ messages in thread
From: Yinghai Lu @ 2014-01-28 22:47 UTC (permalink / raw)
To: Dave Hansen
Cc: Andrew Morton, Linus Torvalds, Ingo Molnar, H. Peter Anvin,
Russell King - ARM Linux, Kevin Hilman, Olof Johansson,
Konrad Rzeszutek Wilk, Santosh Shilimkar,
Linux Kernel Mailing List
On Tue, Jan 28, 2014 at 2:08 PM, Dave Hansen <dave.hansen@intel.com> wrote:
> On 01/28/2014 02:04 PM, Yinghai Lu wrote:
>> In original bootmem wrapper for memblock, we have limit checking.
>>
>> Add it to memblock_virt_alloc, to address arm and x86 booting crash.
>>
>> Signed-off-by: Yinghai Lu <yinghai@kernel.org>
>
> Do you have a git tree or cumulative set of patches that you'd like us
> to all test? I'm happy to boot it on my system, I just want to make
> sure I've got the same set that you're testing.
This one should only affect on arm and x86 the 32 bit kernel with more
then 4G RAM.
thanks
Yinghai
^ permalink raw reply [flat|nested] 22+ messages in thread* Re: [PATCH] memblock: Add limit checking to memblock_virt_alloc
2014-01-28 22:47 ` Yinghai Lu
@ 2014-01-28 22:55 ` Dave Hansen
2014-01-29 1:50 ` Konrad Rzeszutek Wilk
2014-01-29 1:50 ` Konrad Rzeszutek Wilk
2 siblings, 0 replies; 22+ messages in thread
From: Dave Hansen @ 2014-01-28 22:55 UTC (permalink / raw)
To: Yinghai Lu
Cc: Andrew Morton, Linus Torvalds, Ingo Molnar, H. Peter Anvin,
Russell King - ARM Linux, Kevin Hilman, Olof Johansson,
Konrad Rzeszutek Wilk, Santosh Shilimkar,
Linux Kernel Mailing List
On 01/28/2014 02:47 PM, Yinghai Lu wrote:
> On Tue, Jan 28, 2014 at 2:08 PM, Dave Hansen <dave.hansen@intel.com> wrote:
>> On 01/28/2014 02:04 PM, Yinghai Lu wrote:
>>> In original bootmem wrapper for memblock, we have limit checking.
>>>
>>> Add it to memblock_virt_alloc, to address arm and x86 booting crash.
>>>
>> Do you have a git tree or cumulative set of patches that you'd like us
>> to all test? I'm happy to boot it on my system, I just want to make
>> sure I've got the same set that you're testing.
>
> This one should only affect on arm and x86 the 32 bit kernel with more
> then 4G RAM.
OK, let me rephrase.
Does anyone want me to test this on a 1TB 64-bit x86 system? If yes,
please tell me which patches you want me to test, and on top of which
kernel. I have three patches in this area, I think, but I don't want to
waste my time testing and reporting the wrong thing.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH] memblock: Add limit checking to memblock_virt_alloc
2014-01-28 22:47 ` Yinghai Lu
2014-01-28 22:55 ` Dave Hansen
@ 2014-01-29 1:50 ` Konrad Rzeszutek Wilk
2014-01-29 23:07 ` Tony Luck
2014-01-29 23:07 ` Tony Luck
2014-01-29 1:50 ` Konrad Rzeszutek Wilk
2 siblings, 2 replies; 22+ messages in thread
From: Konrad Rzeszutek Wilk @ 2014-01-29 1:50 UTC (permalink / raw)
To: Yinghai Lu, xen-devel, boris.ostrovsky, david.vrabel
Cc: Dave Hansen, Andrew Morton, Linus Torvalds, Ingo Molnar,
H. Peter Anvin, Russell King - ARM Linux, Kevin Hilman,
Olof Johansson, Santosh Shilimkar, Linux Kernel Mailing List
On Tue, Jan 28, 2014 at 02:47:57PM -0800, Yinghai Lu wrote:
> On Tue, Jan 28, 2014 at 2:08 PM, Dave Hansen <dave.hansen@intel.com> wrote:
> > On 01/28/2014 02:04 PM, Yinghai Lu wrote:
> >> In original bootmem wrapper for memblock, we have limit checking.
> >>
> >> Add it to memblock_virt_alloc, to address arm and x86 booting crash.
> >>
> >> Signed-off-by: Yinghai Lu <yinghai@kernel.org>
> >
> > Do you have a git tree or cumulative set of patches that you'd like us
> > to all test? I'm happy to boot it on my system, I just want to make
> > sure I've got the same set that you're testing.
>
> This one should only affect on arm and x86 the 32 bit kernel with more
> then 4G RAM.
Tested-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
It fixes the issue I saw with Xen and 32-bit dom0 blowing up.
>
> thanks
>
> Yinghai
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH] memblock: Add limit checking to memblock_virt_alloc
2014-01-29 1:50 ` Konrad Rzeszutek Wilk
@ 2014-01-29 23:07 ` Tony Luck
2014-01-29 23:39 ` Yinghai Lu
2014-01-29 23:39 ` Yinghai Lu
2014-01-29 23:07 ` Tony Luck
1 sibling, 2 replies; 22+ messages in thread
From: Tony Luck @ 2014-01-29 23:07 UTC (permalink / raw)
To: Konrad Rzeszutek Wilk
Cc: Yinghai Lu, xen-devel, Boris Ostrovsky, david.vrabel, Dave Hansen,
Andrew Morton, Linus Torvalds, Ingo Molnar, H. Peter Anvin,
Russell King - ARM Linux, Kevin Hilman, Olof Johansson,
Santosh Shilimkar, Linux Kernel Mailing List
Hmmph. ia64 is broken too. git bisect says:
commit ad6492b80f60a2139fa9bf8fd79b182fe5e3647c
Author: Yinghai Lu <yinghai@kernel.org>
Date: Mon Jan 27 17:06:49 2014 -0800
memblock, nobootmem: add memblock_virt_alloc_low()
is to blame. But this patch doesn't fix it. Still dies with:
PID hash table entries: 4096 (order: -1, 32768 bytes)
Sorting __ex_table...
kernel BUG at mm/bootmem.c:504!
swapper[0]: bugcheck! 0 [1]
Modules linked in:
CPU: 0 PID: 0 Comm: swapper Not tainted 3.13.0-bisect-09219-g5e345db #10
task: a000000101040000 ti: a000000101040f10 task.ti: a000000101040f10
psr : 00001010084a2018 ifs : 8000000000000797 ip :
[<a000000100eea530>] Not tainted (3.13.0-bisect-09219-g5e345db)
ip is at alloc_bootmem_bdata+0x230/0x790
unat: 0000000000000000 pfs : 0000000000000797 rsc : 0000000000000003
rnat: a000000100dff0ee bsps: 0000000000000000 pr : 96669601598a95a9
ldrs: 0000000000000000 ccv : 0000000000000000 fpsr: 0009804c8a70433f
csd : 0930ffff00063000 ssd : 0930ffff00063000
b0 : a000000100eea530 b6 : a0000001005f4040 b7 : a0000001005f3e00
f6 : 000000000000000000000 f7 : 1003e0000000000000000
f8 : 1003e0044b82fa09b5a53 f9 : 1003e0000000000001680
f10 : 1003e0000000000000008 f11 : 1003e00000000000002d0
r1 : a0000001017ce170 r2 : a00000010158e0a0 r3 : a0000001015ced80
r8 : 000000000000001f r9 : 0000000000000664 r10 : 0000000000000000
r11 : 0000000000000000 r12 : a00000010104fe20 r13 : a000000101040000
r14 : a00000010158e0a8 r15 : a00000010158e0a8 r16 : 0000000006640332
r17 : 0000000000000000 r18 : 0000000000007fff r19 : 0000000000000000
r20 : a000000101727e98 r21 : 0000000000000058 r22 : a000000101616c98
r23 : a000000101616c00 r24 : a000000101616c00 r25 : 00000000000003f8
r26 : a000000100e901a8 r27 : a000000100f59480 r28 : 0000000000000058
r29 : 0000000000000057 r30 : 00000000000016d0 r31 : 0000000000000030
Unable to handle kernel NULL pointer dereference (address 0000000000000000)
swapper[0]: Oops 11012296146944 [2]
-Tony
On Tue, Jan 28, 2014 at 5:50 PM, Konrad Rzeszutek Wilk
<konrad.wilk@oracle.com> wrote:
> On Tue, Jan 28, 2014 at 02:47:57PM -0800, Yinghai Lu wrote:
>> On Tue, Jan 28, 2014 at 2:08 PM, Dave Hansen <dave.hansen@intel.com> wrote:
>> > On 01/28/2014 02:04 PM, Yinghai Lu wrote:
>> >> In original bootmem wrapper for memblock, we have limit checking.
>> >>
>> >> Add it to memblock_virt_alloc, to address arm and x86 booting crash.
>> >>
>> >> Signed-off-by: Yinghai Lu <yinghai@kernel.org>
>> >
>> > Do you have a git tree or cumulative set of patches that you'd like us
>> > to all test? I'm happy to boot it on my system, I just want to make
>> > sure I've got the same set that you're testing.
>>
>> This one should only affect on arm and x86 the 32 bit kernel with more
>> then 4G RAM.
>
> Tested-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
>
> It fixes the issue I saw with Xen and 32-bit dom0 blowing up.
>
>>
>> thanks
>>
>> Yinghai
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 22+ messages in thread* Re: [PATCH] memblock: Add limit checking to memblock_virt_alloc
2014-01-29 23:07 ` Tony Luck
@ 2014-01-29 23:39 ` Yinghai Lu
2014-01-29 23:39 ` Yinghai Lu
1 sibling, 0 replies; 22+ messages in thread
From: Yinghai Lu @ 2014-01-29 23:39 UTC (permalink / raw)
To: Tony Luck
Cc: Kevin Hilman, Russell King - ARM Linux, Ingo Molnar,
Linux Kernel Mailing List, Dave Hansen, Santosh Shilimkar,
David Vrabel, H. Peter Anvin, Olof Johansson, xen-devel,
Boris Ostrovsky, Linus Torvalds, Andrew Morton
On Wed, Jan 29, 2014 at 3:07 PM, Tony Luck <tony.luck@gmail.com> wrote:
> Hmmph. ia64 is broken too. git bisect says:
>
> commit ad6492b80f60a2139fa9bf8fd79b182fe5e3647c
> Author: Yinghai Lu <yinghai@kernel.org>
> Date: Mon Jan 27 17:06:49 2014 -0800
>
> memblock, nobootmem: add memblock_virt_alloc_low()
>
> is to blame. But this patch doesn't fix it. Still dies with:
>
> PID hash table entries: 4096 (order: -1, 32768 bytes)
> Sorting __ex_table...
> kernel BUG at mm/bootmem.c:504!
that's another path with memblock_virt wrapper for bootmem.
Let's me check that.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH] memblock: Add limit checking to memblock_virt_alloc
2014-01-29 23:07 ` Tony Luck
2014-01-29 23:39 ` Yinghai Lu
@ 2014-01-29 23:39 ` Yinghai Lu
2014-01-29 23:53 ` Yinghai Lu
2014-01-29 23:53 ` Yinghai Lu
1 sibling, 2 replies; 22+ messages in thread
From: Yinghai Lu @ 2014-01-29 23:39 UTC (permalink / raw)
To: Tony Luck
Cc: Konrad Rzeszutek Wilk, xen-devel, Boris Ostrovsky, David Vrabel,
Dave Hansen, Andrew Morton, Linus Torvalds, Ingo Molnar,
H. Peter Anvin, Russell King - ARM Linux, Kevin Hilman,
Olof Johansson, Santosh Shilimkar, Linux Kernel Mailing List
On Wed, Jan 29, 2014 at 3:07 PM, Tony Luck <tony.luck@gmail.com> wrote:
> Hmmph. ia64 is broken too. git bisect says:
>
> commit ad6492b80f60a2139fa9bf8fd79b182fe5e3647c
> Author: Yinghai Lu <yinghai@kernel.org>
> Date: Mon Jan 27 17:06:49 2014 -0800
>
> memblock, nobootmem: add memblock_virt_alloc_low()
>
> is to blame. But this patch doesn't fix it. Still dies with:
>
> PID hash table entries: 4096 (order: -1, 32768 bytes)
> Sorting __ex_table...
> kernel BUG at mm/bootmem.c:504!
that's another path with memblock_virt wrapper for bootmem.
Let's me check that.
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH] memblock: Add limit checking to memblock_virt_alloc
2014-01-29 23:39 ` Yinghai Lu
@ 2014-01-29 23:53 ` Yinghai Lu
2014-01-29 23:53 ` Yinghai Lu
1 sibling, 0 replies; 22+ messages in thread
From: Yinghai Lu @ 2014-01-29 23:53 UTC (permalink / raw)
To: Tony Luck
Cc: Kevin Hilman, Russell King - ARM Linux, Ingo Molnar,
Linux Kernel Mailing List, Dave Hansen, Santosh Shilimkar,
David Vrabel, H. Peter Anvin, Olof Johansson, xen-devel,
Boris Ostrovsky, Linus Torvalds, Andrew Morton
[-- Attachment #1: Type: text/plain, Size: 695 bytes --]
On Wed, Jan 29, 2014 at 3:39 PM, Yinghai Lu <yinghai@kernel.org> wrote:
> On Wed, Jan 29, 2014 at 3:07 PM, Tony Luck <tony.luck@gmail.com> wrote:
>> Hmmph. ia64 is broken too. git bisect says:
>>
>> commit ad6492b80f60a2139fa9bf8fd79b182fe5e3647c
>> Author: Yinghai Lu <yinghai@kernel.org>
>> Date: Mon Jan 27 17:06:49 2014 -0800
>>
>> memblock, nobootmem: add memblock_virt_alloc_low()
>>
>> is to blame. But this patch doesn't fix it. Still dies with:
>>
>> PID hash table entries: 4096 (order: -1, 32768 bytes)
>> Sorting __ex_table...
>> kernel BUG at mm/bootmem.c:504!
>
> that's another path with memblock_virt wrapper for bootmem.
Please check attached patch.
Thanks
Yinghai
[-- Attachment #2: fix_memblock_virt_alloc_ia64.patch --]
[-- Type: text/x-patch, Size: 1533 bytes --]
Subject: [PATCH] memblock, bootmem: Restore goal for alloc_low
Now we have memblock_virt_alloc_low to replace original bootmem api
in swiotlb.
But we should not use BOOTMEM_LOW_LIMIT for arch that does not support
CONFIG_NOBOOTMEM, as old api take 0.
| #define alloc_bootmem_low(x) \
| __alloc_bootmem_low(x, SMP_CACHE_BYTES, 0)
|#define alloc_bootmem_low_pages_nopanic(x) \
| __alloc_bootmem_low_nopanic(x, PAGE_SIZE, 0)
and we have
#define BOOTMEM_LOW_LIMIT __pa(MAX_DMA_ADDRESS)
for CONFIG_NOBOOTMEM.
Restore goal to 0 to fix ia64 crash, that Tony found.
Reported-by: Tony Luck <tony.luck@gmail.com>
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
---
include/linux/bootmem.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: linux-2.6/include/linux/bootmem.h
===================================================================
--- linux-2.6.orig/include/linux/bootmem.h
+++ linux-2.6/include/linux/bootmem.h
@@ -264,7 +264,7 @@ static inline void * __init memblock_vir
{
if (!align)
align = SMP_CACHE_BYTES;
- return __alloc_bootmem_low(size, align, BOOTMEM_LOW_LIMIT);
+ return __alloc_bootmem_low(size, align, 0);
}
static inline void * __init memblock_virt_alloc_low_nopanic(
@@ -272,7 +272,7 @@ static inline void * __init memblock_vir
{
if (!align)
align = SMP_CACHE_BYTES;
- return __alloc_bootmem_low_nopanic(size, align, BOOTMEM_LOW_LIMIT);
+ return __alloc_bootmem_low_nopanic(size, align, 0);
}
static inline void * __init memblock_virt_alloc_from_nopanic(
[-- Attachment #3: Type: text/plain, Size: 126 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 22+ messages in thread* Re: [PATCH] memblock: Add limit checking to memblock_virt_alloc
2014-01-29 23:39 ` Yinghai Lu
2014-01-29 23:53 ` Yinghai Lu
@ 2014-01-29 23:53 ` Yinghai Lu
2014-01-30 0:12 ` Tony Luck
2014-01-30 0:12 ` Tony Luck
1 sibling, 2 replies; 22+ messages in thread
From: Yinghai Lu @ 2014-01-29 23:53 UTC (permalink / raw)
To: Tony Luck
Cc: Konrad Rzeszutek Wilk, xen-devel, Boris Ostrovsky, David Vrabel,
Dave Hansen, Andrew Morton, Linus Torvalds, Ingo Molnar,
H. Peter Anvin, Russell King - ARM Linux, Kevin Hilman,
Olof Johansson, Santosh Shilimkar, Linux Kernel Mailing List
[-- Attachment #1: Type: text/plain, Size: 695 bytes --]
On Wed, Jan 29, 2014 at 3:39 PM, Yinghai Lu <yinghai@kernel.org> wrote:
> On Wed, Jan 29, 2014 at 3:07 PM, Tony Luck <tony.luck@gmail.com> wrote:
>> Hmmph. ia64 is broken too. git bisect says:
>>
>> commit ad6492b80f60a2139fa9bf8fd79b182fe5e3647c
>> Author: Yinghai Lu <yinghai@kernel.org>
>> Date: Mon Jan 27 17:06:49 2014 -0800
>>
>> memblock, nobootmem: add memblock_virt_alloc_low()
>>
>> is to blame. But this patch doesn't fix it. Still dies with:
>>
>> PID hash table entries: 4096 (order: -1, 32768 bytes)
>> Sorting __ex_table...
>> kernel BUG at mm/bootmem.c:504!
>
> that's another path with memblock_virt wrapper for bootmem.
Please check attached patch.
Thanks
Yinghai
[-- Attachment #2: fix_memblock_virt_alloc_ia64.patch --]
[-- Type: text/x-patch, Size: 1533 bytes --]
Subject: [PATCH] memblock, bootmem: Restore goal for alloc_low
Now we have memblock_virt_alloc_low to replace original bootmem api
in swiotlb.
But we should not use BOOTMEM_LOW_LIMIT for arch that does not support
CONFIG_NOBOOTMEM, as old api take 0.
| #define alloc_bootmem_low(x) \
| __alloc_bootmem_low(x, SMP_CACHE_BYTES, 0)
|#define alloc_bootmem_low_pages_nopanic(x) \
| __alloc_bootmem_low_nopanic(x, PAGE_SIZE, 0)
and we have
#define BOOTMEM_LOW_LIMIT __pa(MAX_DMA_ADDRESS)
for CONFIG_NOBOOTMEM.
Restore goal to 0 to fix ia64 crash, that Tony found.
Reported-by: Tony Luck <tony.luck@gmail.com>
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
---
include/linux/bootmem.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
Index: linux-2.6/include/linux/bootmem.h
===================================================================
--- linux-2.6.orig/include/linux/bootmem.h
+++ linux-2.6/include/linux/bootmem.h
@@ -264,7 +264,7 @@ static inline void * __init memblock_vir
{
if (!align)
align = SMP_CACHE_BYTES;
- return __alloc_bootmem_low(size, align, BOOTMEM_LOW_LIMIT);
+ return __alloc_bootmem_low(size, align, 0);
}
static inline void * __init memblock_virt_alloc_low_nopanic(
@@ -272,7 +272,7 @@ static inline void * __init memblock_vir
{
if (!align)
align = SMP_CACHE_BYTES;
- return __alloc_bootmem_low_nopanic(size, align, BOOTMEM_LOW_LIMIT);
+ return __alloc_bootmem_low_nopanic(size, align, 0);
}
static inline void * __init memblock_virt_alloc_from_nopanic(
^ permalink raw reply [flat|nested] 22+ messages in thread* Re: [PATCH] memblock: Add limit checking to memblock_virt_alloc
2014-01-29 23:53 ` Yinghai Lu
@ 2014-01-30 0:12 ` Tony Luck
2014-01-30 0:12 ` Tony Luck
1 sibling, 0 replies; 22+ messages in thread
From: Tony Luck @ 2014-01-30 0:12 UTC (permalink / raw)
To: Yinghai Lu
Cc: Kevin Hilman, Russell King - ARM Linux, Ingo Molnar,
Linux Kernel Mailing List, Dave Hansen, Santosh Shilimkar,
David Vrabel, H. Peter Anvin, Olof Johansson, xen-devel,
Boris Ostrovsky, Linus Torvalds, Andrew Morton
Applying on top of Linus' tree (commit =
dda68a8c1707b4011dc3c656fa1b2c6de6f7f304) I just get:
patching file include/linux/bootmem.h
Hunk #1 FAILED at 264.
Hunk #2 FAILED at 272.
2 out of 2 hunks FAILED -- saving rejects to file include/linux/bootmem.h.rej
- not a promising start :-(
-Tony
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH] memblock: Add limit checking to memblock_virt_alloc
2014-01-29 23:53 ` Yinghai Lu
2014-01-30 0:12 ` Tony Luck
@ 2014-01-30 0:12 ` Tony Luck
2014-01-30 0:34 ` Andrew Morton
2014-01-30 0:34 ` Andrew Morton
1 sibling, 2 replies; 22+ messages in thread
From: Tony Luck @ 2014-01-30 0:12 UTC (permalink / raw)
To: Yinghai Lu
Cc: Konrad Rzeszutek Wilk, xen-devel, Boris Ostrovsky, David Vrabel,
Dave Hansen, Andrew Morton, Linus Torvalds, Ingo Molnar,
H. Peter Anvin, Russell King - ARM Linux, Kevin Hilman,
Olof Johansson, Santosh Shilimkar, Linux Kernel Mailing List
Applying on top of Linus' tree (commit =
dda68a8c1707b4011dc3c656fa1b2c6de6f7f304) I just get:
patching file include/linux/bootmem.h
Hunk #1 FAILED at 264.
Hunk #2 FAILED at 272.
2 out of 2 hunks FAILED -- saving rejects to file include/linux/bootmem.h.rej
- not a promising start :-(
-Tony
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH] memblock: Add limit checking to memblock_virt_alloc
2014-01-30 0:12 ` Tony Luck
@ 2014-01-30 0:34 ` Andrew Morton
2014-01-30 0:34 ` Andrew Morton
1 sibling, 0 replies; 22+ messages in thread
From: Andrew Morton @ 2014-01-30 0:34 UTC (permalink / raw)
To: Tony Luck
Cc: Kevin Hilman, Russell King - ARM Linux, Linus Torvalds,
Linux Kernel Mailing List, Dave Hansen, Santosh Shilimkar,
David Vrabel, H. Peter Anvin, Olof Johansson, xen-devel,
Boris Ostrovsky, Yinghai Lu, Ingo Molnar
On Wed, 29 Jan 2014 16:12:13 -0800 Tony Luck <tony.luck@gmail.com> wrote:
> Applying on top of Linus' tree (commit =
> dda68a8c1707b4011dc3c656fa1b2c6de6f7f304) I just get:
>
> patching file include/linux/bootmem.h
> Hunk #1 FAILED at 264.
> Hunk #2 FAILED at 272.
> 2 out of 2 hunks FAILED -- saving rejects to file include/linux/bootmem.h.rej
>
> - not a promising start :-(
>
It applies for me. MIME getting you down?
From: Yinghai Lu <yinghai@kernel.org>
Subject: memblock, bootmem: restore goal for alloc_low
Now we have memblock_virt_alloc_low to replace original bootmem api
in swiotlb.
But we should not use BOOTMEM_LOW_LIMIT for arch that does not support
CONFIG_NOBOOTMEM, as old api take 0.
| #define alloc_bootmem_low(x) \
| __alloc_bootmem_low(x, SMP_CACHE_BYTES, 0)
|#define alloc_bootmem_low_pages_nopanic(x) \
| __alloc_bootmem_low_nopanic(x, PAGE_SIZE, 0)
and we have
#define BOOTMEM_LOW_LIMIT __pa(MAX_DMA_ADDRESS)
for CONFIG_NOBOOTMEM.
Restore goal to 0 to fix ia64 crash, that Tony found.
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Reported-by: Tony Luck <tony.luck@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
include/linux/bootmem.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff -puN include/linux/bootmem.h~memblock-bootmem-restore-goal-for-alloc_low include/linux/bootmem.h
--- a/include/linux/bootmem.h~memblock-bootmem-restore-goal-for-alloc_low
+++ a/include/linux/bootmem.h
@@ -264,7 +264,7 @@ static inline void * __init memblock_vir
{
if (!align)
align = SMP_CACHE_BYTES;
- return __alloc_bootmem_low(size, align, BOOTMEM_LOW_LIMIT);
+ return __alloc_bootmem_low(size, align, 0);
}
static inline void * __init memblock_virt_alloc_low_nopanic(
@@ -272,7 +272,7 @@ static inline void * __init memblock_vir
{
if (!align)
align = SMP_CACHE_BYTES;
- return __alloc_bootmem_low_nopanic(size, align, BOOTMEM_LOW_LIMIT);
+ return __alloc_bootmem_low_nopanic(size, align, 0);
}
static inline void * __init memblock_virt_alloc_from_nopanic(
_
^ permalink raw reply [flat|nested] 22+ messages in thread* Re: [PATCH] memblock: Add limit checking to memblock_virt_alloc
2014-01-30 0:12 ` Tony Luck
2014-01-30 0:34 ` Andrew Morton
@ 2014-01-30 0:34 ` Andrew Morton
2014-01-30 0:46 ` Tony Luck
2014-01-30 0:46 ` Tony Luck
1 sibling, 2 replies; 22+ messages in thread
From: Andrew Morton @ 2014-01-30 0:34 UTC (permalink / raw)
To: Tony Luck
Cc: Yinghai Lu, Konrad Rzeszutek Wilk, xen-devel, Boris Ostrovsky,
David Vrabel, Dave Hansen, Linus Torvalds, Ingo Molnar,
H. Peter Anvin, Russell King - ARM Linux, Kevin Hilman,
Olof Johansson, Santosh Shilimkar, Linux Kernel Mailing List
On Wed, 29 Jan 2014 16:12:13 -0800 Tony Luck <tony.luck@gmail.com> wrote:
> Applying on top of Linus' tree (commit =
> dda68a8c1707b4011dc3c656fa1b2c6de6f7f304) I just get:
>
> patching file include/linux/bootmem.h
> Hunk #1 FAILED at 264.
> Hunk #2 FAILED at 272.
> 2 out of 2 hunks FAILED -- saving rejects to file include/linux/bootmem.h.rej
>
> - not a promising start :-(
>
It applies for me. MIME getting you down?
From: Yinghai Lu <yinghai@kernel.org>
Subject: memblock, bootmem: restore goal for alloc_low
Now we have memblock_virt_alloc_low to replace original bootmem api
in swiotlb.
But we should not use BOOTMEM_LOW_LIMIT for arch that does not support
CONFIG_NOBOOTMEM, as old api take 0.
| #define alloc_bootmem_low(x) \
| __alloc_bootmem_low(x, SMP_CACHE_BYTES, 0)
|#define alloc_bootmem_low_pages_nopanic(x) \
| __alloc_bootmem_low_nopanic(x, PAGE_SIZE, 0)
and we have
#define BOOTMEM_LOW_LIMIT __pa(MAX_DMA_ADDRESS)
for CONFIG_NOBOOTMEM.
Restore goal to 0 to fix ia64 crash, that Tony found.
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Reported-by: Tony Luck <tony.luck@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
---
include/linux/bootmem.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff -puN include/linux/bootmem.h~memblock-bootmem-restore-goal-for-alloc_low include/linux/bootmem.h
--- a/include/linux/bootmem.h~memblock-bootmem-restore-goal-for-alloc_low
+++ a/include/linux/bootmem.h
@@ -264,7 +264,7 @@ static inline void * __init memblock_vir
{
if (!align)
align = SMP_CACHE_BYTES;
- return __alloc_bootmem_low(size, align, BOOTMEM_LOW_LIMIT);
+ return __alloc_bootmem_low(size, align, 0);
}
static inline void * __init memblock_virt_alloc_low_nopanic(
@@ -272,7 +272,7 @@ static inline void * __init memblock_vir
{
if (!align)
align = SMP_CACHE_BYTES;
- return __alloc_bootmem_low_nopanic(size, align, BOOTMEM_LOW_LIMIT);
+ return __alloc_bootmem_low_nopanic(size, align, 0);
}
static inline void * __init memblock_virt_alloc_from_nopanic(
_
^ permalink raw reply [flat|nested] 22+ messages in thread* Re: [PATCH] memblock: Add limit checking to memblock_virt_alloc
2014-01-30 0:34 ` Andrew Morton
@ 2014-01-30 0:46 ` Tony Luck
2014-01-30 0:46 ` Tony Luck
1 sibling, 0 replies; 22+ messages in thread
From: Tony Luck @ 2014-01-30 0:46 UTC (permalink / raw)
To: Andrew Morton
Cc: Yinghai Lu, Konrad Rzeszutek Wilk, xen-devel, Boris Ostrovsky,
David Vrabel, Dave Hansen, Linus Torvalds, Ingo Molnar,
H. Peter Anvin, Russell King - ARM Linux, Kevin Hilman,
Olof Johansson, Santosh Shilimkar, Linux Kernel Mailing List
On Wed, Jan 29, 2014 at 4:34 PM, Andrew Morton
<akpm@linux-foundation.org> wrote:
> It applies for me. MIME getting you down?
Perhaps - Gmail's web client showed me a downward pointing arrow when I
moused over the attachment icon in Yinghai's e-mail. So I clicked it ... and
it looked like it downloaded a patch-like looking file. So I ran
"patch -p1 < file"
and whoops - that wasn't so great after all :-(
Your plain text e-mail version applied just fine.
GUI: 0 CLI: 1
Patch works - my ia64 boots again. Thanks.
Tested-by: Tony Luck <tony.luck@intel.com>
-Tony
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH] memblock: Add limit checking to memblock_virt_alloc
2014-01-30 0:34 ` Andrew Morton
2014-01-30 0:46 ` Tony Luck
@ 2014-01-30 0:46 ` Tony Luck
1 sibling, 0 replies; 22+ messages in thread
From: Tony Luck @ 2014-01-30 0:46 UTC (permalink / raw)
To: Andrew Morton
Cc: Kevin Hilman, Russell King - ARM Linux, Linus Torvalds,
Linux Kernel Mailing List, Dave Hansen, Santosh Shilimkar,
David Vrabel, H. Peter Anvin, Olof Johansson, xen-devel,
Boris Ostrovsky, Yinghai Lu, Ingo Molnar
On Wed, Jan 29, 2014 at 4:34 PM, Andrew Morton
<akpm@linux-foundation.org> wrote:
> It applies for me. MIME getting you down?
Perhaps - Gmail's web client showed me a downward pointing arrow when I
moused over the attachment icon in Yinghai's e-mail. So I clicked it ... and
it looked like it downloaded a patch-like looking file. So I ran
"patch -p1 < file"
and whoops - that wasn't so great after all :-(
Your plain text e-mail version applied just fine.
GUI: 0 CLI: 1
Patch works - my ia64 boots again. Thanks.
Tested-by: Tony Luck <tony.luck@intel.com>
-Tony
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH] memblock: Add limit checking to memblock_virt_alloc
2014-01-29 1:50 ` Konrad Rzeszutek Wilk
2014-01-29 23:07 ` Tony Luck
@ 2014-01-29 23:07 ` Tony Luck
1 sibling, 0 replies; 22+ messages in thread
From: Tony Luck @ 2014-01-29 23:07 UTC (permalink / raw)
To: Konrad Rzeszutek Wilk
Cc: Kevin Hilman, Russell King - ARM Linux, Linus Torvalds,
Ingo Molnar, Linux Kernel Mailing List, Dave Hansen,
Santosh Shilimkar, david.vrabel, H. Peter Anvin, Olof Johansson,
xen-devel, Boris Ostrovsky, Yinghai Lu, Andrew Morton
Hmmph. ia64 is broken too. git bisect says:
commit ad6492b80f60a2139fa9bf8fd79b182fe5e3647c
Author: Yinghai Lu <yinghai@kernel.org>
Date: Mon Jan 27 17:06:49 2014 -0800
memblock, nobootmem: add memblock_virt_alloc_low()
is to blame. But this patch doesn't fix it. Still dies with:
PID hash table entries: 4096 (order: -1, 32768 bytes)
Sorting __ex_table...
kernel BUG at mm/bootmem.c:504!
swapper[0]: bugcheck! 0 [1]
Modules linked in:
CPU: 0 PID: 0 Comm: swapper Not tainted 3.13.0-bisect-09219-g5e345db #10
task: a000000101040000 ti: a000000101040f10 task.ti: a000000101040f10
psr : 00001010084a2018 ifs : 8000000000000797 ip :
[<a000000100eea530>] Not tainted (3.13.0-bisect-09219-g5e345db)
ip is at alloc_bootmem_bdata+0x230/0x790
unat: 0000000000000000 pfs : 0000000000000797 rsc : 0000000000000003
rnat: a000000100dff0ee bsps: 0000000000000000 pr : 96669601598a95a9
ldrs: 0000000000000000 ccv : 0000000000000000 fpsr: 0009804c8a70433f
csd : 0930ffff00063000 ssd : 0930ffff00063000
b0 : a000000100eea530 b6 : a0000001005f4040 b7 : a0000001005f3e00
f6 : 000000000000000000000 f7 : 1003e0000000000000000
f8 : 1003e0044b82fa09b5a53 f9 : 1003e0000000000001680
f10 : 1003e0000000000000008 f11 : 1003e00000000000002d0
r1 : a0000001017ce170 r2 : a00000010158e0a0 r3 : a0000001015ced80
r8 : 000000000000001f r9 : 0000000000000664 r10 : 0000000000000000
r11 : 0000000000000000 r12 : a00000010104fe20 r13 : a000000101040000
r14 : a00000010158e0a8 r15 : a00000010158e0a8 r16 : 0000000006640332
r17 : 0000000000000000 r18 : 0000000000007fff r19 : 0000000000000000
r20 : a000000101727e98 r21 : 0000000000000058 r22 : a000000101616c98
r23 : a000000101616c00 r24 : a000000101616c00 r25 : 00000000000003f8
r26 : a000000100e901a8 r27 : a000000100f59480 r28 : 0000000000000058
r29 : 0000000000000057 r30 : 00000000000016d0 r31 : 0000000000000030
Unable to handle kernel NULL pointer dereference (address 0000000000000000)
swapper[0]: Oops 11012296146944 [2]
-Tony
On Tue, Jan 28, 2014 at 5:50 PM, Konrad Rzeszutek Wilk
<konrad.wilk@oracle.com> wrote:
> On Tue, Jan 28, 2014 at 02:47:57PM -0800, Yinghai Lu wrote:
>> On Tue, Jan 28, 2014 at 2:08 PM, Dave Hansen <dave.hansen@intel.com> wrote:
>> > On 01/28/2014 02:04 PM, Yinghai Lu wrote:
>> >> In original bootmem wrapper for memblock, we have limit checking.
>> >>
>> >> Add it to memblock_virt_alloc, to address arm and x86 booting crash.
>> >>
>> >> Signed-off-by: Yinghai Lu <yinghai@kernel.org>
>> >
>> > Do you have a git tree or cumulative set of patches that you'd like us
>> > to all test? I'm happy to boot it on my system, I just want to make
>> > sure I've got the same set that you're testing.
>>
>> This one should only affect on arm and x86 the 32 bit kernel with more
>> then 4G RAM.
>
> Tested-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
>
> It fixes the issue I saw with Xen and 32-bit dom0 blowing up.
>
>>
>> thanks
>>
>> Yinghai
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH] memblock: Add limit checking to memblock_virt_alloc
2014-01-28 22:47 ` Yinghai Lu
2014-01-28 22:55 ` Dave Hansen
2014-01-29 1:50 ` Konrad Rzeszutek Wilk
@ 2014-01-29 1:50 ` Konrad Rzeszutek Wilk
2 siblings, 0 replies; 22+ messages in thread
From: Konrad Rzeszutek Wilk @ 2014-01-29 1:50 UTC (permalink / raw)
To: Yinghai Lu, xen-devel, boris.ostrovsky, david.vrabel
Cc: Kevin Hilman, Russell King - ARM Linux, Linux Kernel Mailing List,
Dave Hansen, Santosh Shilimkar, H. Peter Anvin, Olof Johansson,
Andrew Morton, Linus Torvalds, Ingo Molnar
On Tue, Jan 28, 2014 at 02:47:57PM -0800, Yinghai Lu wrote:
> On Tue, Jan 28, 2014 at 2:08 PM, Dave Hansen <dave.hansen@intel.com> wrote:
> > On 01/28/2014 02:04 PM, Yinghai Lu wrote:
> >> In original bootmem wrapper for memblock, we have limit checking.
> >>
> >> Add it to memblock_virt_alloc, to address arm and x86 booting crash.
> >>
> >> Signed-off-by: Yinghai Lu <yinghai@kernel.org>
> >
> > Do you have a git tree or cumulative set of patches that you'd like us
> > to all test? I'm happy to boot it on my system, I just want to make
> > sure I've got the same set that you're testing.
>
> This one should only affect on arm and x86 the 32 bit kernel with more
> then 4G RAM.
Tested-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
It fixes the issue I saw with Xen and 32-bit dom0 blowing up.
>
> thanks
>
> Yinghai
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH] memblock: Add limit checking to memblock_virt_alloc
2014-01-28 22:04 [PATCH] memblock: Add limit checking to memblock_virt_alloc Yinghai Lu
2014-01-28 22:08 ` Dave Hansen
@ 2014-01-28 22:08 ` Andrew Morton
2014-01-28 22:08 ` Olof Johansson
` (2 subsequent siblings)
4 siblings, 0 replies; 22+ messages in thread
From: Andrew Morton @ 2014-01-28 22:08 UTC (permalink / raw)
To: Yinghai Lu
Cc: Linus Torvalds, Ingo Molnar, H. Peter Anvin,
'Russell King - ARM Linux', Kevin Hilman, Olof Johansson,
Konrad Rzeszutek Wilk, Dave Hansen, Santosh Shilimkar,
linux-kernel, Kevin Hilman, Olof Johansson, Konrad Rzeszutek Wilk
On Tue, 28 Jan 2014 14:04:25 -0800 Yinghai Lu <yinghai@kernel.org> wrote:
> In original bootmem wrapper for memblock, we have limit checking.
>
> Add it to memblock_virt_alloc, to address arm and x86 booting crash.
>
> ...
>
> --- linux-2.6.orig/mm/memblock.c
> +++ linux-2.6/mm/memblock.c
> @@ -1077,6 +1077,9 @@ static void * __init memblock_virt_alloc
> if (!align)
> align = SMP_CACHE_BYTES;
>
> + if (max_addr > memblock.current_limit)
> + max_addr = memblock.current_limit;
> +
> again:
> alloc = memblock_find_in_range_node(size, align, min_addr, max_addr,
> nid);
Thanks.
Kevin, Olof and Konrad (at least) have been hitting this. It would be
great to get some tested-by's, please?
^ permalink raw reply [flat|nested] 22+ messages in thread* Re: [PATCH] memblock: Add limit checking to memblock_virt_alloc
2014-01-28 22:04 [PATCH] memblock: Add limit checking to memblock_virt_alloc Yinghai Lu
2014-01-28 22:08 ` Dave Hansen
2014-01-28 22:08 ` Andrew Morton
@ 2014-01-28 22:08 ` Olof Johansson
2014-01-29 1:25 ` Kevin Hilman
2014-01-30 4:46 ` Sachin Kamat
4 siblings, 0 replies; 22+ messages in thread
From: Olof Johansson @ 2014-01-28 22:08 UTC (permalink / raw)
To: Yinghai Lu
Cc: Andrew Morton, Linus Torvalds, Ingo Molnar, H. Peter Anvin,
Russell King - ARM Linux, Kevin Hilman, Konrad Rzeszutek Wilk,
Dave Hansen, Santosh Shilimkar, linux-kernel@vger.kernel.org
On Tue, Jan 28, 2014 at 2:04 PM, Yinghai Lu <yinghai@kernel.org> wrote:
> In original bootmem wrapper for memblock, we have limit checking.
>
> Add it to memblock_virt_alloc, to address arm and x86 booting crash.
>
> Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Tested-by: Olof Johansson <olof@lixom.net>
Verified to resolve the crashes on boot on ARM.
-Olof
^ permalink raw reply [flat|nested] 22+ messages in thread
* Re: [PATCH] memblock: Add limit checking to memblock_virt_alloc
2014-01-28 22:04 [PATCH] memblock: Add limit checking to memblock_virt_alloc Yinghai Lu
` (2 preceding siblings ...)
2014-01-28 22:08 ` Olof Johansson
@ 2014-01-29 1:25 ` Kevin Hilman
2014-01-30 4:46 ` Sachin Kamat
4 siblings, 0 replies; 22+ messages in thread
From: Kevin Hilman @ 2014-01-29 1:25 UTC (permalink / raw)
To: Yinghai Lu
Cc: Andrew Morton, Linus Torvalds, Ingo Molnar, H. Peter Anvin,
Russell King - ARM Linux, Olof Johansson, Konrad Rzeszutek Wilk,
Dave Hansen, Santosh Shilimkar, LKML
On Tue, Jan 28, 2014 at 2:04 PM, Yinghai Lu <yinghai@kernel.org> wrote:
> In original bootmem wrapper for memblock, we have limit checking.
>
> Add it to memblock_virt_alloc, to address arm and x86 booting crash.
>
> Signed-off-by: Yinghai Lu <yinghai@kernel.org>
>
> ---
> mm/memblock.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> Index: linux-2.6/mm/memblock.c
> ===================================================================
> --- linux-2.6.orig/mm/memblock.c
> +++ linux-2.6/mm/memblock.c
> @@ -1077,6 +1077,9 @@ static void * __init memblock_virt_alloc
> if (!align)
> align = SMP_CACHE_BYTES;
>
> + if (max_addr > memblock.current_limit)
> + max_addr = memblock.current_limit;
> +
> again:
> alloc = memblock_find_in_range_node(size, align, min_addr, max_addr,
> nid);
Tested-by: Kevin Hilman <khilman@linaro.org>
Verified various ARM boots to be passing again.
Kevin
^ permalink raw reply [flat|nested] 22+ messages in thread* Re: [PATCH] memblock: Add limit checking to memblock_virt_alloc
2014-01-28 22:04 [PATCH] memblock: Add limit checking to memblock_virt_alloc Yinghai Lu
` (3 preceding siblings ...)
2014-01-29 1:25 ` Kevin Hilman
@ 2014-01-30 4:46 ` Sachin Kamat
4 siblings, 0 replies; 22+ messages in thread
From: Sachin Kamat @ 2014-01-30 4:46 UTC (permalink / raw)
To: Yinghai Lu
Cc: Andrew Morton, Linus Torvalds, Ingo Molnar, H. Peter Anvin,
Russell King - ARM Linux, Kevin Hilman, Olof Johansson,
Konrad Rzeszutek Wilk, Dave Hansen, Santosh Shilimkar, LKML
On 29 January 2014 03:34, Yinghai Lu <yinghai@kernel.org> wrote:
> In original bootmem wrapper for memblock, we have limit checking.
>
> Add it to memblock_virt_alloc, to address arm and x86 booting crash.
>
> Signed-off-by: Yinghai Lu <yinghai@kernel.org>
>
> ---
Confirmed that this patch fixes the boot crash issue on Exynos (ARM
based) boards.
Tested-by: Sachin Kamat <sachin.kamat@linaro.org>
--
With warm regards,
Sachin
^ permalink raw reply [flat|nested] 22+ messages in thread