* Guenter Roeck <linux@xxxxxxxxxxxx> [220428 12:31]: > On Tue, Apr 26, 2022 at 03:06:52PM +0000, Liam Howlett wrote: > > From: "Matthew Wilcox (Oracle)" <willy@xxxxxxxxxxxxx> > > > > Use the maple tree or VMA iterator instead. This is faster and will allow > > us to shrink the VMA. > > > > Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> > > Signed-off-by: Liam R. Howlett <Liam.Howlett@xxxxxxxxxx> > > Acked-by: Vlastimil Babka <vbabka@xxxxxxx> > > This patch also results in boot failures for m68k:mcf5208evb qemu emulations. > Backtrace and bisect log attached. Thanks, I have tried my branch and was able to get buildroot to boot and log in. At least maple tree worked on this platform at one point. > > Guenter > > --- > # bad: [bdc61aad77faf67187525028f1f355eff3849f22] Add linux-next specific files for 20220428 > # good: [af2d861d4cd2a4da5137f795ee3509e6f944a25b] Linux 5.18-rc4 > git bisect start 'HEAD' 'v5.18-rc4' > # good: [a6ffa4aa7e81a54632f3370f4c93fce603160192] Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/cryptodev-2.6.git > git bisect good a6ffa4aa7e81a54632f3370f4c93fce603160192 > # good: [cd63f17e3bb63006f9f88bf7f5947b8e1601bcd9] Merge branch 'edac-for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras.git > git bisect good cd63f17e3bb63006f9f88bf7f5947b8e1601bcd9 > # good: [cee7bbed3e5cc089b5c364ac8ad4a186c2a28bb6] Merge branch 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/vkoul/dmaengine.git > git bisect good cee7bbed3e5cc089b5c364ac8ad4a186c2a28bb6 > # good: [d5a23156ea99f10b584221893a6a7d6f6554cde8] Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab.git > git bisect good d5a23156ea99f10b584221893a6a7d6f6554cde8 > # good: [2f1fde90d983bc404503100c9c4bbbf1e191bcf4] selftests: cgroup: fix alloc_anon_noexit() instantly freeing memory > git bisect good 2f1fde90d983bc404503100c9c4bbbf1e191bcf4 > # good: [fca1db6ff251278c532231552e840c7dc36dfa76] Merge branch 'bitmap-for-next' of https://github.com/norov/linux.git > git bisect good fca1db6ff251278c532231552e840c7dc36dfa76 > # good: [40b39116fe8e6fb66e3166ea40138eec506dfd91] perf: use VMA iterator > git bisect good 40b39116fe8e6fb66e3166ea40138eec506dfd91 > # bad: [33ef257872566922df2b6bcfdb5330b2388aef53] Docs/{ABI,admin-guide}/damon: update for fixed virtual address ranges monitoring > git bisect bad 33ef257872566922df2b6bcfdb5330b2388aef53 > # good: [2d8640f244c1ea6c40acde911d339dabc2ac765d] mm/oom_kill: use maple tree iterators instead of vma linked list > git bisect good 2d8640f244c1ea6c40acde911d339dabc2ac765d > # bad: [49d281fa016f2906346f1707e5059b6f7674a948] mm/mmap.c: pass in mapping to __vma_link_file() > git bisect bad 49d281fa016f2906346f1707e5059b6f7674a948 > # bad: [487c2c6d922605aebe6f470e1a458eb1425548db] nommu: remove uses of VMA linked list > git bisect bad 487c2c6d922605aebe6f470e1a458eb1425548db > # good: [dc4a1ab575a32e454be953f7b1b0222dcd3d47fa] mm/swapfile: use vma iterator instead of vma linked list > git bisect good dc4a1ab575a32e454be953f7b1b0222dcd3d47fa > # good: [7fffbdd08665ddeeb38768309269fa5b32388c3d] i915: use the VMA iterator > git bisect good 7fffbdd08665ddeeb38768309269fa5b32388c3d > # first bad commit: [487c2c6d922605aebe6f470e1a458eb1425548db] nommu: remove uses of VMA linked list > > --- > > ... > page allocation failure: order:7, mode:0xcc0(GFP_KERNEL), nodemask=(null) > CPU: 0 PID: 62 Comm: echo Not tainted 5.18.0-rc4-next-20220428 #1 > Stack from 405d9d14: > 405d9d14 40335f43 40335f43 00000000 00000000 402da566 40335f43 400926f6 > 00000cc0 00000000 00000000 00000000 405d8000 40906ee0 405d9d6c 40335402 > 405d9d4c 405d9df8 40093158 00000cc0 00000000 40335402 00000007 00000007 > 000d8000 00000cc0 00000001 00000077 0000006c 00000000 40906ee0 409049a0 > 00000000 00000000 00000001 00000000 00000400 41cdad88 00000000 001008c0 > 00000000 409830d2 405d4037 283a0000 00004037 283a0000 00000000 00010000 > Call Trace: [<402da566>] dump_stack+0xc/0x10 > [<400926f6>] warn_alloc+0xd0/0x1ce > [<40093158>] __alloc_pages+0x8c6/0xb7e > [<40046f82>] check_preempt_wakeup+0xce/0x178 > [<400965da>] kmem_cache_alloc+0x22/0x17e > [<40093ca2>] alloc_pages_exact+0x86/0x14e > [<4008ddca>] do_mmap+0x3d8/0xa8a > [<40085ece>] vm_mmap_pgoff+0x5c/0x84 > [<400a486c>] begin_new_exec+0x45e/0x852 > [<400f1ea0>] load_flat_binary+0x5e8/0x878 > [<4009bf94>] kernel_read+0x0/0x98 > [<402d4308>] memset+0x0/0x70 > [<4009e842>] fput+0x0/0x18 > [<400a3638>] bprm_execve+0x188/0x3bc > [<400a3ab6>] copy_string_kernel+0x0/0x146 > [<400a30ca>] copy_strings+0x0/0x1b4 > [<400a3dce>] do_execveat_common+0x14c/0x220 > [<403768f4>] do_name+0x27a/0x296 > [<403765ec>] do_header+0x1c6/0x21c > [<403768f4>] do_name+0x27a/0x296 > [<400a4c86>] sys_execve+0x26/0x30 > [<403768f4>] do_name+0x27a/0x296 > [<403765ec>] do_header+0x1c6/0x21c > [<400a4c60>] sys_execve+0x0/0x30 > [<40022154>] system_call+0x48/0x94 > [<403768f4>] do_name+0x27a/0x296 > [<403765ec>] do_header+0x1c6/0x21c > Mem-Info: > active_anon:0 inactive_anon:0 isolated_anon:0 > active_file:0 inactive_file:0 isolated_file:0 > unevictable:606 dirty:0 writeback:0 > slab_reclaimable:62 slab_unreclaimable:152 > mapped:0 shmem:0 pagetables:0 bounce:0 > kernel_misc_reclaimable:0 > free:1071 free_pcp:0 free_cma:0 > Node 0 active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:4848kB isolated(anon):0kB isolated(file):0kB mapped:0kB dirty:0kB writeback:0kB shmem:0kB writeback_tmp:0kB kernel_stack:216kB pagetables:0kB all_unreclaimable? no > DMA free:8568kB boost:0kB min:664kB low:824kB high:984kB reserved_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:4848kB writepending:0kB present:32768kB managed:28960kB mlocked:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB > lowmem_reserve[]: 0 0 0 > DMA: 1*8kB (U) 1*16kB (U) 9*32kB (U) 7*64kB (U) 21*128kB (U) 8*256kB (U) 6*512kB (U) 0*1024kB 0*2048kB 0*4096kB 0*8192kB = 8568kB > 613 total pagecache pages > 4096 pages RAM > 0 pages HighMem/MovableOnly > 476 pages reserved > nommu: Allocation of length 884736 from process 62 (echo) failed > active_anon:0 inactive_anon:0 isolated_anon:0 > active_file:0 inactive_file:0 isolated_file:0 > unevictable:606 dirty:0 writeback:0 > slab_reclaimable:62 slab_unreclaimable:152 > mapped:0 shmem:0 pagetables:0 bounce:0 > kernel_misc_reclaimable:0 > free:1071 free_pcp:0 free_cma:0 > Node 0 active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:4848kB isolated(anon):0kB isolated(file):0kB mapped:0kB dirty:0kB writeback:0kB shmem:0kB writeback_tmp:0kB kernel_stack:216kB pagetables:0kB all_unreclaimable? no > DMA free:8568kB boost:0kB min:664kB low:824kB high:984kB reserved_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:4848kB writepending:0kB present:32768kB managed:28960kB mlocked:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB > lowmem_reserve[]: 0 0 0 > DMA: 1*8kB (U) 1*16kB (U) 9*32kB (U) 7*64kB (U) 21*128kB (U) 8*256kB (U) 6*512kB (U) 0*1024kB 0*2048kB 0*4096kB 0*8192kB = 8568kB > 613 total pagecache pages > binfmt_flat: Unable to allocate RAM for process text/data, errno -12 > nommu: Allocation of length 884736 from process 63 (echo) failed > active_anon:0 inactive_anon:0 isolated_anon:0 > active_file:0 inactive_file:0 isolated_file:0 > unevictable:606 dirty:0 writeback:0 > slab_reclaimable:62 slab_unreclaimable:153 > mapped:0 shmem:0 pagetables:0 bounce:0 > kernel_misc_reclaimable:0 > free:1409 free_pcp:0 free_cma:0 > Node 0 active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:4848kB isolated(anon):0kB isolated(file):0kB mapped:0kB dirty:0kB writeback:0kB shmem:0kB writeback_tmp:0kB kernel_stack:176kB pagetables:0kB all_unreclaimable? no > DMA free:11272kB boost:0kB min:664kB low:824kB high:984kB reserved_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:4848kB writepending:0kB present:32768kB managed:28960kB mlocked:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB > lowmem_reserve[]: 0 0 0 > DMA: 5*8kB (U) 6*16kB (U) 12*32kB (U) 10*64kB (U) 21*128kB (U) 11*256kB (U) 9*512kB (U) 0*1024kB 0*2048kB 0*4096kB 0*8192kB = 11272kB > 614 total pagecache pages > binfmt_flat: Unable to allocate RAM for process text/data, errno -12 > nommu: Allocation of length 884736 from process 64 ([) failed > active_anon:0 inactive_anon:0 isolated_anon:0 > active_file:0 inactive_file:0 isolated_file:0 > unevictable:606 dirty:0 writeback:0 > slab_reclaimable:62 slab_unreclaimable:153 > mapped:0 shmem:0 pagetables:0 bounce:0 > kernel_misc_reclaimable:0 > free:1409 free_pcp:0 free_cma:0 > Node 0 active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:4848kB isolated(anon):0kB isolated(file):0kB mapped:0kB dirty:0kB writeback:0kB shmem:0kB writeback_tmp:0kB kernel_stack:176kB pagetables:0kB all_unreclaimable? no > DMA free:11272kB boost:0kB min:664kB low:824kB high:984kB reserved_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:4848kB writepending:0kB present:32768kB managed:28960kB mlocked:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB > lowmem_reserve[]: 0 0 0 > DMA: 5*8kB (U) 6*16kB (U) 12*32kB (U) 10*64kB (U) 21*128kB (U) 11*256kB (U) 9*512kB (U) 0*1024kB 0*2048kB 0*4096kB 0*8192kB = 11272kB > 614 total pagecache pages > binfmt_flat: Unable to allocate RAM for process text/data, errno -12 > nommu: Allocation of length 884736 from process 65 ([) failed > active_anon:0 inactive_anon:0 isolated_anon:0 > active_file:0 inactive_file:0 isolated_file:0 > unevictable:606 dirty:0 writeback:0 > slab_reclaimable:62 slab_unreclaimable:153 > mapped:0 shmem:0 pagetables:0 bounce:0 > kernel_misc_reclaimable:0 > free:1415 free_pcp:0 free_cma:0 > Node 0 active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:4848kB isolated(anon):0kB isolated(file):0kB mapped:0kB dirty:0kB writeback:0kB shmem:0kB writeback_tmp:0kB kernel_stack:168kB pagetables:0kB all_unreclaimable? no > DMA free:11320kB boost:0kB min:664kB low:824kB high:984kB reserved_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:4848kB writepending:0kB present:32768kB managed:28960kB mlocked:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB > lowmem_reserve[]: 0 0 0 > DMA: 11*8kB (U) 6*16kB (U) 12*32kB (U) 10*64kB (U) 21*128kB (U) 11*256kB (U) 9*512kB (U) 0*1024kB 0*2048kB 0*4096kB 0*8192kB = 11320kB > 614 total pagecache pages > binfmt_flat: Unable to allocate RAM for process text/data, errno -12 > nommu: Allocation of length 884736 from process 66 (S20urandom) failed > active_anon:0 inactive_anon:0 isolated_anon:0 > active_file:0 inactive_file:0 isolated_file:0 > unevictable:606 dirty:0 writeback:0 > slab_reclaimable:62 slab_unreclaimable:153 > mapped:0 shmem:0 pagetables:0 bounce:0 > kernel_misc_reclaimable:0 > free:1415 free_pcp:0 free_cma:0 > Node 0 active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:4848kB isolated(anon):0kB isolated(file):0kB mapped:0kB dirty:0kB writeback:0kB shmem:0kB writeback_tmp:0kB kernel_stack:168kB pagetables:0kB all_unreclaimable? no > DMA free:11320kB boost:0kB min:664kB low:824kB high:984kB reserved_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:4848kB writepending:0kB present:32768kB managed:28960kB mlocked:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB > lowmem_reserve[]: 0 0 0 > DMA: 11*8kB (U) 6*16kB (U) 12*32kB (U) 10*64kB (U) 21*128kB (U) 11*256kB (U) 9*512kB (U) 0*1024kB 0*2048kB 0*4096kB 0*8192kB = 11320kB > 614 total pagecache pages > binfmt_flat: Unable to allocate RAM for process text/data, errno -12 > nommu: Allocation of length 884736 from process 67 ([) failed > active_anon:0 inactive_anon:0 isolated_anon:0 > active_file:0 inactive_file:0 isolated_file:0 > unevictable:606 dirty:0 writeback:0 > slab_reclaimable:62 slab_unreclaimable:153 > mapped:0 shmem:0 pagetables:0 bounce:0 > kernel_misc_reclaimable:0 > free:1415 free_pcp:0 free_cma:0 > Node 0 active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:4848kB isolated(anon):0kB isolated(file):0kB mapped:0kB dirty:0kB writeback:0kB shmem:0kB writeback_tmp:0kB kernel_stack:168kB pagetables:0kB all_unreclaimable? no > DMA free:11320kB boost:0kB min:664kB low:824kB high:984kB reserved_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:4848kB writepending:0kB present:32768kB managed:28960kB mlocked:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB > lowmem_reserve[]: 0 0 0 > DMA: 11*8kB (U) 6*16kB (U) 12*32kB (U) 10*64kB (U) 21*128kB (U) 11*256kB (U) 9*512kB (U) 0*1024kB 0*2048kB 0*4096kB 0*8192kB = 11320kB > 614 total pagecache pages > binfmt_flat: Unable to allocate RAM for process text/data, errno -12 > nommu: Allocation of length 884736 from process 68 (S40network) failed > active_anon:0 inactive_anon:0 isolated_anon:0 > active_file:0 inactive_file:0 isolated_file:0 > unevictable:606 dirty:0 writeback:0 > slab_reclaimable:62 slab_unreclaimable:153 > mapped:0 shmem:0 pagetables:0 bounce:0 > kernel_misc_reclaimable:0 > free:1415 free_pcp:0 free_cma:0 > Node 0 active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:4848kB isolated(anon):0kB isolated(file):0kB mapped:0kB dirty:0kB writeback:0kB shmem:0kB writeback_tmp:0kB kernel_stack:168kB pagetables:0kB all_unreclaimable? no > DMA free:11320kB boost:0kB min:664kB low:824kB high:984kB reserved_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:4848kB writepending:0kB present:32768kB managed:28960kB mlocked:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB > lowmem_reserve[]: 0 0 0 > DMA: 11*8kB (U) 6*16kB (U) 12*32kB (U) 10*64kB (U) 21*128kB (U) 11*256kB (U) 9*512kB (U) 0*1024kB 0*2048kB 0*4096kB 0*8192kB = 11320kB > 614 total pagecache pages > binfmt_flat: Unable to allocate RAM for process text/data, errno -12 > nommu: Allocation of length 884736 from process 69 ([) failed > active_anon:0 inactive_anon:0 isolated_anon:0 > active_file:0 inactive_file:0 isolated_file:0 > unevictable:606 dirty:0 writeback:0 > slab_reclaimable:62 slab_unreclaimable:153 > mapped:0 shmem:0 pagetables:0 bounce:0 > kernel_misc_reclaimable:0 > free:1415 free_pcp:0 free_cma:0 > Node 0 active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:4848kB isolated(anon):0kB isolated(file):0kB mapped:0kB dirty:0kB writeback:0kB shmem:0kB writeback_tmp:0kB kernel_stack:168kB pagetables:0kB all_unreclaimable? no > DMA free:11320kB boost:0kB min:664kB low:824kB high:984kB reserved_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:4848kB writepending:0kB present:32768kB managed:28960kB mlocked:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB > lowmem_reserve[]: 0 0 0 > DMA: 11*8kB (U) 6*16kB (U) 12*32kB (U) 10*64kB (U) 21*128kB (U) 11*256kB (U) 9*512kB (U) 0*1024kB 0*2048kB 0*4096kB 0*8192kB = 11320kB > 614 total pagecache pages > binfmt_flat: Unable to allocate RAM for process text/data, errno -12 > nommu: Allocation of length 884736 from process 70 (S55runtest) failed > active_anon:0 inactive_anon:0 isolated_anon:0 > active_file:0 inactive_file:0 isolated_file:0 > unevictable:606 dirty:0 writeback:0 > slab_reclaimable:62 slab_unreclaimable:153 > mapped:0 shmem:0 pagetables:0 bounce:0 > kernel_misc_reclaimable:0 > free:1415 free_pcp:0 free_cma:0 > Node 0 active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:4848kB isolated(anon):0kB isolated(file):0kB mapped:0kB dirty:0kB writeback:0kB shmem:0kB writeback_tmp:0kB kernel_stack:168kB pagetables:0kB all_unreclaimable? no > DMA free:11320kB boost:0kB min:664kB low:824kB high:984kB reserved_highatomic:0KB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:4848kB writepending:0kB present:32768kB managed:28960kB mlocked:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB > lowmem_reserve[]: 0 0 0 > DMA: 11*8kB (U) 6*16kB (U) 12*32kB (U) 10*64kB (U) 21*128kB (U) 11*256kB (U) 9*512kB (U) 0*1024kB 0*2048kB 0*4096kB 0*8192kB = 11320kB > 614 total pagecache pages > binfmt_flat: Unable to allocate RAM for process text/data, errno -12