[PATCH] arm64/mm: Drop redundant BUG_ON(!pgtable_alloc)

Nathan Chancellor nathan at kernel.org
Sun Nov 20 08:16:37 PST 2022


Hi Anshuman,

On Fri, Nov 18, 2022 at 11:01:02AM +0530, Anshuman Khandual wrote:
> __create_pgd_mapping_locked() expects a page allocator used while mapping a
> virtual range. This page allocator function propagates down the call chain,
> while building intermediate levels in the page table. Passed page allocator
> is a necessary ingredient required to build the page table but its presence
> can be asserted just once in the very beginning rather than in all the down
> stream functions. This consolidates BUG_ON(!pgtable_alloc) checks just in a
> single place i.e __create_pgd_mapping_locked().
> 
> Cc: Catalin Marinas <catalin.marinas at arm.com>
> Cc: Will Deacon <will at kernel.org>
> Cc: Mark Rutland <mark.rutland at arm.com>
> Cc: Andrew Morton <akpm at linux-foundation.org>
> Cc: linux-arm-kernel at lists.infradead.org
> Cc: linux-kernel at vger.kernel.org
> Signed-off-by: Anshuman Khandual <anshuman.khandual at arm.com>
> ---
> This applies on v6.1-rc5
> 
>  arch/arm64/mm/mmu.c | 4 +---
>  1 file changed, 1 insertion(+), 3 deletions(-)
> 
> diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
> index 5a19950e7289..97ca82001089 100644
> --- a/arch/arm64/mm/mmu.c
> +++ b/arch/arm64/mm/mmu.c
> @@ -207,7 +207,6 @@ static void alloc_init_cont_pte(pmd_t *pmdp, unsigned long addr,
>  
>  		if (flags & NO_EXEC_MAPPINGS)
>  			pmdval |= PMD_TABLE_PXN;
> -		BUG_ON(!pgtable_alloc);
>  		pte_phys = pgtable_alloc(PAGE_SHIFT);
>  		__pmd_populate(pmdp, pte_phys, pmdval);
>  		pmd = READ_ONCE(*pmdp);
> @@ -285,7 +284,6 @@ static void alloc_init_cont_pmd(pud_t *pudp, unsigned long addr,
>  
>  		if (flags & NO_EXEC_MAPPINGS)
>  			pudval |= PUD_TABLE_PXN;
> -		BUG_ON(!pgtable_alloc);
>  		pmd_phys = pgtable_alloc(PMD_SHIFT);
>  		__pud_populate(pudp, pmd_phys, pudval);
>  		pud = READ_ONCE(*pudp);
> @@ -324,7 +322,6 @@ static void alloc_init_pud(pgd_t *pgdp, unsigned long addr, unsigned long end,
>  
>  		if (flags & NO_EXEC_MAPPINGS)
>  			p4dval |= P4D_TABLE_PXN;
> -		BUG_ON(!pgtable_alloc);
>  		pud_phys = pgtable_alloc(PUD_SHIFT);
>  		__p4d_populate(p4dp, pud_phys, p4dval);
>  		p4d = READ_ONCE(*p4dp);
> @@ -383,6 +380,7 @@ static void __create_pgd_mapping_locked(pgd_t *pgdir, phys_addr_t phys,
>  	phys &= PAGE_MASK;
>  	addr = virt & PAGE_MASK;
>  	end = PAGE_ALIGN(virt + size);
> +	BUG_ON(!pgtable_alloc);
>  
>  	do {
>  		next = pgd_addr_end(addr, end);
> -- 
> 2.25.1
> 
> 

I just bisected a boot failure in our QEMU-based continuous integration
setup to this change as commit 9ed2b4616d4e ("arm64/mm: Drop redundant
BUG_ON(!pgtable_alloc)") in the arm64 tree. There is no output so the
panic clearly happens early at boot. If I move back to the previous
commit and add a WARN_ON() like so:

diff --git a/arch/arm64/mm/mmu.c b/arch/arm64/mm/mmu.c
index d386033a074c..9280a92ff920 100644
--- a/arch/arm64/mm/mmu.c
+++ b/arch/arm64/mm/mmu.c
@@ -383,6 +383,7 @@ static void __create_pgd_mapping_locked(pgd_t *pgdir, phys_addr_t phys,
 	phys &= PAGE_MASK;
 	addr = virt & PAGE_MASK;
 	end = PAGE_ALIGN(virt + size);
+	WARN_ON(!pgtable_alloc);
 
 	do {
 		next = pgd_addr_end(addr, end);

I do see some stacktraces. I have attached the boot log from QEMU.

If there is any additional information I can provide or patches I can
test, I am more than happy to do so.

Cheers,
Nathan

# bad: [2ed6cab9589d7829fc38237dcca94c776304a8bd] Merge branches 'for-next/acpi', 'for-next/asm-const', 'for-next/cpufeature', 'for-next/dynamic-scs', 'for-next/errata', 'for-next/fpsimd', 'for-next/ftrace', 'for-next/insn', 'for-next/kbuild', 'for-next/kdump', 'for-next/mm', 'for-next/perf', 'for-next/selftests', 'for-next/stacks', 'for-next/trivial', 'for-next/uaccess' and 'for-next/undef-traps' into for-next/core
# good: [f0c4d9fc9cc9462659728d168387191387e903cc] Linux 6.1-rc4
git bisect start '2ed6cab9589d7829fc38237dcca94c776304a8bd' 'v6.1-rc4'
# bad: [5b468dad6e5cf4998bdc05efbc5526c111666027] arm64/mm: Drop unused restore_ttbr1
git bisect bad 5b468dad6e5cf4998bdc05efbc5526c111666027
# good: [657eef0a5420a02c02945ed8c87f2ddcbd255772] arm64: atomics: lse: remove stale dependency on JUMP_LABEL
git bisect good 657eef0a5420a02c02945ed8c87f2ddcbd255772
# bad: [9ed2b4616d4e846ece2a04cb5007ce1d1bd9e3f3] arm64/mm: Drop redundant BUG_ON(!pgtable_alloc)
git bisect bad 9ed2b4616d4e846ece2a04cb5007ce1d1bd9e3f3
# good: [d8c1d798a2e5091128c391c6dadcc9be334af3f5] arm64: make is_ttbrX_addr() noinstr-safe
git bisect good d8c1d798a2e5091128c391c6dadcc9be334af3f5
# first bad commit: [9ed2b4616d4e846ece2a04cb5007ce1d1bd9e3f3] arm64/mm: Drop redundant BUG_ON(!pgtable_alloc)
-------------- next part --------------
$ timeout --foreground 30s stdbuf -oL -eL qemu-system-aarch64 -machine virt,gic-version=max -cpu max,pauth-impdef=true -machine virtualization=true -kernel /home/nathan/cbl/worktrees/arm64-boot-failure/arch/arm64/boot/Image.gz -append "console=ttyAMA0 earlycon" -display none -initrd /home/nathan/cbl/github/boot-utils-ro/images/arm64/rootfs.cpio -m 512m -nodefaults -no-reboot -serial mon:stdio
[    0.000000] ------------[ cut here ]------------
[    0.000000] WARNING: CPU: 0 PID: 0 at arch/arm64/mm/mmu.c:386 create_kpti_ng_temp_pgd+0x598/0x6b0
[    0.000000] Modules linked in:
[    0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 6.1.0-rc4-00008-gd8c1d798a2e5-dirty #1
[    0.000000] pstate: 400001c5 (nZcv dAIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[    0.000000] pc : create_kpti_ng_temp_pgd+0x598/0x6b0
[    0.000000] lr : __create_pgd_mapping+0x6c/0x90
[    0.000000] sp : ffffacf6277f3cd0
[    0.000000] x29: ffffacf6277f3cd0 x28: ffffacf627c28fb8 x27: 0000000000000000
[    0.000000] x26: 0000000000000002 x25: 0000000000000002 x24: 0068000000000703
[    0.000000] x23: fffffbfffdc00000 x22: fffffbfffdc00000 x21: fffffbfffde00000
[    0.000000] x20: ffffacf627c28000 x19: ffffacf627808708 x18: 0000000000000000
[    0.000000] x17: 000000040044ffff x16: 005000f5b5503510 x15: 0000000000000000
[    0.000000] x14: 0000000000000000 x13: 0000000c00000101 x12: ffff80000a322920
[    0.000000] x11: ffffacf625800000 x10: 00000000421ec008 x9 : 00000000000001f7
[    0.000000] x8 : fffffbffb5a00000 x7 : 0000000000000000 x6 : 0000000000000002
[    0.000000] x5 : 0000000000000000 x4 : 0068000000000703 x3 : fffffbfffde00fff
[    0.000000] x2 : fffffbfffdc00000 x1 : 0000000048600000 x0 : 0000000048600000
[    0.000000] Call trace:
[    0.000000]  create_kpti_ng_temp_pgd+0x598/0x6b0
[    0.000000]  __create_pgd_mapping+0x6c/0x90
[    0.000000]  fixmap_remap_fdt+0x78/0x100
[    0.000000]  early_fdt_map+0x58/0x8c
[    0.000000]  __primary_switched+0xa4/0xc4
[    0.000000]  0x411cc440
[    0.000000] ---[ end trace 0000000000000000 ]---
[    0.000000] Booting Linux on physical CPU 0x0000000000 [0x000f0510]
[    0.000000] Linux version 6.1.0-rc4-00008-gd8c1d798a2e5-dirty (nathan at dev-arch.thelio-3990X) (aarch64-linux-gnu-gcc (GCC) 12.2.0, GNU ld (GNU Binutils) 2.39) #1 SMP PREEMPT Sun Nov 20 07:19:49 MST 2022
[    0.000000] ------------[ cut here ]------------
[    0.000000] WARNING: CPU: 0 PID: 0 at arch/arm64/mm/mmu.c:386 create_kpti_ng_temp_pgd+0x598/0x6b0
[    0.000000] Modules linked in:
[    0.000000] CPU: 0 PID: 0 Comm: swapper Tainted: G        W          6.1.0-rc4-00008-gd8c1d798a2e5-dirty #1
[    0.000000] pstate: 400001c9 (nZcv dAIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[    0.000000] pc : create_kpti_ng_temp_pgd+0x598/0x6b0
[    0.000000] lr : __create_pgd_mapping+0x6c/0x90
[    0.000000] sp : ffffacf6277f3bf0
[    0.000000] x29: ffffacf6277f3bf0 x28: ffffacf627c28fb8 x27: 0000000000000000
[    0.000000] x26: 0000000000000002 x25: 0000000000000002 x24: 0068000000000703
[    0.000000] x23: fffffbfffdc00000 x22: fffffbfffdc00000 x21: fffffbfffde00000
[    0.000000] x20: ffffacf627c28000 x19: ffffacf627808708 x18: ffffacf626ffc568
[    0.000000] x17: ffffacf626ffc548 x16: ffffacf626ffc528 x15: ffffacf626ffc508
[    0.000000] x14: ffffacf626ffc4e8 x13: ffffacf626ffc4c8 x12: ffffacf626ffc4a8
[    0.000000] x11: ffffacf626ffc488 x10: ffffacf626ffc468 x9 : 00000000000001f7
[    0.000000] x8 : fffffbffb5a00000 x7 : fffffbfffdab8000 x6 : 0000000000000002
[    0.000000] x5 : 0000000000000000 x4 : 0068000000000703 x3 : fffffbfffde00fff
[    0.000000] x2 : fffffbfffdc00000 x1 : 0000000048600000 x0 : 0000000048600000
[    0.000000] Call trace:
[    0.000000]  create_kpti_ng_temp_pgd+0x598/0x6b0
[    0.000000]  __create_pgd_mapping+0x6c/0x90
[    0.000000]  fixmap_remap_fdt+0x78/0x100
[    0.000000]  setup_arch+0xb0/0x598
[    0.000000]  start_kernel+0x88/0x6ac
[    0.000000]  __primary_switched+0xbc/0xc4
[    0.000000] ---[ end trace 0000000000000000 ]---
[    0.000000] random: crng init done
[    0.000000] ------------[ cut here ]------------
[    0.000000] WARNING: CPU: 0 PID: 0 at arch/arm64/mm/mmu.c:386 create_kpti_ng_temp_pgd+0x598/0x6b0
[    0.000000] Modules linked in:
[    0.000000] CPU: 0 PID: 0 Comm: swapper Tainted: G        W          6.1.0-rc4-00008-gd8c1d798a2e5-dirty #1
[    0.000000] pstate: 400001c9 (nZcv dAIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[    0.000000] pc : create_kpti_ng_temp_pgd+0x598/0x6b0
[    0.000000] lr : __create_pgd_mapping+0x6c/0x90
[    0.000000] sp : ffffacf6277f3bf0
[    0.000000] x29: ffffacf6277f3bf0 x28: ffffacf627c28fb8 x27: 0000000000000000
[    0.000000] x26: 0000000000000002 x25: 0000000000000002 x24: 0060000000000783
[    0.000000] x23: fffffbfffdc00000 x22: fffffbfffdc00000 x21: fffffbfffde00000
[    0.000000] x20: ffffacf627c28000 x19: ffffacf627808708 x18: 000000002bae83d6
[    0.000000] x17: 0000000000000000 x16: 0000000000000000 x15: 0000000000001c00
[    0.000000] x14: 0000000000001000 x13: fffffbfffdc00000 x12: ffffacf6277f3ce4
[    0.000000] x11: 0000000000001bc0 x10: ffffacf6277f3c84 x9 : 00000000000001f7
[    0.000000] x8 : fffffbffb5a00000 x7 : fffffbfffdc00000 x6 : 0000000000000002
[    0.000000] x5 : 0000000000000000 x4 : 0060000000000783 x3 : fffffbfffde00fff
[    0.000000] x2 : fffffbfffdc00000 x1 : 0000000048600000 x0 : 0000000048600000
[    0.000000] Call trace:
[    0.000000]  create_kpti_ng_temp_pgd+0x598/0x6b0
[    0.000000]  __create_pgd_mapping+0x6c/0x90
[    0.000000]  fixmap_remap_fdt+0x78/0x100
[    0.000000]  setup_arch+0x120/0x598
[    0.000000]  start_kernel+0x88/0x6ac
[    0.000000]  __primary_switched+0xbc/0xc4
[    0.000000] ---[ end trace 0000000000000000 ]---
[    0.000000] Machine model: linux,dummy-virt
[    0.000000] efi: UEFI not found.
[    0.000000] earlycon: pl11 at MMIO 0x0000000009000000 (options '')
[    0.000000] printk: bootconsole [pl11] enabled
[    0.000000] NUMA: No NUMA configuration found
[    0.000000] NUMA: Faking a node at [mem 0x0000000040000000-0x000000005fffffff]
[    0.000000] NUMA: NODE_DATA [mem 0x5fef0a00-0x5fef2fff]
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x0000000040000000-0x000000005fffffff]
[    0.000000]   DMA32    empty
[    0.000000]   Normal   empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000040000000-0x000000005fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000040000000-0x000000005fffffff]
[    0.000000] cma: Reserved 32 MiB at 0x000000005d600000
[    0.000000] psci: probing for conduit method from DT.
[    0.000000] psci: PSCIv1.1 detected in firmware.
[    0.000000] psci: Using standard PSCI v0.2 function IDs
[    0.000000] psci: Trusted OS migration not required
[    0.000000] psci: SMC Calling Convention v1.0
[    0.000000] percpu: Embedded 20 pages/cpu s44840 r8192 d28888 u81920
[    0.000000] Detected PIPT I-cache on CPU0
[    0.000000] CPU features: detected: Address authentication (IMP DEF algorithm)
[    0.000000] CPU features: detected: GIC system register CPU interface
[    0.000000] CPU features: detected: Virtualization Host Extensions
[    0.000000] CPU features: detected: Hardware dirty bit management
[    0.000000] CPU features: detected: Spectre-v4
[    0.000000] alternatives: applying boot alternatives
[    0.000000] Fallback order for Node 0: 0 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 129024
[    0.000000] Policy zone: DMA
[    0.000000] Kernel command line: console=ttyAMA0 earlycon
[    0.000000] Dentry cache hash table entries: 65536 (order: 7, 524288 bytes, linear)
[    0.000000] Inode-cache hash table entries: 32768 (order: 6, 262144 bytes, linear)
[    0.000000] mem auto-init: stack:all(zero), heap alloc:off, heap free:off
[    0.000000] Memory: 439088K/524288K available (16128K kernel code, 3706K rwdata, 8856K rodata, 7552K init, 609K bss, 52432K reserved, 32768K cma-reserved)
[    0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] rcu: Preemptible hierarchical RCU implementation.
[    0.000000] rcu: 	RCU event tracing is enabled.
[    0.000000] rcu: 	RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=1.
[    0.000000] 	Trampoline variant of Tasks RCU enabled.
[    0.000000] 	Tracing variant of Tasks RCU enabled.
[    0.000000] rcu: RCU calculated value of scheduler-enlistment delay is 25 jiffies.
[    0.000000] rcu: Adjusting geometry for rcu_fanout_leaf=16, nr_cpu_ids=1
[    0.000000] NR_IRQS: 64, nr_irqs: 64, preallocated irqs: 0
[    0.000000] GICv3: GIC: Using split EOI/Deactivate mode
[    0.000000] GICv3: 224 SPIs implemented
[    0.000000] GICv3: 0 Extended SPIs implemented
[    0.000000] Root IRQ handler: gic_handle_irq
[    0.000000] GICv3: GICv3 features: 16 PPIs
[    0.000000] GICv3: GICv4 features: 
[    0.000000] GICv3: CPU0: found redistributor 0 region 0:0x00000000080a0000
[    0.000000] ITS [mem 0x08080000-0x0809ffff]
[    0.000000] ITS at 0x0000000008080000: Single VMOVP capable
[    0.000000] ITS at 0x0000000008080000: allocated 8192 Devices @42830000 (indirect, esz 8, psz 64K, shr 1)
[    0.000000] ITS at 0x0000000008080000: allocated 8192 Interrupt Collections @42840000 (flat, esz 8, psz 64K, shr 1)
[    0.000000] ITS at 0x0000000008080000: allocated 8192 Virtual CPUs @42850000 (indirect, esz 8, psz 64K, shr 1)
[    0.000000] GICv3: using LPI property table @0x0000000042860000
[    0.000000] ITS: Allocated DevID ffff as GICv4 proxy device (2 slots)
[    0.000000] ITS: Enabling GICv4 support
[    0.000000] GICv3: CPU0: using allocated LPI pending table @0x0000000042870000
[    0.000000] rcu: srcu_init: Setting srcu_struct sizes based on contention.
[    0.000000] arch_timer: cp15 timer(s) running at 62.50MHz (phys).
[    0.000000] clocksource: arch_sys_counter: mask: 0x1ffffffffffffff max_cycles: 0x1cd42e208c, max_idle_ns: 881590405314 ns
[    0.000066] sched_clock: 57 bits at 63MHz, resolution 16ns, wraps every 4398046511096ns
[    0.013044] Console: colour dummy device 80x25
[    0.018251] Calibrating delay loop (skipped), value calculated using timer frequency.. 125.00 BogoMIPS (lpj=250000)
[    0.018963] pid_max: default: 32768 minimum: 301
[    0.019933] LSM: Security Framework initializing
[    0.023092] Mount-cache hash table entries: 1024 (order: 1, 8192 bytes, linear)
[    0.023274] Mountpoint-cache hash table entries: 1024 (order: 1, 8192 bytes, linear)
[    0.049816] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    0.054883] cblist_init_generic: Setting adjustable number of callback queues.
[    0.055172] cblist_init_generic: Setting shift to 0 and lim to 1.
[    0.055600] cblist_init_generic: Setting shift to 0 and lim to 1.
[    0.056958] rcu: Hierarchical SRCU implementation.
[    0.057077] rcu: 	Max phase no-delay instances is 1000.
[    0.061143] Platform MSI: its at 8080000 domain created
[    0.061641] PCI/MSI: /intc at 8000000/its at 8080000 domain created
[    0.062252] fsl-mc MSI: its at 8080000 domain created
[    0.065264] EFI services will not be available.
[    0.065970] smp: Bringing up secondary CPUs ...
[    0.066130] smp: Brought up 1 node, 1 CPU
[    0.066224] SMP: Total of 1 processors activated.
[    0.066471] CPU features: detected: Branch Target Identification
[    0.066616] CPU features: detected: 32-bit EL0 Support
[    0.066721] CPU features: detected: 32-bit EL1 Support
[    0.066815] CPU features: detected: ARMv8.4 Translation Table Level
[    0.066950] CPU features: detected: Data cache clean to the PoU not required for I/D coherence
[    0.067129] CPU features: detected: Common not Private translations
[    0.067241] CPU features: detected: CRC32 instructions
[    0.067334] CPU features: detected: E0PD
[    0.067449] CPU features: detected: Generic authentication (IMP DEF algorithm)
[    0.067908] CPU features: detected: RCpc load-acquire (LDAPR)
[    0.068023] CPU features: detected: LSE atomic instructions
[    0.068123] CPU features: detected: Privileged Access Never
[    0.068222] CPU features: detected: RAS Extension Support
[    0.068319] CPU features: detected: Random Number Generator
[    0.068418] CPU features: detected: Speculation barrier (SB)
[    0.068518] CPU features: detected: Stage-2 Force Write-Back
[    0.068619] CPU features: detected: TLB range maintenance instructions
[    0.068760] CPU features: detected: Scalable Matrix Extension
[    0.068863] CPU features: detected: FA64
[    0.068936] CPU features: detected: Speculative Store Bypassing Safe (SSBS)
[    0.069055] CPU features: detected: Scalable Vector Extension
[    0.076940] SVE: maximum available vector length 256 bytes per vector
[    0.079575] SVE: default vector length 64 bytes per vector
[    0.081070] SME: minimum available vector length 16 bytes per vector
[    0.081200] SME: maximum available vector length 256 bytes per vector
[    0.081318] SME: default vector length 32 bytes per vector
[    0.081632] CPU: All CPU(s) started at EL2
[    0.081736] alternatives: applying system-wide alternatives
[    0.099081] ------------[ cut here ]------------
[    0.099322] WARNING: CPU: 0 PID: 1 at arch/arm64/mm/mmu.c:386 create_kpti_ng_temp_pgd+0x598/0x6b0
[    0.100202] Modules linked in:
[    0.100797] CPU: 0 PID: 1 Comm: swapper/0 Tainted: G        W          6.1.0-rc4-00008-gd8c1d798a2e5-dirty #1
[    0.101096] Hardware name: linux,dummy-virt (DT)
[    0.101305] pstate: 40400009 (nZcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[    0.101560] pc : create_kpti_ng_temp_pgd+0x598/0x6b0
[    0.101674] lr : update_mapping_prot+0x7c/0x130
[    0.101777] sp : ffff80000800bca0
[    0.101854] x29: ffff80000800bca0 x28: ffffacf627081000 x27: 0000000000000000
[    0.102107] x26: 0000000000000000 x25: 0000000000000002 x24: ffffacf627081000
[    0.102259] x23: ffff000000210000 x22: 0060000000000783 x21: ffff000001a90000
[    0.102409] x20: ffffacf627808708 x19: ffff000000210000 x18: 0000000000000006
[    0.102573] x17: 687469726f676c61 x16: 2046454420504d49 x15: ffff80000800b930
[    0.102727] x14: 00000000000002da x13: 00000000000002da x12: 0000000000000000
[    0.102884] x11: 000000000000000f x10: 26dd6ca7b86b0997 x9 : 0000000000000000
[    0.103053] x8 : ffff000040000000 x7 : ffff00001fed0cc0 x6 : 0000000000000002
[    0.103205] x5 : 0000000000000000 x4 : 0060000000000783 x3 : ffff000001a90fff
[    0.103356] x2 : ffff000000210000 x1 : 0000000040210000 x0 : 0000000040210000
[    0.103581] Call trace:
[    0.103720]  create_kpti_ng_temp_pgd+0x598/0x6b0
[    0.103909]  update_mapping_prot+0x7c/0x130
[    0.104015]  mark_linear_text_alias_ro+0x64/0x70
[    0.104114]  smp_cpus_done+0xac/0xb8
[    0.104202]  smp_init+0x7c/0x8c
[    0.104272]  kernel_init_freeable+0x138/0x284
[    0.104363]  kernel_init+0x24/0x12c
[    0.104442]  ret_from_fork+0x10/0x20
[    0.104598] ---[ end trace 0000000000000000 ]---
[    0.130808] devtmpfs: initialized
[    0.145964] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.146545] futex hash table entries: 256 (order: 2, 16384 bytes, linear)
[    0.151391] pinctrl core: initialized pinctrl subsystem
[    0.160991] DMI not present or invalid.
[    0.168534] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    0.177634] DMA: preallocated 128 KiB GFP_KERNEL pool for atomic allocations
[    0.178242] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    0.178581] DMA: preallocated 128 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    0.178917] audit: initializing netlink subsys (disabled)
[    0.184508] thermal_sys: Registered thermal governor 'step_wise'
[    0.184551] thermal_sys: Registered thermal governor 'power_allocator'
[    0.185258] audit: type=2000 audit(0.148:1): state=initialized audit_enabled=0 res=1
[    0.185783] cpuidle: using governor menu
[    0.186878] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    0.187340] ASID allocator initialised with 65536 entries
[    0.191980] Serial: AMBA PL011 UART driver
[    0.234735] 9000000.pl011: ttyAMA0 at MMIO 0x9000000 (irq = 14, base_baud = 0) is a PL011 rev1
[    0.235990] printk: console [ttyAMA0] enabled
[    0.235990] printk: console [ttyAMA0] enabled
[    0.236353] printk: bootconsole [pl11] disabled
[    0.236353] printk: bootconsole [pl11] disabled
[    0.246854] KASLR enabled
[    0.271822] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
[    0.271976] HugeTLB: 16380 KiB vmemmap can be freed for a 1.00 GiB page
[    0.272118] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
[    0.272242] HugeTLB: 508 KiB vmemmap can be freed for a 32.0 MiB page
[    0.272362] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[    0.272484] HugeTLB: 28 KiB vmemmap can be freed for a 2.00 MiB page
[    0.272604] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
[    0.272727] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
[    0.280140] ACPI: Interpreter disabled.
[    0.287090] iommu: Default domain type: Translated 
[    0.287220] iommu: DMA domain TLB invalidation policy: strict mode 
[    0.288576] SCSI subsystem initialized
[    0.290245] usbcore: registered new interface driver usbfs
[    0.290531] usbcore: registered new interface driver hub
[    0.290749] usbcore: registered new device driver usb
[    0.293227] pps_core: LinuxPPS API ver. 1 registered
[    0.293339] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti at linux.it>
[    0.293565] PTP clock support registered
[    0.294018] EDAC MC: Ver: 3.0.0
[    0.298899] FPGA manager framework
[    0.299514] Advanced Linux Sound Architecture Driver Initialized.
[    0.308095] vgaarb: loaded
[    0.311074] clocksource: Switched to clocksource arch_sys_counter
[    0.312019] VFS: Disk quotas dquot_6.6.0
[    0.312239] VFS: Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    0.314563] pnp: PnP ACPI: disabled
[    0.329415] NET: Registered PF_INET protocol family
[    0.330771] IP idents hash table entries: 8192 (order: 4, 65536 bytes, linear)
[    0.334374] tcp_listen_portaddr_hash hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.334789] Table-perturb hash table entries: 65536 (order: 6, 262144 bytes, linear)
[    0.335034] TCP established hash table entries: 4096 (order: 3, 32768 bytes, linear)
[    0.335305] TCP bind hash table entries: 4096 (order: 5, 131072 bytes, linear)
[    0.335576] TCP: Hash tables configured (established 4096 bind 4096)
[    0.336550] UDP hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.336821] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes, linear)
[    0.337715] NET: Registered PF_UNIX/PF_LOCAL protocol family
[    0.339883] RPC: Registered named UNIX socket transport module.
[    0.340035] RPC: Registered udp transport module.
[    0.340131] RPC: Registered tcp transport module.
[    0.340234] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    0.340427] PCI: CLS 0 bytes, default 64
[    0.343473] Unpacking initramfs...
[    0.350541] hw perfevents: enabled with armv8_pmuv3 PMU driver, 7 counters available
[    0.355556] kvm [1]: IPA Size Limit: 48 bits
[    0.356110] kvm [1]: GICv4 support disabled
[    0.356216] kvm [1]: GICv3: no GICV resource entry
[    0.356389] kvm [1]: disabling GICv2 emulation
[    0.356560] kvm [1]: GIC system register CPU interface enabled
[    0.356826] kvm [1]: vgic interrupt IRQ9
[    0.357395] kvm [1]: VHE mode initialized successfully
[    0.365095] Initialise system trusted keyrings
[    0.366317] workingset: timestamp_bits=42 max_order=17 bucket_order=0
[    0.399468] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.404064] NFS: Registering the id_resolver key type
[    0.404386] Key type id_resolver registered
[    0.404497] Key type id_legacy registered
[    0.404893] nfs4filelayout_init: NFSv4 File Layout Driver Registering...
[    0.405078] nfs4flexfilelayout_init: NFSv4 Flexfile Layout Driver Registering...
[    0.407034] 9p: Installing v9fs 9p2000 file system support
[    0.442984] Freeing initrd memory: 4228K
[    0.445538] Key type asymmetric registered
[    0.445666] Asymmetric key parser 'x509' registered
[    0.445981] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 245)
[    0.446209] io scheduler mq-deadline registered
[    0.446351] io scheduler kyber registered
[    0.475872] pl061_gpio 9030000.pl061: PL061 GPIO chip registered
[    0.481586] pci-host-generic 4010000000.pcie: host bridge /pcie at 10000000 ranges:
[    0.482294] pci-host-generic 4010000000.pcie:       IO 0x003eff0000..0x003effffff -> 0x0000000000
[    0.482904] pci-host-generic 4010000000.pcie:      MEM 0x0010000000..0x003efeffff -> 0x0010000000
[    0.483121] pci-host-generic 4010000000.pcie:      MEM 0x8000000000..0xffffffffff -> 0x8000000000
[    0.483654] pci-host-generic 4010000000.pcie: Memory resource size exceeds max for 32 bits
[    0.484199] pci-host-generic 4010000000.pcie: ECAM at [mem 0x4010000000-0x401fffffff] for [bus 00-ff]
[    0.485376] pci-host-generic 4010000000.pcie: PCI host bridge to bus 0000:00
[    0.485688] pci_bus 0000:00: root bus resource [bus 00-ff]
[    0.485846] pci_bus 0000:00: root bus resource [io  0x0000-0xffff]
[    0.485994] pci_bus 0000:00: root bus resource [mem 0x10000000-0x3efeffff]
[    0.486126] pci_bus 0000:00: root bus resource [mem 0x8000000000-0xffffffffff]
[    0.487397] pci 0000:00:00.0: [1b36:0008] type 00 class 0x060000
[    0.496520] EINJ: ACPI disabled.
[    0.545687] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.551677] SuperH (H)SCI(F) driver initialized
[    0.552935] msm_serial: driver initialized
[    0.556913] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    0.569640] loop: module loaded
[    0.571862] megasas: 07.719.03.00-rc1
[    0.576961] physmap-flash 0.flash: physmap platform flash device: [mem 0x00000000-0x03ffffff]
[    0.578102] 0.flash: Found 2 x16 devices at 0x0 in 32-bit bank. Manufacturer ID 0x000000 Chip ID 0x000000
[    0.578609] Intel/Sharp Extended Query Table at 0x0031
[    0.579279] Using buffer write method
[    0.579785] physmap-flash 0.flash: physmap platform flash device: [mem 0x04000000-0x07ffffff]
[    0.580233] 0.flash: Found 2 x16 devices at 0x0 in 32-bit bank. Manufacturer ID 0x000000 Chip ID 0x000000
[    0.580441] Intel/Sharp Extended Query Table at 0x0031
[    0.580800] Using buffer write method
[    0.580958] Concatenating MTD devices:
[    0.581051] (0): "0.flash"
[    0.581116] (1): "0.flash"
[    0.581179] into device "0.flash"
[    0.645325] tun: Universal TUN/TAP device driver, 1.6
[    0.647720] thunder_xcv, ver 1.0
[    0.647895] thunder_bgx, ver 1.0
[    0.648056] nicpf, ver 1.0
[    0.650930] hns3: Hisilicon Ethernet Network Driver for Hip08 Family - version
[    0.651080] hns3: Copyright (c) 2017 Huawei Corporation.
[    0.651395] hclge is initializing
[    0.651564] e1000: Intel(R) PRO/1000 Network Driver
[    0.651665] e1000: Copyright (c) 1999-2006 Intel Corporation.
[    0.651873] e1000e: Intel(R) PRO/1000 Network Driver
[    0.651974] e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[    0.652173] igb: Intel(R) Gigabit Ethernet Network Driver
[    0.652282] igb: Copyright (c) 2007-2014 Intel Corporation.
[    0.652457] igbvf: Intel(R) Gigabit Virtual Function Network Driver
[    0.652580] igbvf: Copyright (c) 2009 - 2012 Intel Corporation.
[    0.653392] sky2: driver version 1.30
[    0.655936] VFIO - User Level meta-driver version: 0.3
[    0.663600] usbcore: registered new interface driver usb-storage
[    0.671271] rtc-pl031 9010000.pl031: registered as rtc0
[    0.671896] rtc-pl031 9010000.pl031: setting system clock to 2022-11-20T16:07:46 UTC (1668960466)
[    0.673797] i2c_dev: i2c /dev entries driver
[    0.687743] sdhci: Secure Digital Host Controller Interface driver
[    0.687873] sdhci: Copyright(c) Pierre Ossman
[    0.689521] Synopsys Designware Multimedia Card Interface Driver
[    0.691712] sdhci-pltfm: SDHCI platform and OF driver helper
[    0.696002] ledtrig-cpu: registered to indicate activity on CPUs
[    0.700743] usbcore: registered new interface driver usbhid
[    0.700869] usbhid: USB HID core driver
[    0.715202] NET: Registered PF_PACKET protocol family
[    0.716138] 9pnet: Installing 9P2000 support
[    0.716408] Key type dns_resolver registered
[    0.717272] registered taskstats version 1
[    0.717553] Loading compiled-in X.509 certificates
[    0.734047] input: gpio-keys as /devices/platform/gpio-keys/input/input0
[    0.741365] ALSA device list:
[    0.741486]   No soundcards found.
[    0.743704] uart-pl011 9000000.pl011: no DMA platform data
[    0.791231] Freeing unused kernel memory: 7552K
[    0.791686] ------------[ cut here ]------------
[    0.791795] WARNING: CPU: 0 PID: 1 at arch/arm64/mm/mmu.c:386 create_kpti_ng_temp_pgd+0x598/0x6b0
[    0.791982] Modules linked in:
[    0.792061] CPU: 0 PID: 1 Comm: swapper/0 Tainted: G        W          6.1.0-rc4-00008-gd8c1d798a2e5-dirty #1
[    0.792252] Hardware name: linux,dummy-virt (DT)
[    0.792344] pstate: 40400009 (nZcv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[    0.792478] pc : create_kpti_ng_temp_pgd+0x598/0x6b0
[    0.792579] lr : update_mapping_prot+0x7c/0x130
[    0.792673] sp : ffff80000800bd30
[    0.792739] x29: ffff80000800bd30 x28: ffffacf627081ac8 x27: 0000000000000000
[    0.792895] x26: 0000000000000000 x25: 0000000000000002 x24: ffffacf627081000
[    0.793047] x23: ffffacf6267d0000 x22: 0060000000000783 x21: ffffacf627090000
[    0.793200] x20: ffffacf627808708 x19: ffffacf6267d0000 x18: 0000000000000006
[    0.793352] x17: 00000000eef7d358 x16: ffff00001fef0b00 x15: ffff80000800b950
[    0.793504] x14: 0000000000000000 x13: ffffacf627813248 x12: 0000000000000480
[    0.793664] x11: 0000000000000180 x10: ffffacf62786b248 x9 : 0000000000000159
[    0.793816] x8 : ffffacf667600000 x7 : ffffacf62786b248 x6 : 0000000000000002
[    0.793966] x5 : 0000000000000000 x4 : 0060000000000783 x3 : ffffacf627090fff
[    0.794117] x2 : ffffacf6267d0000 x1 : 00000000411d0000 x0 : 00000000411d0000
[    0.794268] Call trace:
[    0.794323]  create_kpti_ng_temp_pgd+0x598/0x6b0
[    0.794421]  update_mapping_prot+0x7c/0x130
[    0.794511]  mark_rodata_ro+0x54/0x60
[    0.794592]  kernel_init+0x4c/0x12c
[    0.794671]  ret_from_fork+0x10/0x20
[    0.794752] ---[ end trace 0000000000000000 ]---
[    0.795261] Run /init as init process
Starting syslogd: OK
Starting klogd: OK
Running sysctl: OK
Saving random seed: OK
Starting network: OK
Linux version 6.1.0-rc4-00008-gd8c1d798a2e5-dirty (nathan at dev-arch.thelio-3990X) (aarch64-linux-gnu-gcc (GCC) 12.2.0, GNU ld (GNU Binutils) 2.39) #1 SMP PREEMPT Sun Nov 20 07:19:49 MST 2022
Stopping network: OK
Saving random seed: OK
Stopping klogd: OK
Stopping syslogd: OK
umount: devtmpfs busy - remounted read-only
umount: can't unmount /: Invalid argument

The system is going down NOW!

Sent SIGTERM to all processes

Sent SIGKILL to all processes

Requesting system poweroff
[    3.403671] kvm: exiting hardware virtualization
[    3.406563] Flash device refused suspend due to active operation (state 20)
[    3.407119] Flash device refused suspend due to active operation (state 20)
[    3.408038] reboot: Power down


More information about the linux-arm-kernel mailing list