Messages in this thread | | | Date | Thu, 3 Aug 2023 10:02:30 +0200 | Subject | Re: [PATCH] parisc/mm: preallocate fixmap page tables at init | From | Helge Deller <> |
| |
On 8/3/23 08:24, Mike Rapoport wrote: > From: "Mike Rapoport (IBM)" <rppt@kernel.org> > > Christoph Biedl reported early OOM on recent kernels: > > swapper: page allocation failure: order:0, mode:0x100(__GFP_ZERO), > nodemask=(null) > CPU: 0 PID: 0 Comm: swapper Not tainted 6.3.0-rc4+ #16 > Hardware name: 9000/785/C3600 > Backtrace: > [<10408594>] show_stack+0x48/0x5c > [<10e152d8>] dump_stack_lvl+0x48/0x64 > [<10e15318>] dump_stack+0x24/0x34 > [<105cf7f8>] warn_alloc+0x10c/0x1c8 > [<105d068c>] __alloc_pages+0xbbc/0xcf8 > [<105d0e4c>] __get_free_pages+0x28/0x78 > [<105ad10c>] __pte_alloc_kernel+0x30/0x98 > [<10406934>] set_fixmap+0xec/0xf4 > [<10411ad4>] patch_map.constprop.0+0xa8/0xdc > [<10411bb0>] __patch_text_multiple+0xa8/0x208 > [<10411d78>] patch_text+0x30/0x48 > [<1041246c>] arch_jump_label_transform+0x90/0xcc > [<1056f734>] jump_label_update+0xd4/0x184 > [<1056fc9c>] static_key_enable_cpuslocked+0xc0/0x110 > [<1056fd08>] static_key_enable+0x1c/0x2c > [<1011362c>] init_mem_debugging_and_hardening+0xdc/0xf8 > [<1010141c>] start_kernel+0x5f0/0xa98 > [<10105da8>] start_parisc+0xb8/0xe4 > ... > Kernel Fault: Code=15 (Data TLB miss fault) at addr 0f7fe3c0 > CPU: 0 PID: 0 Comm: swapper Not tainted 6.3.0-rc4+ #16 > Hardware name: 9000/785/C3600 > > This happens because patching static key code temporarily maps it via > fixmap and if it happens before page allocator is initialized set_fixmap() > cannot allocate memory using pte_alloc_kernel(). > > Make sure that fixmap page tables are preallocated early so that > pte_offset_kernel() in set_fixmap() never resorts to pte allocation. > > Signed-off-by: Mike Rapoport (IBM) <rppt@kernel.org>
Now queued up in parisc for-next tree.
Thanks to Christoph for bisecting and Mike for coming up with this patch! Helge
| |