All of lore.kernel.org
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: Pierre Gondois <pierre.gondois@arm.com>, linux-kernel@vger.kernel.org
Cc: palmer@rivosinc.com, Ionela.Voinescu@arm.com,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>, Sudeep Holla <sudeep.holla@arm.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jeremy Linton <jeremy.linton@arm.com>,
	Conor Dooley <conor.dooley@microchip.com>,
	Gavin Shan <gshan@redhat.com>,
	linux-arm-kernel@lists.infradead.org,
	linux-riscv@lists.infradead.org, linux-acpi@vger.kernel.org
Subject: Re: [PATCH v3 0/5] arch_topology: Build cacheinfo from primary CPU
Date: Thu, 29 Dec 2022 17:47:44 +0100	[thread overview]
Message-ID: <0f19cb3f-d6cf-4032-66d2-dedc9d09a0e3@linaro.org> (raw)
In-Reply-To: <20221209103130.572196-1-pierre.gondois@arm.com>

[-- Attachment #1: Type: text/plain, Size: 3162 bytes --]

On 09/12/2022 11:31, Pierre Gondois wrote:
> v2:
>  - Applied renaming/formatting comments from v1.
>  - Check CACHE_TYPE_VALID flag in pppt.c.
> v3:
>  - Applied Sudeep's suggestions (for patch 5/5):
>    - Renaming allocate_cache_info() -> fecth_cache_info()
>    - Updated error message
>    - Extract an inline allocate_cache_info() function
>  - Re-run checkpatch with --strict option
> 
> Note:
> This patchset requires the following patch to be applied first in
> order to avoid the same bug described in the commit message:
> https://lore.kernel.org/all/20221116094958.2141072-1-pierre.gondois@arm.com/
> 
> [1] and [2] build the CPU topology from the cacheinfo information for
> both DT/ACPI based systems and remove (struct cpu_topology).llc_id
> which was used by ACPI only.
> 
> Creating the cacheinfo for secondary CPUs is done during early boot.
> Preemption and interrupts are disabled at this stage. On PREEMPT_RT
> kernels, allocating memory (and parsing the PPTT table for ACPI based
> systems) triggers a:
>   'BUG: sleeping function called from invalid context' [4]
> 
> To prevent this bug, allocate the cacheinfo from the primary CPU when
> preemption and interrupts are enabled and before booting secondary
> CPUs. The cache levels/leaves are computed from DT/ACPI PPTT information
> only, without relying on the arm64 CLIDR_EL1 register.
> If no cache information is found in the DT/ACPI PPTT, then fallback
> to the current state, triggering [4] on PREEMPT_RT kernels.
> 
> Patches to update the arm64 device trees that have incomplete cacheinfo
> (mostly for missing the 'cache-level' or 'cache-unified' property)
> have been sent at [3].
> 
> Tested platforms:
> - ACPI + PPTT: Ampere Altra, Ampere eMAG, Cavium ThunderX2,
>   Kunpeng 920, Juno-r2
> - DT: rb5, db845c, Juno-r2
> 

I gave the patchset a try with DTS fixes for cache topology on Qualcomm
RB5 board (SM8250 SoC) and with KASAN it produces:

BUG: KASAN: slab-out-of-bounds in populate_cache_leaves+0x84/0x15c
[    0.633014]  dump_backtrace.part.0+0xe0/0xf0
[    0.633035]  show_stack+0x18/0x40
[    0.633050]  dump_stack_lvl+0x8c/0xb8
[    0.633085]  print_report+0x188/0x488
[    0.633106]  kasan_report+0xac/0xf0
[    0.633136]  __asan_store4+0x80/0xa4
[    0.633158]  populate_cache_leaves+0x84/0x15c
[    0.633181]  detect_cache_attributes+0xc0/0x8c4
[    0.633213]  update_siblings_masks+0x28/0x43c
[    0.633235]  store_cpu_topology+0x98/0xc0
[    0.633251]  smp_prepare_cpus+0x2c/0x15c
[    0.633281]  kernel_init_freeable+0x22c/0x424
[    0.633310]  kernel_init+0x24/0x13c
[    0.633328]  ret_from_fork+0x10/0x20
[    0.633388]
[    0.708729] Allocated by task 1:
[    0.712078]  kasan_save_stack+0x2c/0x60
[    0.716066]  kasan_set_track+0x2c/0x40
[    0.719959]  kasan_save_alloc_info+0x24/0x3c
[    0.724387]  __kasan_kmalloc+0xa0/0xbc
[    0.728278]  __kmalloc+0x74/0x110
[    0.731740]  fetch_cache_info+0x170/0x210
[    0.735902]  init_cpu_topology+0x254/0x2bc
[    0.740171]  smp_prepare_cpus+0x20/0x15c
[    0.744272]  kernel_init_freeable+0x22c/0x424
[    0.748791]  kernel_init+0x24/0x13c
[    0.752420]  ret_from_fork+0x10/0x20

Best regards,
Krzysztof

[-- Attachment #2: log.txt --]
[-- Type: text/plain, Size: 10327 bytes --]

[    0.000000] arch_timer: cp15 and mmio timer(s) running at 19.20MHz (virt/virt).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns
[    0.000001] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns
[    0.005051] Console: colour dummy device 80x25
[    0.478980] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[    0.478992] ... MAX_LOCKDEP_SUBCLASSES:  8
[    0.479002] ... MAX_LOCK_DEPTH:          48
[    0.479011] ... MAX_LOCKDEP_KEYS:        8192
[    0.479019] ... CLASSHASH_SIZE:          4096
[    0.479027] ... MAX_LOCKDEP_ENTRIES:     32768
[    0.479035] ... MAX_LOCKDEP_CHAINS:      65536
[    0.479043] ... CHAINHASH_SIZE:          32768
[    0.479052]  memory used by lock dependency info: 6365 kB
[    0.479061]  memory used for stack traces: 4224 kB
[    0.479069]  per task-struct memory footprint: 1920 bytes
[    0.479976] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=19200)
[    0.480007] pid_max: default: 32768 minimum: 301
[    0.482256] LSM: Security Framework initializing
[    0.484629] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.484692] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.518295] ==================================================================
[    0.617001] BUG: KASAN: slab-out-of-bounds in populate_cache_leaves+0x84/0x15c
[    0.624489] Write of size 4 at addr ffff0d83400366c8 by task swapper/0/1
[    0.631400]
[    0.632973] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.1.0-rt5-00372-ga6339d0b4e8e #45
[    0.632995] Hardware name: Qualcomm Technologies, Inc. Robotics RB5 (DT)
[    0.633006] Call trace:
[    0.633014]  dump_backtrace.part.0+0xe0/0xf0
[    0.633035]  show_stack+0x18/0x40
[    0.633050]  dump_stack_lvl+0x8c/0xb8
[    0.633085]  print_report+0x188/0x488
[    0.633106]  kasan_report+0xac/0xf0
[    0.633136]  __asan_store4+0x80/0xa4
[    0.633158]  populate_cache_leaves+0x84/0x15c
[    0.633181]  detect_cache_attributes+0xc0/0x8c4
[    0.633213]  update_siblings_masks+0x28/0x43c
[    0.633235]  store_cpu_topology+0x98/0xc0
[    0.633251]  smp_prepare_cpus+0x2c/0x15c
[    0.633281]  kernel_init_freeable+0x22c/0x424
[    0.633310]  kernel_init+0x24/0x13c
[    0.633328]  ret_from_fork+0x10/0x20
[    0.633388]
[    0.708729] Allocated by task 1:
[    0.712078]  kasan_save_stack+0x2c/0x60
[    0.716066]  kasan_set_track+0x2c/0x40
[    0.719959]  kasan_save_alloc_info+0x24/0x3c
[    0.724387]  __kasan_kmalloc+0xa0/0xbc
[    0.728278]  __kmalloc+0x74/0x110
[    0.731740]  fetch_cache_info+0x170/0x210
[    0.735902]  init_cpu_topology+0x254/0x2bc
[    0.740171]  smp_prepare_cpus+0x20/0x15c
[    0.744272]  kernel_init_freeable+0x22c/0x424
[    0.748791]  kernel_init+0x24/0x13c
[    0.752420]  ret_from_fork+0x10/0x20
[    0.756131]
[    0.757726] The buggy address belongs to the object at ffff0d8340036600
[    0.757726]  which belongs to the cache kmalloc-256 of size 256
[    0.770607] The buggy address is located 200 bytes inside of
[    0.770607]  256-byte region [ffff0d8340036600, ffff0d8340036700)
[    0.782690]
[    0.784256] The buggy address belongs to the physical page:
[    0.790008] page:(____ptrval____) refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x100034
[    0.799686] head:(____ptrval____) order:2 compound_mapcount:0 compound_pincount:0
[    0.807405] flags: 0x800000000010200(slab|head|node=0|zone=2)
[    0.813365] raw: 0800000000010200 0000000000000000 dead000000000122 ffff0d8340002480
[    0.821349] raw: 0000000000000000 0000000080200020 00000001ffffffff 0000000000000000
[    0.829364] page dumped because: kasan: bad access detected
[    0.835117]
[    0.836679] Memory state around the buggy address:
[    0.841639]  ffff0d8340036580: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[    0.849085]  ffff0d8340036600: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[    0.856562] >ffff0d8340036680: 00 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc
[    0.864005]                                               ^
[    0.869760]  ffff0d8340036700: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[    0.877206]  ffff0d8340036780: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[    0.884650] ==================================================================
[    0.892100] Disabling lock debugging due to kernel taint
[    0.904200] cblist_init_generic: Setting adjustable number of callback queues.
[    0.904241] cblist_init_generic: Setting shift to 3 and lim to 1.
[    0.918718] cblist_init_generic: Setting shift to 3 and lim to 1.
[    0.925721] Running RCU-tasks wait API self tests
[    1.036108] rcu: Hierarchical SRCU implementation.
[    1.036118] rcu:     Max phase no-delay instances is 400.
[    1.036756] printk: bootconsole [qcom_geni0] printing thread started
[    1.048808] Callback from call_rcu_tasks_trace() invoked.
[    1.081711] EFI services will not be available.
[    1.091529] smp: Bringing up secondary CPUs ...
[    1.103585] Detected VIPT I-cache on CPU1
[    1.103747] GICv3: CPU1: found redistributor 100 region 0:0x0000000017a80000
[    1.103830] CPU1: Booted secondary processor 0x0000000100 [0x51df805e]
[    1.129767] Detected VIPT I-cache on CPU2
[    1.129911] GICv3: CPU2: found redistributor 200 region 0:0x0000000017aa0000
[    1.129979] CPU2: Booted secondary processor 0x0000000200 [0x51df805e]
[    1.155742] Detected VIPT I-cache on CPU3
[    1.155876] GICv3: CPU3: found redistributor 300 region 0:0x0000000017ac0000
[    1.155936] CPU3: Booted secondary processor 0x0000000300 [0x51df805e]
[    1.182791] CPU features: detected: Spectre-v4
[    1.182824] CPU features: detected: Spectre-BHB
[    1.182854] CPU features: detected: ARM erratum 1508412 (kernel portion)
[    1.182900] Detected PIPT I-cache on CPU4
[    1.183187] GICv3: CPU4: found redistributor 400 region 0:0x0000000017ae0000
[    1.183294] CPU4: Booted secondary processor 0x0000000400 [0x411fd0d0]
[    1.225640] Detected PIPT I-cache on CPU5
[    1.226000] GICv3: CPU5: found redistributor 500 region 0:0x0000000017b00000
[    1.226099] CPU5: Booted secondary processor 0x0000000500 [0x411fd0d0]
[    1.252358] Detected PIPT I-cache on CPU6
[    1.252722] GICv3: CPU6: found redistributor 600 region 0:0x0000000017b20000
[    1.252821] CPU6: Booted secondary processor 0x0000000600 [0x411fd0d0]
[    1.266024] Callback from call_rcu_tasks() invoked.
[    1.284303] Detected PIPT I-cache on CPU7
[    1.284475] GICv3: CPU7: found redistributor 700 region 0:0x0000000017b40000
[    1.284525] CPU7: Booted secondary processor 0x0000000700 [0x411fd0d0]
[    1.284926] smp: Brought up 1 node, 8 CPUs
[    1.284943] SMP: Total of 8 processors activated.
[    1.284954] CPU features: detected: 32-bit EL0 Support
[    1.284963] CPU features: detected: Data cache clean to the PoU not required for I/D coherence
[    1.284975] CPU features: detected: Common not Private translations
[    1.284985] CPU features: detected: CRC32 instructions
[    1.284999] CPU features: detected: RCpc load-acquire (LDAPR)
[    1.285009] CPU features: detected: LSE atomic instructions
[    1.285019] CPU features: detected: Privileged Access Never
[    1.285029] CPU features: detected: RAS Extension Support
[    1.285044] CPU features: detected: Speculative Store Bypassing Safe (SSBS)
[    1.296826] CPU: All CPU(s) started at EL1
[    1.296891] alternatives: applying system-wide alternatives
[    1.315641] devtmpfs: initialized
[    1.670123] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns
[    1.670327] futex hash table entries: 2048 (order: 6, 393216 bytes, linear)
[    1.673537] pinctrl core: initialized pinctrl subsystem
[    1.684021] DMI not present or invalid.
[    1.687165] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    1.695595] DMA: preallocated 1024 KiB GFP_KERNEL pool for atomic allocations
[    1.696373] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    1.698379] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    1.698742] audit: initializing netlink subsys (disabled)
[    1.699628] audit: type=2000 audit(1.628:1): state=initialized audit_enabled=0 res=1
[    1.708543] thermal_sys: Registered thermal governor 'step_wise'
[    1.708570] thermal_sys: Registered thermal governor 'power_allocator'
[    1.708961] cpuidle: using governor ladder
[    1.709035] cpuidle: using governor menu
[    1.709849] NET: Registered PF_QIPCRTR protocol family
[    1.711345] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    1.719297] ASID allocator initialised with 32768 entries
[    1.733197] Serial: AMBA PL011 UART driver
[    1.855339] platform 1d87000.phy: Fixing up cyclic dependency with 1d84000.ufshc
[    2.041279] KASLR enabled
[    2.174612] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
[    2.174626] HugeTLB: 16380 KiB vmemmap can be freed for a 1.00 GiB page
[    2.174634] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
[    2.174640] HugeTLB: 508 KiB vmemmap can be freed for a 32.0 MiB page
[    2.174647] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[    2.174652] HugeTLB: 28 KiB vmemmap can be freed for a 2.00 MiB page
[    2.174660] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
[    2.174665] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
[    2.188583] ACPI: Interpreter disabled.
[    2.306645] iommu: Default domain type: Translated
[    2.306660] iommu: DMA domain TLB invalidation policy: strict mode
[    2.310343] SCSI subsystem initialized
[    2.313611] usbcore: registered new interface driver usbfs
[    2.313987] usbcore: registered new interface driver hub
[    2.314314] usbcore: registered new device driver usb
[    2.321138] pps_core: LinuxPPS API ver. 1 registered
[    2.321144] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    2.321246] PTP clock support registered
[    2.321452] EDAC MC: Ver: 3.0.0
[    2.324853] CPUidle PSCI: Initialized CPU PM domain topology
[    2.327564] qcom_scm: convention: smc arm 64
[    2.335862] FPGA manager framework


WARNING: multiple messages have this Message-ID (diff)
From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: Pierre Gondois <pierre.gondois@arm.com>, linux-kernel@vger.kernel.org
Cc: palmer@rivosinc.com, Ionela.Voinescu@arm.com,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>, Sudeep Holla <sudeep.holla@arm.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jeremy Linton <jeremy.linton@arm.com>,
	Conor Dooley <conor.dooley@microchip.com>,
	Gavin Shan <gshan@redhat.com>,
	linux-arm-kernel@lists.infradead.org,
	linux-riscv@lists.infradead.org, linux-acpi@vger.kernel.org
Subject: Re: [PATCH v3 0/5] arch_topology: Build cacheinfo from primary CPU
Date: Thu, 29 Dec 2022 17:47:44 +0100	[thread overview]
Message-ID: <0f19cb3f-d6cf-4032-66d2-dedc9d09a0e3@linaro.org> (raw)
In-Reply-To: <20221209103130.572196-1-pierre.gondois@arm.com>

[-- Attachment #1: Type: text/plain, Size: 3162 bytes --]

On 09/12/2022 11:31, Pierre Gondois wrote:
> v2:
>  - Applied renaming/formatting comments from v1.
>  - Check CACHE_TYPE_VALID flag in pppt.c.
> v3:
>  - Applied Sudeep's suggestions (for patch 5/5):
>    - Renaming allocate_cache_info() -> fecth_cache_info()
>    - Updated error message
>    - Extract an inline allocate_cache_info() function
>  - Re-run checkpatch with --strict option
> 
> Note:
> This patchset requires the following patch to be applied first in
> order to avoid the same bug described in the commit message:
> https://lore.kernel.org/all/20221116094958.2141072-1-pierre.gondois@arm.com/
> 
> [1] and [2] build the CPU topology from the cacheinfo information for
> both DT/ACPI based systems and remove (struct cpu_topology).llc_id
> which was used by ACPI only.
> 
> Creating the cacheinfo for secondary CPUs is done during early boot.
> Preemption and interrupts are disabled at this stage. On PREEMPT_RT
> kernels, allocating memory (and parsing the PPTT table for ACPI based
> systems) triggers a:
>   'BUG: sleeping function called from invalid context' [4]
> 
> To prevent this bug, allocate the cacheinfo from the primary CPU when
> preemption and interrupts are enabled and before booting secondary
> CPUs. The cache levels/leaves are computed from DT/ACPI PPTT information
> only, without relying on the arm64 CLIDR_EL1 register.
> If no cache information is found in the DT/ACPI PPTT, then fallback
> to the current state, triggering [4] on PREEMPT_RT kernels.
> 
> Patches to update the arm64 device trees that have incomplete cacheinfo
> (mostly for missing the 'cache-level' or 'cache-unified' property)
> have been sent at [3].
> 
> Tested platforms:
> - ACPI + PPTT: Ampere Altra, Ampere eMAG, Cavium ThunderX2,
>   Kunpeng 920, Juno-r2
> - DT: rb5, db845c, Juno-r2
> 

I gave the patchset a try with DTS fixes for cache topology on Qualcomm
RB5 board (SM8250 SoC) and with KASAN it produces:

BUG: KASAN: slab-out-of-bounds in populate_cache_leaves+0x84/0x15c
[    0.633014]  dump_backtrace.part.0+0xe0/0xf0
[    0.633035]  show_stack+0x18/0x40
[    0.633050]  dump_stack_lvl+0x8c/0xb8
[    0.633085]  print_report+0x188/0x488
[    0.633106]  kasan_report+0xac/0xf0
[    0.633136]  __asan_store4+0x80/0xa4
[    0.633158]  populate_cache_leaves+0x84/0x15c
[    0.633181]  detect_cache_attributes+0xc0/0x8c4
[    0.633213]  update_siblings_masks+0x28/0x43c
[    0.633235]  store_cpu_topology+0x98/0xc0
[    0.633251]  smp_prepare_cpus+0x2c/0x15c
[    0.633281]  kernel_init_freeable+0x22c/0x424
[    0.633310]  kernel_init+0x24/0x13c
[    0.633328]  ret_from_fork+0x10/0x20
[    0.633388]
[    0.708729] Allocated by task 1:
[    0.712078]  kasan_save_stack+0x2c/0x60
[    0.716066]  kasan_set_track+0x2c/0x40
[    0.719959]  kasan_save_alloc_info+0x24/0x3c
[    0.724387]  __kasan_kmalloc+0xa0/0xbc
[    0.728278]  __kmalloc+0x74/0x110
[    0.731740]  fetch_cache_info+0x170/0x210
[    0.735902]  init_cpu_topology+0x254/0x2bc
[    0.740171]  smp_prepare_cpus+0x20/0x15c
[    0.744272]  kernel_init_freeable+0x22c/0x424
[    0.748791]  kernel_init+0x24/0x13c
[    0.752420]  ret_from_fork+0x10/0x20

Best regards,
Krzysztof

[-- Attachment #2: log.txt --]
[-- Type: text/plain, Size: 10327 bytes --]

[    0.000000] arch_timer: cp15 and mmio timer(s) running at 19.20MHz (virt/virt).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns
[    0.000001] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns
[    0.005051] Console: colour dummy device 80x25
[    0.478980] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[    0.478992] ... MAX_LOCKDEP_SUBCLASSES:  8
[    0.479002] ... MAX_LOCK_DEPTH:          48
[    0.479011] ... MAX_LOCKDEP_KEYS:        8192
[    0.479019] ... CLASSHASH_SIZE:          4096
[    0.479027] ... MAX_LOCKDEP_ENTRIES:     32768
[    0.479035] ... MAX_LOCKDEP_CHAINS:      65536
[    0.479043] ... CHAINHASH_SIZE:          32768
[    0.479052]  memory used by lock dependency info: 6365 kB
[    0.479061]  memory used for stack traces: 4224 kB
[    0.479069]  per task-struct memory footprint: 1920 bytes
[    0.479976] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=19200)
[    0.480007] pid_max: default: 32768 minimum: 301
[    0.482256] LSM: Security Framework initializing
[    0.484629] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.484692] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.518295] ==================================================================
[    0.617001] BUG: KASAN: slab-out-of-bounds in populate_cache_leaves+0x84/0x15c
[    0.624489] Write of size 4 at addr ffff0d83400366c8 by task swapper/0/1
[    0.631400]
[    0.632973] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.1.0-rt5-00372-ga6339d0b4e8e #45
[    0.632995] Hardware name: Qualcomm Technologies, Inc. Robotics RB5 (DT)
[    0.633006] Call trace:
[    0.633014]  dump_backtrace.part.0+0xe0/0xf0
[    0.633035]  show_stack+0x18/0x40
[    0.633050]  dump_stack_lvl+0x8c/0xb8
[    0.633085]  print_report+0x188/0x488
[    0.633106]  kasan_report+0xac/0xf0
[    0.633136]  __asan_store4+0x80/0xa4
[    0.633158]  populate_cache_leaves+0x84/0x15c
[    0.633181]  detect_cache_attributes+0xc0/0x8c4
[    0.633213]  update_siblings_masks+0x28/0x43c
[    0.633235]  store_cpu_topology+0x98/0xc0
[    0.633251]  smp_prepare_cpus+0x2c/0x15c
[    0.633281]  kernel_init_freeable+0x22c/0x424
[    0.633310]  kernel_init+0x24/0x13c
[    0.633328]  ret_from_fork+0x10/0x20
[    0.633388]
[    0.708729] Allocated by task 1:
[    0.712078]  kasan_save_stack+0x2c/0x60
[    0.716066]  kasan_set_track+0x2c/0x40
[    0.719959]  kasan_save_alloc_info+0x24/0x3c
[    0.724387]  __kasan_kmalloc+0xa0/0xbc
[    0.728278]  __kmalloc+0x74/0x110
[    0.731740]  fetch_cache_info+0x170/0x210
[    0.735902]  init_cpu_topology+0x254/0x2bc
[    0.740171]  smp_prepare_cpus+0x20/0x15c
[    0.744272]  kernel_init_freeable+0x22c/0x424
[    0.748791]  kernel_init+0x24/0x13c
[    0.752420]  ret_from_fork+0x10/0x20
[    0.756131]
[    0.757726] The buggy address belongs to the object at ffff0d8340036600
[    0.757726]  which belongs to the cache kmalloc-256 of size 256
[    0.770607] The buggy address is located 200 bytes inside of
[    0.770607]  256-byte region [ffff0d8340036600, ffff0d8340036700)
[    0.782690]
[    0.784256] The buggy address belongs to the physical page:
[    0.790008] page:(____ptrval____) refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x100034
[    0.799686] head:(____ptrval____) order:2 compound_mapcount:0 compound_pincount:0
[    0.807405] flags: 0x800000000010200(slab|head|node=0|zone=2)
[    0.813365] raw: 0800000000010200 0000000000000000 dead000000000122 ffff0d8340002480
[    0.821349] raw: 0000000000000000 0000000080200020 00000001ffffffff 0000000000000000
[    0.829364] page dumped because: kasan: bad access detected
[    0.835117]
[    0.836679] Memory state around the buggy address:
[    0.841639]  ffff0d8340036580: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[    0.849085]  ffff0d8340036600: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[    0.856562] >ffff0d8340036680: 00 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc
[    0.864005]                                               ^
[    0.869760]  ffff0d8340036700: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[    0.877206]  ffff0d8340036780: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[    0.884650] ==================================================================
[    0.892100] Disabling lock debugging due to kernel taint
[    0.904200] cblist_init_generic: Setting adjustable number of callback queues.
[    0.904241] cblist_init_generic: Setting shift to 3 and lim to 1.
[    0.918718] cblist_init_generic: Setting shift to 3 and lim to 1.
[    0.925721] Running RCU-tasks wait API self tests
[    1.036108] rcu: Hierarchical SRCU implementation.
[    1.036118] rcu:     Max phase no-delay instances is 400.
[    1.036756] printk: bootconsole [qcom_geni0] printing thread started
[    1.048808] Callback from call_rcu_tasks_trace() invoked.
[    1.081711] EFI services will not be available.
[    1.091529] smp: Bringing up secondary CPUs ...
[    1.103585] Detected VIPT I-cache on CPU1
[    1.103747] GICv3: CPU1: found redistributor 100 region 0:0x0000000017a80000
[    1.103830] CPU1: Booted secondary processor 0x0000000100 [0x51df805e]
[    1.129767] Detected VIPT I-cache on CPU2
[    1.129911] GICv3: CPU2: found redistributor 200 region 0:0x0000000017aa0000
[    1.129979] CPU2: Booted secondary processor 0x0000000200 [0x51df805e]
[    1.155742] Detected VIPT I-cache on CPU3
[    1.155876] GICv3: CPU3: found redistributor 300 region 0:0x0000000017ac0000
[    1.155936] CPU3: Booted secondary processor 0x0000000300 [0x51df805e]
[    1.182791] CPU features: detected: Spectre-v4
[    1.182824] CPU features: detected: Spectre-BHB
[    1.182854] CPU features: detected: ARM erratum 1508412 (kernel portion)
[    1.182900] Detected PIPT I-cache on CPU4
[    1.183187] GICv3: CPU4: found redistributor 400 region 0:0x0000000017ae0000
[    1.183294] CPU4: Booted secondary processor 0x0000000400 [0x411fd0d0]
[    1.225640] Detected PIPT I-cache on CPU5
[    1.226000] GICv3: CPU5: found redistributor 500 region 0:0x0000000017b00000
[    1.226099] CPU5: Booted secondary processor 0x0000000500 [0x411fd0d0]
[    1.252358] Detected PIPT I-cache on CPU6
[    1.252722] GICv3: CPU6: found redistributor 600 region 0:0x0000000017b20000
[    1.252821] CPU6: Booted secondary processor 0x0000000600 [0x411fd0d0]
[    1.266024] Callback from call_rcu_tasks() invoked.
[    1.284303] Detected PIPT I-cache on CPU7
[    1.284475] GICv3: CPU7: found redistributor 700 region 0:0x0000000017b40000
[    1.284525] CPU7: Booted secondary processor 0x0000000700 [0x411fd0d0]
[    1.284926] smp: Brought up 1 node, 8 CPUs
[    1.284943] SMP: Total of 8 processors activated.
[    1.284954] CPU features: detected: 32-bit EL0 Support
[    1.284963] CPU features: detected: Data cache clean to the PoU not required for I/D coherence
[    1.284975] CPU features: detected: Common not Private translations
[    1.284985] CPU features: detected: CRC32 instructions
[    1.284999] CPU features: detected: RCpc load-acquire (LDAPR)
[    1.285009] CPU features: detected: LSE atomic instructions
[    1.285019] CPU features: detected: Privileged Access Never
[    1.285029] CPU features: detected: RAS Extension Support
[    1.285044] CPU features: detected: Speculative Store Bypassing Safe (SSBS)
[    1.296826] CPU: All CPU(s) started at EL1
[    1.296891] alternatives: applying system-wide alternatives
[    1.315641] devtmpfs: initialized
[    1.670123] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns
[    1.670327] futex hash table entries: 2048 (order: 6, 393216 bytes, linear)
[    1.673537] pinctrl core: initialized pinctrl subsystem
[    1.684021] DMI not present or invalid.
[    1.687165] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    1.695595] DMA: preallocated 1024 KiB GFP_KERNEL pool for atomic allocations
[    1.696373] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    1.698379] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    1.698742] audit: initializing netlink subsys (disabled)
[    1.699628] audit: type=2000 audit(1.628:1): state=initialized audit_enabled=0 res=1
[    1.708543] thermal_sys: Registered thermal governor 'step_wise'
[    1.708570] thermal_sys: Registered thermal governor 'power_allocator'
[    1.708961] cpuidle: using governor ladder
[    1.709035] cpuidle: using governor menu
[    1.709849] NET: Registered PF_QIPCRTR protocol family
[    1.711345] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    1.719297] ASID allocator initialised with 32768 entries
[    1.733197] Serial: AMBA PL011 UART driver
[    1.855339] platform 1d87000.phy: Fixing up cyclic dependency with 1d84000.ufshc
[    2.041279] KASLR enabled
[    2.174612] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
[    2.174626] HugeTLB: 16380 KiB vmemmap can be freed for a 1.00 GiB page
[    2.174634] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
[    2.174640] HugeTLB: 508 KiB vmemmap can be freed for a 32.0 MiB page
[    2.174647] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[    2.174652] HugeTLB: 28 KiB vmemmap can be freed for a 2.00 MiB page
[    2.174660] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
[    2.174665] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
[    2.188583] ACPI: Interpreter disabled.
[    2.306645] iommu: Default domain type: Translated
[    2.306660] iommu: DMA domain TLB invalidation policy: strict mode
[    2.310343] SCSI subsystem initialized
[    2.313611] usbcore: registered new interface driver usbfs
[    2.313987] usbcore: registered new interface driver hub
[    2.314314] usbcore: registered new device driver usb
[    2.321138] pps_core: LinuxPPS API ver. 1 registered
[    2.321144] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    2.321246] PTP clock support registered
[    2.321452] EDAC MC: Ver: 3.0.0
[    2.324853] CPUidle PSCI: Initialized CPU PM domain topology
[    2.327564] qcom_scm: convention: smc arm 64
[    2.335862] FPGA manager framework


[-- Attachment #3: Type: text/plain, Size: 161 bytes --]

_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv

WARNING: multiple messages have this Message-ID (diff)
From: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
To: Pierre Gondois <pierre.gondois@arm.com>, linux-kernel@vger.kernel.org
Cc: palmer@rivosinc.com, Ionela.Voinescu@arm.com,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <will@kernel.org>,
	Paul Walmsley <paul.walmsley@sifive.com>,
	Palmer Dabbelt <palmer@dabbelt.com>,
	Albert Ou <aou@eecs.berkeley.edu>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Len Brown <lenb@kernel.org>, Sudeep Holla <sudeep.holla@arm.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Jeremy Linton <jeremy.linton@arm.com>,
	Conor Dooley <conor.dooley@microchip.com>,
	Gavin Shan <gshan@redhat.com>,
	linux-arm-kernel@lists.infradead.org,
	linux-riscv@lists.infradead.org, linux-acpi@vger.kernel.org
Subject: Re: [PATCH v3 0/5] arch_topology: Build cacheinfo from primary CPU
Date: Thu, 29 Dec 2022 17:47:44 +0100	[thread overview]
Message-ID: <0f19cb3f-d6cf-4032-66d2-dedc9d09a0e3@linaro.org> (raw)
In-Reply-To: <20221209103130.572196-1-pierre.gondois@arm.com>

[-- Attachment #1: Type: text/plain, Size: 3162 bytes --]

On 09/12/2022 11:31, Pierre Gondois wrote:
> v2:
>  - Applied renaming/formatting comments from v1.
>  - Check CACHE_TYPE_VALID flag in pppt.c.
> v3:
>  - Applied Sudeep's suggestions (for patch 5/5):
>    - Renaming allocate_cache_info() -> fecth_cache_info()
>    - Updated error message
>    - Extract an inline allocate_cache_info() function
>  - Re-run checkpatch with --strict option
> 
> Note:
> This patchset requires the following patch to be applied first in
> order to avoid the same bug described in the commit message:
> https://lore.kernel.org/all/20221116094958.2141072-1-pierre.gondois@arm.com/
> 
> [1] and [2] build the CPU topology from the cacheinfo information for
> both DT/ACPI based systems and remove (struct cpu_topology).llc_id
> which was used by ACPI only.
> 
> Creating the cacheinfo for secondary CPUs is done during early boot.
> Preemption and interrupts are disabled at this stage. On PREEMPT_RT
> kernels, allocating memory (and parsing the PPTT table for ACPI based
> systems) triggers a:
>   'BUG: sleeping function called from invalid context' [4]
> 
> To prevent this bug, allocate the cacheinfo from the primary CPU when
> preemption and interrupts are enabled and before booting secondary
> CPUs. The cache levels/leaves are computed from DT/ACPI PPTT information
> only, without relying on the arm64 CLIDR_EL1 register.
> If no cache information is found in the DT/ACPI PPTT, then fallback
> to the current state, triggering [4] on PREEMPT_RT kernels.
> 
> Patches to update the arm64 device trees that have incomplete cacheinfo
> (mostly for missing the 'cache-level' or 'cache-unified' property)
> have been sent at [3].
> 
> Tested platforms:
> - ACPI + PPTT: Ampere Altra, Ampere eMAG, Cavium ThunderX2,
>   Kunpeng 920, Juno-r2
> - DT: rb5, db845c, Juno-r2
> 

I gave the patchset a try with DTS fixes for cache topology on Qualcomm
RB5 board (SM8250 SoC) and with KASAN it produces:

BUG: KASAN: slab-out-of-bounds in populate_cache_leaves+0x84/0x15c
[    0.633014]  dump_backtrace.part.0+0xe0/0xf0
[    0.633035]  show_stack+0x18/0x40
[    0.633050]  dump_stack_lvl+0x8c/0xb8
[    0.633085]  print_report+0x188/0x488
[    0.633106]  kasan_report+0xac/0xf0
[    0.633136]  __asan_store4+0x80/0xa4
[    0.633158]  populate_cache_leaves+0x84/0x15c
[    0.633181]  detect_cache_attributes+0xc0/0x8c4
[    0.633213]  update_siblings_masks+0x28/0x43c
[    0.633235]  store_cpu_topology+0x98/0xc0
[    0.633251]  smp_prepare_cpus+0x2c/0x15c
[    0.633281]  kernel_init_freeable+0x22c/0x424
[    0.633310]  kernel_init+0x24/0x13c
[    0.633328]  ret_from_fork+0x10/0x20
[    0.633388]
[    0.708729] Allocated by task 1:
[    0.712078]  kasan_save_stack+0x2c/0x60
[    0.716066]  kasan_set_track+0x2c/0x40
[    0.719959]  kasan_save_alloc_info+0x24/0x3c
[    0.724387]  __kasan_kmalloc+0xa0/0xbc
[    0.728278]  __kmalloc+0x74/0x110
[    0.731740]  fetch_cache_info+0x170/0x210
[    0.735902]  init_cpu_topology+0x254/0x2bc
[    0.740171]  smp_prepare_cpus+0x20/0x15c
[    0.744272]  kernel_init_freeable+0x22c/0x424
[    0.748791]  kernel_init+0x24/0x13c
[    0.752420]  ret_from_fork+0x10/0x20

Best regards,
Krzysztof

[-- Attachment #2: log.txt --]
[-- Type: text/plain, Size: 10327 bytes --]

[    0.000000] arch_timer: cp15 and mmio timer(s) running at 19.20MHz (virt/virt).
[    0.000000] clocksource: arch_sys_counter: mask: 0xffffffffffffff max_cycles: 0x46d987e47, max_idle_ns: 440795202767 ns
[    0.000001] sched_clock: 56 bits at 19MHz, resolution 52ns, wraps every 4398046511078ns
[    0.005051] Console: colour dummy device 80x25
[    0.478980] Lock dependency validator: Copyright (c) 2006 Red Hat, Inc., Ingo Molnar
[    0.478992] ... MAX_LOCKDEP_SUBCLASSES:  8
[    0.479002] ... MAX_LOCK_DEPTH:          48
[    0.479011] ... MAX_LOCKDEP_KEYS:        8192
[    0.479019] ... CLASSHASH_SIZE:          4096
[    0.479027] ... MAX_LOCKDEP_ENTRIES:     32768
[    0.479035] ... MAX_LOCKDEP_CHAINS:      65536
[    0.479043] ... CHAINHASH_SIZE:          32768
[    0.479052]  memory used by lock dependency info: 6365 kB
[    0.479061]  memory used for stack traces: 4224 kB
[    0.479069]  per task-struct memory footprint: 1920 bytes
[    0.479976] Calibrating delay loop (skipped), value calculated using timer frequency.. 38.40 BogoMIPS (lpj=19200)
[    0.480007] pid_max: default: 32768 minimum: 301
[    0.482256] LSM: Security Framework initializing
[    0.484629] Mount-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.484692] Mountpoint-cache hash table entries: 16384 (order: 5, 131072 bytes, linear)
[    0.518295] ==================================================================
[    0.617001] BUG: KASAN: slab-out-of-bounds in populate_cache_leaves+0x84/0x15c
[    0.624489] Write of size 4 at addr ffff0d83400366c8 by task swapper/0/1
[    0.631400]
[    0.632973] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.1.0-rt5-00372-ga6339d0b4e8e #45
[    0.632995] Hardware name: Qualcomm Technologies, Inc. Robotics RB5 (DT)
[    0.633006] Call trace:
[    0.633014]  dump_backtrace.part.0+0xe0/0xf0
[    0.633035]  show_stack+0x18/0x40
[    0.633050]  dump_stack_lvl+0x8c/0xb8
[    0.633085]  print_report+0x188/0x488
[    0.633106]  kasan_report+0xac/0xf0
[    0.633136]  __asan_store4+0x80/0xa4
[    0.633158]  populate_cache_leaves+0x84/0x15c
[    0.633181]  detect_cache_attributes+0xc0/0x8c4
[    0.633213]  update_siblings_masks+0x28/0x43c
[    0.633235]  store_cpu_topology+0x98/0xc0
[    0.633251]  smp_prepare_cpus+0x2c/0x15c
[    0.633281]  kernel_init_freeable+0x22c/0x424
[    0.633310]  kernel_init+0x24/0x13c
[    0.633328]  ret_from_fork+0x10/0x20
[    0.633388]
[    0.708729] Allocated by task 1:
[    0.712078]  kasan_save_stack+0x2c/0x60
[    0.716066]  kasan_set_track+0x2c/0x40
[    0.719959]  kasan_save_alloc_info+0x24/0x3c
[    0.724387]  __kasan_kmalloc+0xa0/0xbc
[    0.728278]  __kmalloc+0x74/0x110
[    0.731740]  fetch_cache_info+0x170/0x210
[    0.735902]  init_cpu_topology+0x254/0x2bc
[    0.740171]  smp_prepare_cpus+0x20/0x15c
[    0.744272]  kernel_init_freeable+0x22c/0x424
[    0.748791]  kernel_init+0x24/0x13c
[    0.752420]  ret_from_fork+0x10/0x20
[    0.756131]
[    0.757726] The buggy address belongs to the object at ffff0d8340036600
[    0.757726]  which belongs to the cache kmalloc-256 of size 256
[    0.770607] The buggy address is located 200 bytes inside of
[    0.770607]  256-byte region [ffff0d8340036600, ffff0d8340036700)
[    0.782690]
[    0.784256] The buggy address belongs to the physical page:
[    0.790008] page:(____ptrval____) refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x100034
[    0.799686] head:(____ptrval____) order:2 compound_mapcount:0 compound_pincount:0
[    0.807405] flags: 0x800000000010200(slab|head|node=0|zone=2)
[    0.813365] raw: 0800000000010200 0000000000000000 dead000000000122 ffff0d8340002480
[    0.821349] raw: 0000000000000000 0000000080200020 00000001ffffffff 0000000000000000
[    0.829364] page dumped because: kasan: bad access detected
[    0.835117]
[    0.836679] Memory state around the buggy address:
[    0.841639]  ffff0d8340036580: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[    0.849085]  ffff0d8340036600: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[    0.856562] >ffff0d8340036680: 00 00 00 00 00 00 00 00 fc fc fc fc fc fc fc fc
[    0.864005]                                               ^
[    0.869760]  ffff0d8340036700: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[    0.877206]  ffff0d8340036780: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
[    0.884650] ==================================================================
[    0.892100] Disabling lock debugging due to kernel taint
[    0.904200] cblist_init_generic: Setting adjustable number of callback queues.
[    0.904241] cblist_init_generic: Setting shift to 3 and lim to 1.
[    0.918718] cblist_init_generic: Setting shift to 3 and lim to 1.
[    0.925721] Running RCU-tasks wait API self tests
[    1.036108] rcu: Hierarchical SRCU implementation.
[    1.036118] rcu:     Max phase no-delay instances is 400.
[    1.036756] printk: bootconsole [qcom_geni0] printing thread started
[    1.048808] Callback from call_rcu_tasks_trace() invoked.
[    1.081711] EFI services will not be available.
[    1.091529] smp: Bringing up secondary CPUs ...
[    1.103585] Detected VIPT I-cache on CPU1
[    1.103747] GICv3: CPU1: found redistributor 100 region 0:0x0000000017a80000
[    1.103830] CPU1: Booted secondary processor 0x0000000100 [0x51df805e]
[    1.129767] Detected VIPT I-cache on CPU2
[    1.129911] GICv3: CPU2: found redistributor 200 region 0:0x0000000017aa0000
[    1.129979] CPU2: Booted secondary processor 0x0000000200 [0x51df805e]
[    1.155742] Detected VIPT I-cache on CPU3
[    1.155876] GICv3: CPU3: found redistributor 300 region 0:0x0000000017ac0000
[    1.155936] CPU3: Booted secondary processor 0x0000000300 [0x51df805e]
[    1.182791] CPU features: detected: Spectre-v4
[    1.182824] CPU features: detected: Spectre-BHB
[    1.182854] CPU features: detected: ARM erratum 1508412 (kernel portion)
[    1.182900] Detected PIPT I-cache on CPU4
[    1.183187] GICv3: CPU4: found redistributor 400 region 0:0x0000000017ae0000
[    1.183294] CPU4: Booted secondary processor 0x0000000400 [0x411fd0d0]
[    1.225640] Detected PIPT I-cache on CPU5
[    1.226000] GICv3: CPU5: found redistributor 500 region 0:0x0000000017b00000
[    1.226099] CPU5: Booted secondary processor 0x0000000500 [0x411fd0d0]
[    1.252358] Detected PIPT I-cache on CPU6
[    1.252722] GICv3: CPU6: found redistributor 600 region 0:0x0000000017b20000
[    1.252821] CPU6: Booted secondary processor 0x0000000600 [0x411fd0d0]
[    1.266024] Callback from call_rcu_tasks() invoked.
[    1.284303] Detected PIPT I-cache on CPU7
[    1.284475] GICv3: CPU7: found redistributor 700 region 0:0x0000000017b40000
[    1.284525] CPU7: Booted secondary processor 0x0000000700 [0x411fd0d0]
[    1.284926] smp: Brought up 1 node, 8 CPUs
[    1.284943] SMP: Total of 8 processors activated.
[    1.284954] CPU features: detected: 32-bit EL0 Support
[    1.284963] CPU features: detected: Data cache clean to the PoU not required for I/D coherence
[    1.284975] CPU features: detected: Common not Private translations
[    1.284985] CPU features: detected: CRC32 instructions
[    1.284999] CPU features: detected: RCpc load-acquire (LDAPR)
[    1.285009] CPU features: detected: LSE atomic instructions
[    1.285019] CPU features: detected: Privileged Access Never
[    1.285029] CPU features: detected: RAS Extension Support
[    1.285044] CPU features: detected: Speculative Store Bypassing Safe (SSBS)
[    1.296826] CPU: All CPU(s) started at EL1
[    1.296891] alternatives: applying system-wide alternatives
[    1.315641] devtmpfs: initialized
[    1.670123] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275000 ns
[    1.670327] futex hash table entries: 2048 (order: 6, 393216 bytes, linear)
[    1.673537] pinctrl core: initialized pinctrl subsystem
[    1.684021] DMI not present or invalid.
[    1.687165] NET: Registered PF_NETLINK/PF_ROUTE protocol family
[    1.695595] DMA: preallocated 1024 KiB GFP_KERNEL pool for atomic allocations
[    1.696373] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA pool for atomic allocations
[    1.698379] DMA: preallocated 1024 KiB GFP_KERNEL|GFP_DMA32 pool for atomic allocations
[    1.698742] audit: initializing netlink subsys (disabled)
[    1.699628] audit: type=2000 audit(1.628:1): state=initialized audit_enabled=0 res=1
[    1.708543] thermal_sys: Registered thermal governor 'step_wise'
[    1.708570] thermal_sys: Registered thermal governor 'power_allocator'
[    1.708961] cpuidle: using governor ladder
[    1.709035] cpuidle: using governor menu
[    1.709849] NET: Registered PF_QIPCRTR protocol family
[    1.711345] hw-breakpoint: found 6 breakpoint and 4 watchpoint registers.
[    1.719297] ASID allocator initialised with 32768 entries
[    1.733197] Serial: AMBA PL011 UART driver
[    1.855339] platform 1d87000.phy: Fixing up cyclic dependency with 1d84000.ufshc
[    2.041279] KASLR enabled
[    2.174612] HugeTLB: registered 1.00 GiB page size, pre-allocated 0 pages
[    2.174626] HugeTLB: 16380 KiB vmemmap can be freed for a 1.00 GiB page
[    2.174634] HugeTLB: registered 32.0 MiB page size, pre-allocated 0 pages
[    2.174640] HugeTLB: 508 KiB vmemmap can be freed for a 32.0 MiB page
[    2.174647] HugeTLB: registered 2.00 MiB page size, pre-allocated 0 pages
[    2.174652] HugeTLB: 28 KiB vmemmap can be freed for a 2.00 MiB page
[    2.174660] HugeTLB: registered 64.0 KiB page size, pre-allocated 0 pages
[    2.174665] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
[    2.188583] ACPI: Interpreter disabled.
[    2.306645] iommu: Default domain type: Translated
[    2.306660] iommu: DMA domain TLB invalidation policy: strict mode
[    2.310343] SCSI subsystem initialized
[    2.313611] usbcore: registered new interface driver usbfs
[    2.313987] usbcore: registered new interface driver hub
[    2.314314] usbcore: registered new device driver usb
[    2.321138] pps_core: LinuxPPS API ver. 1 registered
[    2.321144] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
[    2.321246] PTP clock support registered
[    2.321452] EDAC MC: Ver: 3.0.0
[    2.324853] CPUidle PSCI: Initialized CPU PM domain topology
[    2.327564] qcom_scm: convention: smc arm 64
[    2.335862] FPGA manager framework


[-- Attachment #3: Type: text/plain, Size: 176 bytes --]

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2022-12-29 16:47 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-12-09 10:31 [PATCH v3 0/5] arch_topology: Build cacheinfo from primary CPU Pierre Gondois
2022-12-09 10:31 ` Pierre Gondois
2022-12-09 10:31 ` Pierre Gondois
2022-12-09 10:31 ` [PATCH v3 1/5] cacheinfo: Use RISC-V's init_cache_level() as generic OF implementation Pierre Gondois
2022-12-09 10:31   ` Pierre Gondois
2022-12-09 10:31   ` Pierre Gondois
2022-12-20 23:39   ` Rob Herring
2022-12-20 23:39     ` Rob Herring
2022-12-20 23:39     ` Rob Herring
2022-12-21  9:53     ` Pierre Gondois
2022-12-21  9:53       ` Pierre Gondois
2022-12-21  9:53       ` Pierre Gondois
2022-12-09 10:31 ` [PATCH v3 2/5] cacheinfo: Return error code in init_of_cache_level() Pierre Gondois
2022-12-09 10:31   ` Pierre Gondois
2022-12-09 10:31   ` Pierre Gondois
2022-12-09 10:31 ` [PATCH v3 3/5] ACPI: PPTT: Remove acpi_find_cache_levels() Pierre Gondois
2022-12-09 10:31   ` Pierre Gondois
2022-12-09 10:31   ` Pierre Gondois
2022-12-09 10:31 ` [PATCH v3 4/5] ACPI: PPTT: Update acpi_find_last_cache_level() to acpi_get_cache_info() Pierre Gondois
2022-12-09 10:31   ` Pierre Gondois
2022-12-09 10:31   ` Pierre Gondois
2022-12-09 10:31 ` [PATCH v3 5/5] arch_topology: Build cacheinfo from primary CPU Pierre Gondois
2022-12-09 10:31   ` Pierre Gondois
2022-12-09 10:31   ` Pierre Gondois
2022-12-29 16:47 ` Krzysztof Kozlowski [this message]
2022-12-29 16:47   ` [PATCH v3 0/5] " Krzysztof Kozlowski
2022-12-29 16:47   ` Krzysztof Kozlowski
2023-01-04 18:35   ` Pierre Gondois
2023-01-04 18:35     ` Pierre Gondois
2023-01-04 18:35     ` Pierre Gondois

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0f19cb3f-d6cf-4032-66d2-dedc9d09a0e3@linaro.org \
    --to=krzysztof.kozlowski@linaro.org \
    --cc=Ionela.Voinescu@arm.com \
    --cc=aou@eecs.berkeley.edu \
    --cc=catalin.marinas@arm.com \
    --cc=conor.dooley@microchip.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=gshan@redhat.com \
    --cc=jeremy.linton@arm.com \
    --cc=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-riscv@lists.infradead.org \
    --cc=palmer@dabbelt.com \
    --cc=palmer@rivosinc.com \
    --cc=paul.walmsley@sifive.com \
    --cc=pierre.gondois@arm.com \
    --cc=rafael@kernel.org \
    --cc=sudeep.holla@arm.com \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.