[PATCH v11 4/5] Documentation/kbuild: Document storage of symbol information

2024-12-23 Thread Matthew Maurer
Document where exported and imported symbols are kept, format options, and limitations. Signed-off-by: Matthew Maurer --- Documentation/kbuild/modules.rst | 20 1 file changed, 20 insertions(+) diff --git a/Documentation/kbuild/modules.rst b/Documentation/kbuild/modules.rst

[PATCH v11 5/5] rust: Use gendwarfksyms + extended modversions for CONFIG_MODVERSIONS

2024-12-23 Thread Matthew Maurer
From: Sami Tolvanen Previously, two things stopped Rust from using MODVERSIONS: 1. Rust symbols are occasionally too long to be represented in the original versions table 2. Rust types cannot be properly hashed by the existing genksyms approach because: * Looking up type definitions

[PATCH v11 3/5] modules: Allow extended modversions without basic MODVERSIONS

2024-12-23 Thread Matthew Maurer
If you know that your kernel modules will only ever be loaded by a newer kernel, you can disable BASIC_MODVERSIONS to save space. This also allows easy creation of test modules to seee how tooling will respond to modules that only have the new format. Signed-off-by: Matthew Maurer --- kernel/mod

[PATCH v11 1/5] modules: Support extended MODVERSIONS info

2024-12-23 Thread Matthew Maurer
Adds a new format for MODVERSIONS which stores each field in a separate ELF section. This initially adds support for variable length names, but could later be used to add additional fields to MODVERSIONS in a backwards compatible way if needed. Any new fields will be ignored by old user tooling, un

[PATCH v11 2/5] modpost: Produce extended MODVERSIONS information

2024-12-23 Thread Matthew Maurer
Generate both the existing modversions format and the new extended one when running modpost. Presence of this metadata in the final .ko is guarded by CONFIG_EXTENDED_MODVERSIONS. We no longer generate an error on long symbols in modpost if CONFIG_EXTENDED_MODVERSIONS is set, as they can now be app

[PATCH v11 0/5] Extended MODVERSIONS Support

2024-12-23 Thread Matthew Maurer
This patch series is intended for use alongside the Implement DWARF modversions series [1] to enable RUST and MODVERSIONS at the same time. Elsewhere, we've seen a desire for long symbol name support for LTO symbol names [2], and the previous series came up [3] as a possible solution rather than h

[powerpc:next-test] BUILD SUCCESS 26bef359bc4f10747f8d0b3a7f3fe60ef99ce2c1

2024-12-23 Thread kernel test robot
-001-20241223gcc-13.2.0 arc randconfig-002-20241223gcc-13.2.0 arm allmodconfiggcc-14.2.0 arm allnoconfigclang-17 arm allyesconfiggcc-14.2.0 arm

Re: [PATCH v10 4/4] arm64: Kconfig: Enable HOTPLUG_SMT

2024-12-23 Thread Jonathan Cameron
On Fri, 20 Dec 2024 15:53:13 +0800 Yicong Yang wrote: > From: Yicong Yang > > Enable HOTPLUG_SMT for SMT control. > > Signed-off-by: Yicong Yang FWIW LGTM Reviewed-by: Jonathan Cameron > --- > arch/arm64/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/arch/arm64/Kconfig b

Re: [PATCH v10 3/4] arm64: topology: Support SMT control on ACPI based system

2024-12-23 Thread Jonathan Cameron
On Fri, 20 Dec 2024 15:53:12 +0800 Yicong Yang wrote: > From: Yicong Yang > > For ACPI we'll build the topology from PPTT and we cannot directly > get the SMT number of each core. Instead using a temporary xarray > to record the heterogeneous information (from ACPI_PPTT_ACPI_IDENTICAL) > and SM

Re: [PATCH v10 1/4] cpu/SMT: Provide a default topology_is_primary_thread()

2024-12-23 Thread Jonathan Cameron
On Fri, 20 Dec 2024 15:59:27 +0800 Yicong Yang wrote: > On 2024/12/20 15:53, Yicong Yang wrote: > > From: Yicong Yang > > > > Currently if architectures want to support HOTPLUG_SMT they need to > > provide a topology_is_primary_thread() telling the framework which > > thread in the SMT cannot o

Re: [PATCH v10 2/4] arch_topology: Support SMT control for OF based system

2024-12-23 Thread Jonathan Cameron
On Fri, 20 Dec 2024 15:53:11 +0800 Yicong Yang wrote: > From: Yicong Yang > > On building the topology from the devicetree, we've already > gotten the SMT thread number of each core. Update the largest > SMT thread number and enable the SMT control by the end of > topology parsing. > > The cor

Re: KVM: PPC: Book3E: KVM HV host module doesn't work anymore

2024-12-23 Thread Paolo Bonzini
On Mon, Dec 23, 2024 at 3:41 PM Christian Zigotzky wrote: Bisecting: a merge base must be tested [e9001a382fa2c256229adc68d55212028b01d515] Merge tag 'kvmarm-fixes-6.12-3' of git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm into HEAD The host system doesn't boot. Unfortunately, t

KVM: PPC: Book3E: KVM HV host module doesn't work anymore

2024-12-23 Thread Christian Zigotzky
On 22/12/24 18:49, Paolo Bonzini wrote: > > Go on with > git checkout -b bisection-rebase b467ab82a9fde4b46c0cd2c299220857afb0e0d4 > git rebase v6.12 > # check that it boots. if it fails to boot, please report this. if it succeds, continue: > git bisect start > git bisect bad bisection-rebase >

[PATCH] tools/perf: Fix segfault during perf record --off-cpu when debuginfo is not enabled

2024-12-23 Thread Athira Rajeev
When kernel is built without debuginfo, running perf record with --off-cpu results in segfault as below: ./perf record --off-cpu -e dummy sleep 1 libbpf: kernel BTF is missing at '/sys/kernel/btf/vmlinux', was CONFIG_DEBUG_INFO_BTF enabled? libbpf: failed to find '.BTF' ELF section in /

[PATCH] tools/perf: Fix return code for lock_contention_prepare

2024-12-23 Thread Athira Rajeev
perf lock contention returns zero exit value even if the lock contention BPF setup failed. # ./perf lock con -b true libbpf: kernel BTF is missing at '/sys/kernel/btf/vmlinux', was CONFIG_DEBUG_INFO_BTF enabled? libbpf: failed to find '.BTF' ELF section in /lib/modules/6.13.0-rc3+/build

Re: Missing '#size-cells' in /ht@0,f2000000/pci@8/mac-io@7/i2s@0 on G5/G4 (kernel 6.13-rc3)

2024-12-23 Thread Michael Ellerman
Erhard Furtner writes: > Greetings! > > I am aware there is commit cf89c9434af122f28a3552e6f9cc5158c33ce50a > (already merged in v6.13-rc3) which fixes some of the "Missing > '#size-cells' errors" but there is more: > > [ cut here ] > hub 3-0:1.0: USB hub found > Missing '#

watchdog: BUG: soft lockup

2024-12-23 Thread wzs
Hello, when fuzzing the Linux kernel, I triggered many "watch: BUG: soft lockup" warnings. I am not sure whether this is an issue with the kernel or with the fuzzing program I ran. (The same fuzzing program, when tested on kernel versions from Linux-6.7.0 to 6.12.0, triggers the 'watchdog: BUG: sof

[PATCH v3 17/17] mm: pgtable: introduce generic pagetable_dtor_free()

2024-12-23 Thread Qi Zheng
The pte_free(), pmd_free(), __pud_free() and __p4d_free() in asm-generic/pgalloc.h and the generic __tlb_remove_table() are basically the same, so let's introduce pagetable_dtor_free() to deduplicate them. In addition, the pagetable_dtor_free() in s390 actually does the same thing, so let's s390 a

[PATCH v3 16/17] mm: pgtable: remove tlb_remove_ptdesc()

2024-12-23 Thread Qi Zheng
Just like removing tlb_remove_page_ptdesc(), remove tlb_remove_ptdesc() as well, and make callers call tlb_remove_table() directly. Signed-off-by: Qi Zheng Originally-by: Peter Zijlstra (Intel) --- arch/arm/include/asm/tlb.h | 8 ++-- arch/arm64/include/asm/tlb.h | 16 ---

[PATCH v3 15/17] mm: pgtable: remove tlb_remove_page_ptdesc()

2024-12-23 Thread Qi Zheng
Here we are explicitly dealing with struct page, and the following logic semms strange: tlb_remove_page_ptdesc((tlb), (page_ptdesc(pte))); tlb_remove_page_ptdesc --> tlb_remove_page(tlb, ptdesc_page(pt)); So remove tlb_remove_page_ptdesc() and make callers call tlb_remove_page() directly. Signe

[PATCH v3 14/17] mm: pgtable: move __tlb_remove_table_one() in x86 to generic file

2024-12-23 Thread Qi Zheng
The __tlb_remove_table_one() in x86 does not contain architecture-specific content, so move it to the generic file. Signed-off-by: Qi Zheng --- arch/x86/include/asm/tlb.h | 19 --- mm/mmu_gather.c| 20 ++-- 2 files changed, 18 insertions(+), 21 deletio

[PATCH v3 13/17] mm: pgtable: introduce generic __tlb_remove_table()

2024-12-23 Thread Qi Zheng
Several architectures (arm, arm64, riscv and x86) define exactly the same __tlb_remove_table(), just introduce generic __tlb_remove_table() to eliminate these duplications. The s390 __tlb_remove_table() is nearly the same, so also make s390 __tlb_remove_table() version generic. Signed-off-by: Qi

[PATCH v3 12/17] s390: pgtable: also move pagetable_dtor() of PxD to __tlb_remove_table()

2024-12-23 Thread Qi Zheng
To unify the PxD and PTE TLB free path, also move the pagetable_dtor() of PMD|PUD|P4D to __tlb_remove_table(). Signed-off-by: Qi Zheng Suggested-by: Peter Zijlstra (Intel) Cc: linux-s...@vger.kernel.org --- arch/s390/include/asm/tlb.h | 3 --- arch/s390/mm/pgalloc.c | 14 -- 2

[PATCH v3 11/17] x86: pgtable: move pagetable_dtor() to __tlb_remove_table()

2024-12-23 Thread Qi Zheng
Move pagetable_dtor() to __tlb_remove_table(), so that ptlock and page table pages can be freed together (regardless of whether RCU is used). This prevents the use-after-free problem where the ptlock is freed immediately but the page table pages is freed later via RCU. Page tables shouldn't have s

[PATCH v3 10/17] riscv: pgtable: move pagetable_dtor() to __tlb_remove_table()

2024-12-23 Thread Qi Zheng
Move pagetable_dtor() to __tlb_remove_table(), so that ptlock and page table pages can be freed together (regardless of whether RCU is used). This prevents the use-after-free problem where the ptlock is freed immediately but the page table pages is freed later via RCU. Page tables shouldn't have s

[PATCH v3 09/17] arm64: pgtable: move pagetable_dtor() to __tlb_remove_table()

2024-12-23 Thread Qi Zheng
Move pagetable_dtor() to __tlb_remove_table(), so that ptlock and page table pages can be freed together (regardless of whether RCU is used). This prevents the use-after-free problem where the ptlock is freed immediately but the page table pages is freed later via RCU. Page tables shouldn't have s

[PATCH v3 08/17] arm: pgtable: move pagetable_dtor() to __tlb_remove_table()

2024-12-23 Thread Qi Zheng
Move pagetable_dtor() to __tlb_remove_table(), so that ptlock and page table pages can be freed together (regardless of whether RCU is used). This prevents the use-after-free problem where the ptlock is freed immediately but the page table pages is freed later via RCU. Page tables shouldn't have s

[PATCH v3 07/17] mm: pgtable: introduce pagetable_dtor()

2024-12-23 Thread Qi Zheng
The pagetable_p*_dtor() are exactly the same except for the handling of ptlock. If we make ptlock_free() handle the case where ptdesc->ptl is NULL and remove VM_BUG_ON_PAGE() from pmd_ptlock_free(), we can unify pagetable_p*_dtor() into one function. Let's introduce pagetable_dtor() to do this. La

[PATCH v3 06/17] s390: pgtable: add statistics for PUD and P4D level page table

2024-12-23 Thread Qi Zheng
Like PMD and PTE level page table, also add statistics for PUD and P4D page table. Signed-off-by: Qi Zheng Suggested-by: Peter Zijlstra (Intel) Cc: linux-s...@vger.kernel.org --- arch/s390/include/asm/pgalloc.h | 29 +++--- arch/s390/include/asm/tlb.h | 37 ++

[PATCH v3 05/17] arm64: pgtable: use mmu gather to free p4d level page table

2024-12-23 Thread Qi Zheng
Like other levels of page tables, also use mmu gather mechanism to free p4d level page table. Signed-off-by: Qi Zheng Originally-by: Peter Zijlstra (Intel) Cc: linux-arm-ker...@lists.infradead.org --- arch/arm64/include/asm/pgalloc.h | 1 - arch/arm64/include/asm/tlb.h | 14 ++

[PATCH v3 04/17] mm: pgtable: add statistics for P4D level page table

2024-12-23 Thread Qi Zheng
Like other levels of page tables, add statistics for P4D level page table. Signed-off-by: Qi Zheng Originally-by: Peter Zijlstra (Intel) --- arch/riscv/include/asm/pgalloc.h | 6 +- arch/x86/mm/pgtable.c| 3 +++ include/asm-generic/pgalloc.h| 2 ++ include/linux/mm.h

[PATCH v3 03/17] asm-generic: pgalloc: Provide generic p4d_{alloc_one,free}

2024-12-23 Thread Qi Zheng
From: Kevin Brodsky Four architectures currently implement 5-level pgtables: arm64, riscv, x86 and s390. The first three have essentially the same implementation for p4d_alloc_one() and p4d_free(), so we've got an opportunity to reduce duplication like at the lower levels. Provide a generic vers

[PATCH v3 02/17] riscv: mm: Skip pgtable level check in {pud,p4d}_alloc_one

2024-12-23 Thread Qi Zheng
From: Kevin Brodsky {pmd,pud,p4d}_alloc_one() is never called if the corresponding page table level is folded, as {pmd,pud,p4d}_alloc() already does the required check. We can therefore remove the runtime page table level checks in {pud,p4d}_alloc_one. The PUD helper becomes equivalent to the gen

[PATCH v3 01/17] Revert "mm: pgtable: make ptlock be freed by RCU"

2024-12-23 Thread Qi Zheng
This reverts commit 2f3443770437e49abc39af26962d293851cbab6d. Signed-off-by: Qi Zheng --- include/linux/mm.h | 2 +- include/linux/mm_types.h | 9 + mm/memory.c | 22 ++ 3 files changed, 8 insertions(+), 25 deletions(-) diff --git a/include/linux

[PATCH v3 00/17] move pagetable_*_dtor() to __tlb_remove_table()

2024-12-23 Thread Qi Zheng
Changes in v3: - take patch #5 and #6 from Kevin Brodsky's patch series below. Link: https://lore.kernel.org/lkml/20241219164425.2277022-1-kevin.brod...@arm.com/ - separate the statistics part from [PATCH v2 02/15] as [PATCH v3 04/17], and replace the rest part with Kevin Brodsky's patch #

Re: [PATCH v7] mm/memblock: Add memblock_alloc_or_panic interface

2024-12-23 Thread Borislav Petkov
On Mon, Dec 23, 2024 at 03:32:01PM +0800, Weikang Guo wrote: > First of all, thank you for your reminder and patience. In fact, this > is the first time I received a patch discussion when submitting a > patch. > About Reviewed-by or Acked-by tags, I will not add it myself in the > future. Regarding