Subject: Re: linux-next: Tree for Oct 15

From: Stephen Rothwell <[email-masked]>
Date: Tue, 16 Oct 2018 13:02:16 +1100

Hi all,

On Mon, 15 Oct 2018 15:22:13 -0700 Guenter Roeck <[email-masked]> wrote:
>
> On Tue, Oct 16, 2018 at 07:33:59AM +1100, Stephen Rothwell wrote:
> > 
> > On Mon, 15 Oct 2018 12:39:14 -0700 Guenter Roeck <[email-masked]> wrote:  
> > >
> > > On Mon, Oct 15, 2018 at 07:25:46PM +1100, Stephen Rothwell wrote:  
> > > > Hi all,
> > > > 
> > > > Changes since 20181012:
> > > > 
> > > > My qemu boots of a powerpc pseries_le_defconfig kernel failed today.
> > > >     
> > > 
> > > Bisect log:
> > >   
> 
> Trying again. Not very useful since some of the steps fail with compile errors.
> The problem does seem to be related to the bootmem changes, though.

OK, I managed to do the bisect:

fe3d2a45e8079fdd7d4da1ff07f4b40bc3cb499f is the first bad commit
commit fe3d2a45e8079fdd7d4da1ff07f4b40bc3cb499f
Author: Mike Rapoport <[email-masked]>
Date:   Sat Oct 13 14:05:51 2018 +1100

    memblock: stop using implicit alignment to SMP_CACHE_BYTES
    
    When a memblock allocation APIs are called with align = 0, the alignment
    is implicitly set to SMP_CACHE_BYTES.
    
    Implicit alignment is done deep in the memblock allocator and it can
    come as a surprise.  Not that such an alignment would be wrong even
    when used incorrectly but it is better to be explicit for the sake of
    clarity and the prinicple of the least surprise.
    
    Replace all such uses of memblock APIs with the 'align' parameter
    explicitly set to SMP_CACHE_BYTES and stop implicit alignment assignment
    in the memblock internal allocation functions.
    
    For the case when memblock APIs are used via helper functions, e.g.  like
    iommu_arena_new_node() in Alpha, the helper functions were detected with
    Coccinelle's help and then manually examined and updated where
    appropriate.
    
    The direct memblock APIs users were updated using the semantic patch below:
    
    @@
    expression size, min_addr, max_addr, nid;
    @@
    (
    |
    - memblock_alloc_try_nid_raw(size, 0, min_addr, max_addr, nid)
    + memblock_alloc_try_nid_raw(size, SMP_CACHE_BYTES, min_addr, max_addr,
    nid)
    |
    - memblock_alloc_try_nid_nopanic(size, 0, min_addr, max_addr, nid)
    + memblock_alloc_try_nid_nopanic(size, SMP_CACHE_BYTES, min_addr, max_addr,
    nid)
    |
    - memblock_alloc_try_nid(size, 0, min_addr, max_addr, nid)
    + memblock_alloc_try_nid(size, SMP_CACHE_BYTES, min_addr, max_addr, nid)
    |
    - memblock_alloc(size, 0)
    + memblock_alloc(size, SMP_CACHE_BYTES)
    |
    - memblock_alloc_raw(size, 0)
    + memblock_alloc_raw(size, SMP_CACHE_BYTES)
    |
    - memblock_alloc_from(size, 0, min_addr)
    + memblock_alloc_from(size, SMP_CACHE_BYTES, min_addr)
    |
    - memblock_alloc_nopanic(size, 0)
    + memblock_alloc_nopanic(size, SMP_CACHE_BYTES)
    |
    - memblock_alloc_low(size, 0)
    + memblock_alloc_low(size, SMP_CACHE_BYTES)
    |
    - memblock_alloc_low_nopanic(size, 0)
    + memblock_alloc_low_nopanic(size, SMP_CACHE_BYTES)
    |
    - memblock_alloc_from_nopanic(size, 0, min_addr)
    + memblock_alloc_from_nopanic(size, SMP_CACHE_BYTES, min_addr)
    |
    - memblock_alloc_node(size, 0, nid)
    + memblock_alloc_node(size, SMP_CACHE_BYTES, nid)
    )
    
    [[email-masked]: changelog update]
    Link: http://lkml.kernel.org/r/[email-masked]
    Signed-off-by: Mike Rapoport <[email-masked]>
    Suggested-by: Michal Hocko <[email-masked]>
    Acked-by: Paul Burton <[email-masked]>    [MIPS]
    Acked-by: Michael Ellerman <[email-masked]> [powerpc]
    Acked-by: Michal Hocko <[email-masked]>
    Cc: Catalin Marinas <[email-masked]>
    Cc: Chris Zankel <[email-masked]>
    Cc: Geert Uytterhoeven <[email-masked]>
    Cc: Guan Xuetao <[email-masked]>
    Cc: Ingo Molnar <[email-masked]>
    Cc: Matt Turner <[email-masked]>
    Cc: Michal Simek <[email-masked]>
    Cc: Richard Weinberger <[email-masked]>
    Cc: Russell King <[email-masked]>
    Cc: Thomas Gleixner <[email-masked]>
    Cc: Tony Luck <[email-masked]>
    Signed-off-by: Andrew Morton <[email-masked]>
    Signed-off-by: Stephen Rothwell <[email-masked]>

:040000 040000 9fdad987cc69ffad8de2d0d621facc66b096aac1 c9959a9199e01f282d1d291a6280b203a8561e7a M	arch
:040000 040000 de303e4a0ad2b500de3fca2f65c8943c12c0b077 1581aed934cfb96b2706df9bfa7746edfadffea6 M	drivers
:040000 040000 f9179d8189f08e3575031a76181a64eedd148db5 293bc953dcfc2b718f5c7cdd58722284f4393dec M	include
:040000 040000 3019b5f917a20420537ac5cf4dc90b3c7f1aa56f 1b88f0791341d17abd259d7a8d2e0cc55147d8f6 M	init
:040000 040000 8819d52ce4e6463fc95a2e841baeeddbc9fb8c52 dc167f38bd8c4a80e0ac84ecc981e95b98703393 M	kernel
:040000 040000 30c64583e66fc20181d7ce2b6ced9d7e060e1042 4e57b31864cef4e921bbd73150f63637a819e3c4 M	lib
:040000 040000 1b341ab0dd034f0fef37c234a771419924e0ecc9 9c489ba60978950733bf678191833fdb9689bdab M	mm

# bad: [ca0591d03a2d373e0019ad357fbbee69c8272381] Add linux-next specific files for 20181015
# good: [3a27203102ebfa67bd0bced05b1def499bb59db2] Merge tag 'libnvdimm-fixes-4.19-rc8' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm
git bisect start 'HEAD' 'remotes/origin/stable'
# good: [5a09f4fbf98e45de8341bc8176e62afaac8405f6] Merge remote-tracking branch 'crypto/master'
git bisect good 5a09f4fbf98e45de8341bc8176e62afaac8405f6
# good: [a54eefdf4d208f6904da9e836ff32d7dde0c9516] Merge remote-tracking branch 'tip/auto-latest'
git bisect good a54eefdf4d208f6904da9e836ff32d7dde0c9516
# good: [d71e0d25be750d02a3d04500aeb151bb94465811] Merge remote-tracking branch 'staging/staging-next'
git bisect good d71e0d25be750d02a3d04500aeb151bb94465811
# good: [7961c8ea9d81f927a78e30bb7c194310ed6b7c1d] Merge remote-tracking branch 'pinctrl/for-next'
git bisect good 7961c8ea9d81f927a78e30bb7c194310ed6b7c1d
# good: [c3d392e6aae57d54fdc683f7432c3e248602bebb] Merge remote-tracking branch 'xarray/xarray'
git bisect good c3d392e6aae57d54fdc683f7432c3e248602bebb
# good: [880c1034475c873963d6250eb95ebbbf5604a281] userfaultfd: selftest: cleanup help messages
git bisect good 880c1034475c873963d6250eb95ebbbf5604a281
# good: [9f1fa0ab60f7b09d335bbaf33db9116241059708] reiserfs: propagate errors from fill_with_dentries() properly
git bisect good 9f1fa0ab60f7b09d335bbaf33db9116241059708
# good: [596046ffd571f32fa3d3e7ffdf7861b71a258552] memblock: replace alloc_bootmem_low with memblock_alloc_low (2)
git bisect good 596046ffd571f32fa3d3e7ffdf7861b71a258552
# good: [979961b3058df1a6d24ab423dd6fa6f20982f591] memblock: replace BOOTMEM_ALLOC_* with MEMBLOCK variants
git bisect good 979961b3058df1a6d24ab423dd6fa6f20982f591
# bad: [8fab7180e6cd3126f7be81e8e33c8152b99f046b] mm/memory_hotplug: make add_memory() take the device_hotplug_lock
git bisect bad 8fab7180e6cd3126f7be81e8e33c8152b99f046b
# bad: [fe3d2a45e8079fdd7d4da1ff07f4b40bc3cb499f] memblock: stop using implicit alignment to SMP_CACHE_BYTES
git bisect bad fe3d2a45e8079fdd7d4da1ff07f4b40bc3cb499f
# good: [2b130e2ae5fdc482305c6d23b05a532addda7c40] powerpc: fix up for removal of linux/bootmem.h
git bisect good 2b130e2ae5fdc482305c6d23b05a532addda7c40
# good: [699f0940861c958f2397c727d80fe324b6d88b06] docs/boot-time-mm: remove bootmem documentation
git bisect good 699f0940861c958f2397c727d80fe324b6d88b06
# first bad commit: [fe3d2a45e8079fdd7d4da1ff07f4b40bc3cb499f] memblock: stop using implicit alignment to SMP_CACHE_BYTES

Reverting fe3d2a45e8079fdd7d4da1ff07f4b40bc3cb499f (and the following 2
commits) produces a kernel that boots.
-- 
Cheers,
Stephen Rothwell