Skip to content
Snippets Groups Projects
  1. Apr 17, 2025
  2. Mar 31, 2025
  3. Mar 25, 2025
    • Detlev Casanova's avatar
      arm64: dts: rockchip: Add rkvdec2 Video Decoder on rk3588(s) · a5ea8cb0
      Detlev Casanova authored
      
      Add the rkvdec2 Video Decoder to the RK3588s devicetree.
      
      Signed-off-by: default avatarDetlev Casanova <detlev.casanova@collabora.com>
      a5ea8cb0
    • Detlev Casanova's avatar
      media: dt-bindings: rockchip: Document RK3588 Video Decoder bindings · 2a81de87
      Detlev Casanova authored
      
      Document the Rockchip RK3588 Video Decoder bindings.
      
      Signed-off-by: default avatarDetlev Casanova <detlev.casanova@collabora.com>
      2a81de87
    • Detlev Casanova's avatar
      media: rockchip: Introduce the rkvdec2 driver · 46b3b9bc
      Detlev Casanova authored
      
      This driver supports the second generation of the Rockchip Video
      decoder, also known as vdpu34x.
      It is currently only used on the RK3588(s) SoC.
      
      There are 2 decoders on the RK3588 SoC that can work in pair to decode
      8K video at 30 FPS but currently, only using one core at a time is
      supported.
      
      Scheduling requests between the two cores will be implemented later.
      
      The core supports H264, HEVC, VP9 and AVS2 decoding but this driver
      currently only supports H264.
      
      The driver is based on rkvdec and they may share some code in the
      future.
      The decision to make a different driver is mainly because rkvdec2 has
      more features and can work with multiple cores.
      
      The registers are mapped in a struct in RAM using bitfields. It is IO
      copied to the HW when all values are configured.
      The decision to use such a struct instead of writing buffers one by one
      is based on the following reasons:
       - Rockchip cores are known to misbehave when registers are not written
         in address order,
       - Those cores also need the software to write all registers, even if
         they are written their default values or are not related to the task
         (this core will not start decoding some H264 frames if some VP9
         registers are not written to 0)
       - In the future, to support multiple cores, the scheduler could be
         optimized by storing the precomputed registers values and copy them
         to the HW as soos as a core becomes available.
      
      This makes the code more readable and may bring performance improvements
      in future features.
      
      Signed-off-by: default avatarDetlev Casanova <detlev.casanova@collabora.com>
      46b3b9bc
    • Detlev Casanova's avatar
      media: rockchip: Move H264 CABAC table to header file · 915d4e2b
      Detlev Casanova authored
      
      The table will be shared with the rkvdec2 driver in following commits.
      
      As HW formatted CABAC tables can be shared between drivers, it makes sense
      to group them in an include folder.
      
      Each driver can include the tables they need so that all tables are not
      built in the kernel, but rather in each driver, if the driver is enabled.
      
      Signed-off-by: default avatarDetlev Casanova <detlev.casanova@collabora.com>
      915d4e2b
    • Detlev Casanova's avatar
      media: v4l2-ctrls-core: Set frame_mbs_only_flag by default in h264 SPS · c0d0cbb5
      Detlev Casanova authored
      
      This flag is needed for drivers that have a minimum height lower
      than 32 pixels.
      
      This is because when the flag is not set, the height is halved, which
      would make it lower than 16 pixels if min height is 16.
      
      Setting this flag will keep the height at its value and have a valid
      SPS.
      
      Signed-off-by: default avatarDetlev Casanova <detlev.casanova@collabora.com>
      c0d0cbb5
    • Jonas Karlman's avatar
      media: v4l2: Add NV15 and NV20 pixel formats · fa769a4d
      Jonas Karlman authored and Detlev Casanova's avatar Detlev Casanova committed
      
      Add NV15 and NV20 pixel formats used by the Rockchip Video Decoder for
      10-bit buffers.
      
      NV15 and NV20 is 10-bit 4:2:0/4:2:2 semi-planar YUV formats similar to
      NV12 and NV16, using 10-bit components with no padding between each
      component. Instead, a group of 4 luminance/chrominance samples are
      stored over 5 bytes in little endian order:
      
      YYYY = UVUV = 4 * 10 bits = 40 bits = 5 bytes
      
      The '15' and '20' suffix refers to the optimum effective bits per pixel
      which is achieved when the total number of luminance samples is a
      multiple of 8 for NV15 and 4 for NV20.
      
      Signed-off-by: default avatarJonas Karlman <jonas@kwiboo.se>
      Tested-by: default avatarNicolas Dufresne <nicolas.dufresne@collabora.com>
      Tested-by: default avatarChristopher Obbard <chris.obbard@collabora.com>
      fa769a4d
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 2d09a944
      Linus Torvalds authored
      Pull arm64 updates from Catalin Marinas:
       "Nothing major this time around.
      
        Apart from the usual perf/PMU updates, some page table cleanups, the
        notable features are average CPU frequency based on the AMUv1
        counters, CONFIG_HOTPLUG_SMT and MOPS instructions (memcpy/memset) in
        the uaccess routines.
      
        Perf and PMUs:
      
         - Support for the 'Rainier' CPU PMU from Arm
      
         - Preparatory driver changes and cleanups that pave the way for BRBE
           support
      
         - Support for partial virtualisation of the Apple-M1 PMU
      
         - Support for the second event filter in Arm CSPMU designs
      
         - Minor fixes and cleanups (CMN and DWC PMUs)
      
         - Enable EL2 requirements for FEAT_PMUv3p9
      
        Power, CPU topology:
      
         - Support for AMUv1-based average CPU frequency
      
         - Run-time SMT control wired up for arm64 (CONFIG_HOTPLUG_SMT). It
           adds a generic topology_is_primary_thread() function overridden by
           x86 and powerpc
      
        New(ish) features:
      
         - MOPS (memcpy/memset) support for the uaccess routines
      
        Security/confidential compute:
      
         - Fix the DMA address for devices used in Realms with Arm CCA. The
           CCA architecture uses the address bit to differentiate between
           shared and private addresses
      
         - Spectre-BHB: assume CPUs Linux doesn't know about vulnerable by
           default
      
        Memory management clean-ups:
      
         - Drop the P*D_TABLE_BIT definition in preparation for 128-bit PTEs
      
         - Some minor page table accessor clean-ups
      
         - PIE/POE (permission indirection/overlay) helpers clean-up
      
        Kselftests:
      
         - MTE: skip hugetlb tests if MTE is not supported on such mappings
           and user correct naming for sync/async tag checking modes
      
        Miscellaneous:
      
         - Add a PKEY_UNRESTRICTED definition as 0 to uapi (toolchain people
           request)
      
         - Sysreg updates for new register fields
      
         - CPU type info for some Qualcomm Kryo cores"
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (72 commits)
        arm64: mm: Don't use %pK through printk
        perf/arm_cspmu: Fix missing io.h include
        arm64: errata: Add newer ARM cores to the spectre_bhb_loop_affected() lists
        arm64: cputype: Add MIDR_CORTEX_A76AE
        arm64: errata: Add KRYO 2XX/3XX/4XX silver cores to Spectre BHB safe list
        arm64: errata: Assume that unknown CPUs _are_ vulnerable to Spectre BHB
        arm64: errata: Add QCOM_KRYO_4XX_GOLD to the spectre_bhb_k24_list
        arm64/sysreg: Enforce whole word match for open/close tokens
        arm64/sysreg: Fix unbalanced closing block
        arm64: Kconfig: Enable HOTPLUG_SMT
        arm64: topology: Support SMT control on ACPI based system
        arch_topology: Support SMT control for OF based system
        cpu/SMT: Provide a default topology_is_primary_thread()
        arm64/mm: Define PTDESC_ORDER
        perf/arm_cspmu: Add PMEVFILT2R support
        perf/arm_cspmu: Generalise event filtering
        perf/arm_cspmu: Move register definitons to header
        arm64/kernel: Always use level 2 or higher for early mappings
        arm64/mm: Drop PXD_TABLE_BIT
        arm64/mm: Check pmd_table() in pmd_trans_huge()
        ...
      2d09a944
    • Catalin Marinas's avatar
      Merge branch 'for-next/el2-enable-feat-pmuv3p9' into for-next/core · 64fa6b93
      Catalin Marinas authored
      * for-next/el2-enable-feat-pmuv3p9:
        : Enable EL2 requirements for FEAT_PMUv3p9
        arm64/boot: Enable EL2 requirements for FEAT_PMUv3p9
      64fa6b93
    • Catalin Marinas's avatar
      Merge branch 'for-next/smt-control' into for-next/core · 8ae9e2d8
      Catalin Marinas authored
      * for-next/smt-control:
        : Support SMT control on arm64
        arm64: Kconfig: Enable HOTPLUG_SMT
        arm64: topology: Support SMT control on ACPI based system
        arch_topology: Support SMT control for OF based system
        cpu/SMT: Provide a default topology_is_primary_thread()
      8ae9e2d8
    • Catalin Marinas's avatar
      Merge branches 'for-next/amuv1-avg-freq', 'for-next/pkey_unrestricted',... · 8cc14fdc
      Catalin Marinas authored
      Merge branches 'for-next/amuv1-avg-freq', 'for-next/pkey_unrestricted', 'for-next/sysreg', 'for-next/misc', 'for-next/pgtable-cleanups', 'for-next/kselftest', 'for-next/uaccess-mops', 'for-next/pie-poe-cleanup', 'for-next/cputype-kryo', 'for-next/cca-dma-address', 'for-next/drop-pxd_table_bit' and 'for-next/spectre-bhb-assume-vulnerable', remote-tracking branch 'arm64/for-next/perf' into for-next/core
      
      * arm64/for-next/perf:
        perf/arm_cspmu: Fix missing io.h include
        perf/arm_cspmu: Add PMEVFILT2R support
        perf/arm_cspmu: Generalise event filtering
        perf/arm_cspmu: Move register definitons to header
        drivers/perf: apple_m1: Support host/guest event filtering
        drivers/perf: apple_m1: Refactor event select/filter configuration
        perf/dwc_pcie: fix duplicate pci_dev devices
        perf/dwc_pcie: fix some unreleased resources
        perf/arm-cmn: Minor event type housekeeping
        perf: arm_pmu: Move PMUv3-specific data
        perf: apple_m1: Don't disable counter in m1_pmu_enable_event()
        perf: arm_v7_pmu: Don't disable counter in (armv7|krait_|scorpion_)pmu_enable_event()
        perf: arm_v7_pmu: Drop obvious comments for enabling/disabling counters and interrupts
        perf: arm_pmuv3: Don't disable counter in armv8pmu_enable_event()
        perf: arm_pmu: Don't disable counter in armpmu_add()
        perf: arm_pmuv3: Call kvm_vcpu_pmu_resync_el0() before enabling counters
        perf: arm_pmuv3: Add support for ARM Rainier PMU
      
      * for-next/amuv1-avg-freq:
        : Add support for AArch64 AMUv1-based average freq
        arm64: Utilize for_each_cpu_wrap for reference lookup
        arm64: Update AMU-based freq scale factor on entering idle
        arm64: Provide an AMU-based version of arch_freq_get_on_cpu
        cpufreq: Introduce an optional cpuinfo_avg_freq sysfs entry
        cpufreq: Allow arch_freq_get_on_cpu to return an error
        arch_topology: init capacity_freq_ref to 0
      
      * for-next/pkey_unrestricted:
        : mm/pkey: Add PKEY_UNRESTRICTED macro
        selftest/powerpc/mm/pkey: fix build-break introduced by commit 00894c3f
        selftests/powerpc: Use PKEY_UNRESTRICTED macro
        selftests/mm: Use PKEY_UNRESTRICTED macro
        mm/pkey: Add PKEY_UNRESTRICTED macro
      
      * for-next/sysreg:
        : arm64 sysreg updates
        arm64/sysreg: Enforce whole word match for open/close tokens
        arm64/sysreg: Fix unbalanced closing block
        arm64/sysreg: Add register fields for HFGWTR2_EL2
        arm64/sysreg: Add register fields for HFGRTR2_EL2
        arm64/sysreg: Add register fields for HFGITR2_EL2
        arm64/sysreg: Add register fields for HDFGWTR2_EL2
        arm64/sysreg: Add register fields for HDFGRTR2_EL2
        arm64/sysreg: Update register fields for ID_AA64MMFR0_EL1
      
      * for-next/misc:
        : Miscellaneous arm64 patches
        arm64: mm: Don't use %pK through printk
        arm64/fpsimd: Remove unused declaration fpsimd_kvm_prepare()
      
      * for-next/pgtable-cleanups:
        : arm64 pgtable accessors cleanup
        arm64/mm: Define PTDESC_ORDER
        arm64/kernel: Always use level 2 or higher for early mappings
        arm64/hugetlb: Consistently use pud_sect_supported()
        arm64/mm: Convert __pte_to_phys() and __phys_to_pte_val() as functions
      
      * for-next/kselftest:
        : arm64 kselftest updates
        kselftest/arm64: mte: Skip the hugetlb tests if MTE not supported on such mappings
        kselftest/arm64: mte: Use the correct naming for tag check modes in check_hugetlb_options.c
      
      * for-next/uaccess-mops:
        : Implement the uaccess memory copy/set using MOPS instructions
        arm64: lib: Use MOPS for usercopy routines
        arm64: mm: Handle PAN faults on uaccess CPY* instructions
        arm64: extable: Add fixup handling for uaccess CPY* instructions
      
      * for-next/pie-poe-cleanup:
        : PIE/POE helpers cleanup
        arm64/sysreg: Move POR_EL0_INIT to asm/por.h
        arm64/sysreg: Rename POE_RXW to POE_RWX
        arm64/sysreg: Improve PIR/POR helpers
      
      * for-next/cputype-kryo:
        : Add cputype info for some Qualcomm Kryo cores
        arm64: cputype: Add comments about Qualcomm Kryo 5XX and 6XX cores
        arm64: cputype: Add QCOM_CPU_PART_KRYO_3XX_GOLD
      
      * for-next/cca-dma-address:
        : Fix DMA address for devices used in realms with Arm CCA
        arm64: realm: Use aliased addresses for device DMA to shared buffers
        dma: Introduce generic dma_addr_*crypted helpers
        dma: Fix encryption bit clearing for dma_to_phys
      
      * for-next/drop-pxd_table_bit:
        : Drop the arm64 PXD_TABLE_BIT (clean-up in preparation for 128-bit PTEs)
        arm64/mm: Drop PXD_TABLE_BIT
        arm64/mm: Check pmd_table() in pmd_trans_huge()
        arm64/mm: Check PUD_TYPE_TABLE in pud_bad()
        arm64/mm: Check PXD_TYPE_TABLE in [p4d|pgd]_bad()
        arm64/mm: Clear PXX_TYPE_MASK and set PXD_TYPE_SECT in [pmd|pud]_mkhuge()
        arm64/mm: Clear PXX_TYPE_MASK in mk_[pmd|pud]_sect_prot()
        arm64/ptdump: Test PMD_TYPE_MASK for block mapping
        KVM: arm64: ptdump: Test PMD_TYPE_MASK for block mapping
      
      * for-next/spectre-bhb-assume-vulnerable:
        : Rework Spectre BHB mitigations to not assume "safe"
        arm64: errata: Add newer ARM cores to the spectre_bhb_loop_affected() lists
        arm64: cputype: Add MIDR_CORTEX_A76AE
        arm64: errata: Add KRYO 2XX/3XX/4XX silver cores to Spectre BHB safe list
        arm64: errata: Assume that unknown CPUs _are_ vulnerable to Spectre BHB
        arm64: errata: Add QCOM_KRYO_4XX_GOLD to the spectre_bhb_k24_list
      8cc14fdc
    • Linus Torvalds's avatar
      Merge tag 'timers-vdso-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 317a76a9
      Linus Torvalds authored
      Pull VDSO infrastructure updates from Thomas Gleixner:
      
       - Consolidate the VDSO storage
      
         The VDSO data storage and data layout has been largely architecture
         specific for historical reasons. That increases the maintenance
         effort and causes inconsistencies over and over.
      
         There is no real technical reason for architecture specific layouts
         and implementations. The architecture specific details can easily be
         integrated into a generic layout, which also reduces the amount of
         duplicated code for managing the mappings.
      
         Convert all architectures over to a unified layout and common mapping
         infrastructure. This splits the VDSO data layout into subsystem
         specific blocks, timekeeping, random and architecture parts, which
         provides a better structure and allows to improve and update the
         functionalities without conflict and interaction.
      
       - Rework the timekeeping data storage
      
         The current implementation is designed for exposing system
         timekeeping accessors, which was good enough at the time when it was
         designed.
      
         PTP and Time Sensitive Networking (TSN) change that as there are
         requirements to expose independent PTP clocks, which are not related
         to system timekeeping.
      
         Replace the monolithic data storage by a structured layout, which
         allows to add support for independent PTP clocks on top while reusing
         both the data structures and the time accessor implementations.
      
      * tag 'timers-vdso-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (55 commits)
        sparc/vdso: Always reject undefined references during linking
        x86/vdso: Always reject undefined references during linking
        vdso: Rework struct vdso_time_data and introduce struct vdso_clock
        vdso: Move architecture related data before basetime data
        powerpc/vdso: Prepare introduction of struct vdso_clock
        arm64/vdso: Prepare introduction of struct vdso_clock
        x86/vdso: Prepare introduction of struct vdso_clock
        time/namespace: Prepare introduction of struct vdso_clock
        vdso/namespace: Rename timens_setup_vdso_data() to reflect new vdso_clock struct
        vdso/vsyscall: Prepare introduction of struct vdso_clock
        vdso/gettimeofday: Prepare helper functions for introduction of struct vdso_clock
        vdso/gettimeofday: Prepare do_coarse_timens() for introduction of struct vdso_clock
        vdso/gettimeofday: Prepare do_coarse() for introduction of struct vdso_clock
        vdso/gettimeofday: Prepare do_hres_timens() for introduction of struct vdso_clock
        vdso/gettimeofday: Prepare do_hres() for introduction of struct vdso_clock
        vdso/gettimeofday: Prepare introduction of struct vdso_clock
        vdso/helpers: Prepare introduction of struct vdso_clock
        vdso/datapage: Define vdso_clock to prepare for multiple PTP clocks
        vdso: Make vdso_time_data cacheline aligned
        arm64: Make asm/cache.h compatible with vDSO
        ...
      317a76a9
    • Linus Torvalds's avatar
      Merge tag 'timers-cleanups-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a50b4fe0
      Linus Torvalds authored
      Pull timer cleanups from Thomas Gleixner:
       "A treewide hrtimer timer cleanup
      
        hrtimers are initialized with hrtimer_init() and a subsequent store to
        the callback pointer. This turned out to be suboptimal for the
        upcoming Rust integration and is obviously a silly implementation to
        begin with.
      
        This cleanup replaces the hrtimer_init(T); T->function = cb; sequence
        with hrtimer_setup(T, cb);
      
        The conversion was done with Coccinelle and a few manual fixups.
      
        Once the conversion has completely landed in mainline, hrtimer_init()
        will be removed and the hrtimer::function becomes a private member"
      
      * tag 'timers-cleanups-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (100 commits)
        wifi: rt2x00: Switch to use hrtimer_update_function()
        io_uring: Use helper function hrtimer_update_function()
        serial: xilinx_uartps: Use helper function hrtimer_update_function()
        ASoC: fsl: imx-pcm-fiq: Switch to use hrtimer_setup()
        RDMA: Switch to use hrtimer_setup()
        virtio: mem: Switch to use hrtimer_setup()
        drm/vmwgfx: Switch to use hrtimer_setup()
        drm/xe/oa: Switch to use hrtimer_setup()
        drm/vkms: Switch to use hrtimer_setup()
        drm/msm: Switch to use hrtimer_setup()
        drm/i915/request: Switch to use hrtimer_setup()
        drm/i915/uncore: Switch to use hrtimer_setup()
        drm/i915/pmu: Switch to use hrtimer_setup()
        drm/i915/perf: Switch to use hrtimer_setup()
        drm/i915/gvt: Switch to use hrtimer_setup()
        drm/i915/huc: Switch to use hrtimer_setup()
        drm/amdgpu: Switch to use hrtimer_setup()
        stm class: heartbeat: Switch to use hrtimer_setup()
        i2c: Switch to use hrtimer_setup()
        iio: Switch to use hrtimer_setup()
        ...
      a50b4fe0
    • Linus Torvalds's avatar
      Merge tag 'timers-core-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d5048d11
      Linus Torvalds authored
      Pull timer core updates from Thomas Gleixner:
      
       - Fix a memory ordering issue in posix-timers
      
         Posix-timer lookup is lockless and reevaluates the timer validity
         under the timer lock, but the update which validates the timer is not
         protected by the timer lock. That allows the store to be reordered
         against the initialization stores, so that the lookup side can
         observe a partially initialized timer. That's mostly a theoretical
         problem, but incorrect nevertheless.
      
       - Fix a long standing inconsistency of the coarse time getters
      
         The coarse time getters read the base time of the current update
         cycle without reading the actual hardware clock. NTP frequency
         adjustment can set the base time backwards. The fine grained
         interfaces compensate this by reading the clock and applying the new
         conversion factor, but the coarse grained time getters use the base
         time directly. That allows the user to observe time going backwards.
      
         Cure it by always forwarding base time, when NTP changes the
         frequency with an immediate step.
      
       - Rework of posix-timer hashing
      
         The posix-timer hash is not scalable and due to the CRIU timer
         restore mechanism prone to massive contention on the global hash
         bucket lock.
      
         Replace the global hash lock with a fine grained per bucket locking
         scheme to address that.
      
       - Rework the proc/$PID/timers interface.
      
         /proc/$PID/timers is provided for CRIU to be able to restore a timer.
         The printout happens with sighand lock held and interrupts disabled.
         That's not required as this can be done with RCU protection as well.
      
       - Provide a sane mechanism for CRIU to restore a timer ID
      
         CRIU restores timers by creating and deleting them until the kernel
         internal per process ID counter reached the requested ID. That's
         horribly slow for sparse timer IDs.
      
         Provide a prctl() which allows CRIU to restore a timer with a given
         ID. When enabled the ID pointer is used as input pointer to read the
         requested ID from user space. When disabled, the normal allocation
         scheme (next ID) is active as before. This is backwards compatible
         for both kernel and user space.
      
       - Make hrtimer_update_function() less expensive.
      
         The sanity checks are valuable, but expensive for high frequency
         usage in io/uring. Make the debug checks conditional and enable them
         only when lockdep is enabled.
      
       - Small updates, cleanups and improvements
      
      * tag 'timers-core-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (27 commits)
        selftests/timers: Improve skew_consistency by testing with other clockids
        timekeeping: Fix possible inconsistencies in _COARSE clockids
        posix-timers: Drop redundant memset() invocation
        selftests/timers/posix-timers: Add a test for exact allocation mode
        posix-timers: Provide a mechanism to allocate a given timer ID
        posix-timers: Dont iterate /proc/$PID/timers with sighand:: Siglock held
        posix-timers: Make per process list RCU safe
        posix-timers: Avoid false cacheline sharing
        posix-timers: Switch to jhash32()
        posix-timers: Improve hash table performance
        posix-timers: Make signal_struct:: Next_posix_timer_id an atomic_t
        posix-timers: Make lock_timer() use guard()
        posix-timers: Rework timer removal
        posix-timers: Simplify lock/unlock_timer()
        posix-timers: Use guards in a few places
        posix-timers: Remove SLAB_PANIC from kmem cache
        posix-timers: Remove a few paranoid warnings
        posix-timers: Cleanup includes
        posix-timers: Add cond_resched() to posix_timer_add() search loop
        posix-timers: Initialise timer before adding it to the hash table
        ...
      d5048d11
    • Linus Torvalds's avatar
      Merge tag 'locking-futex-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0ae2062e
      Linus Torvalds authored
      Pull futex update from Thomas Gleixner:
       "A single update for futexes:
      
        Use a precomputed mask for the hash computation instead of computing
        the mask from the size on every invocation"
      
      * tag 'locking-futex-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        futex: Use a hashmask instead of hashsize
      0ae2062e
    • Linus Torvalds's avatar
      Merge tag 'irq-drivers-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 0f404646
      Linus Torvalds authored
      Pull irq driver updates from Thomas Gleixner:
      
       - Support for hard indices on RISC-V. The hart index identifies a hart
         (core) within a specific interrupt domain in RISC-V's Priviledged
         Architecture.
      
       - Rework of the RISC-V MSI driver
      
         This moves the driver over to the generic MSI library and solves the
         affinity problem of unmaskable PCI/MSI controllers. Unmaskable
         PCI/MSI controllers are prone to lose interrupts when the MSI message
         is updated to change the affinity because the message write consists
         of three 32-bit subsequent writes, which update address and data. As
         these writes are non-atomic versus the device raising an interrupt,
         the device can observe a half written update and issue an interrupt
         on the wrong vector. This is mitiated by a carefully orchestrated
         step by step update and the observation of an eventually pending
         interrupt on the CPU which issues the update. The algorithm follows
         the well established method of the X86 MSI driver.
      
       - A new driver for the RISC-V Sophgo SG2042 MSI controller
      
       - Overhaul of the Renesas RZQ2L driver
      
         Simplification of the probe function by using devm_*() mechanisms,
         which avoid the endless list of error prone gotos in the failure
         paths.
      
       - Expand the Renesas RZV2H driver to support RZ/G3E SoCs
      
       - A workaround for Rockchip 3568002 erratum in the GIC-V3 driver to
         ensure that the addressing is limited to the lower 32-bit of the
         physical address space.
      
       - Add support for the Allwinner AS23 NMI controller
      
       - Expand the IMX irqsteer driver to handle up to 960 input interrupts
      
       - The usual small updates, cleanups and device tree changes
      
      * tag 'irq-drivers-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits)
        irqchip/imx-irqsteer: Support up to 960 input interrupts
        irqchip/sunxi-nmi: Support Allwinner A523 NMI controller
        dt-bindings: irq: sun7i-nmi: Document the Allwinner A523 NMI controller
        irqchip/davinci-cp-intc: Remove public header
        irqchip/renesas-rzv2h: Add RZ/G3E support
        irqchip/renesas-rzv2h: Update macros ICU_TSSR_TSSEL_{MASK,PREP}
        irqchip/renesas-rzv2h: Update TSSR_TIEN macro
        irqchip/renesas-rzv2h: Add field_width to struct rzv2h_hw_info
        irqchip/renesas-rzv2h: Add max_tssel to struct rzv2h_hw_info
        irqchip/renesas-rzv2h: Add struct rzv2h_hw_info with t_offs variable
        irqchip/renesas-rzv2h: Use devm_pm_runtime_enable()
        irqchip/renesas-rzv2h: Use devm_reset_control_get_exclusive_deasserted()
        irqchip/renesas-rzv2h: Simplify rzv2h_icu_init()
        irqchip/renesas-rzv2h: Drop irqchip from struct rzv2h_icu_priv
        irqchip/renesas-rzv2h: Fix wrong variable usage in rzv2h_tint_set_type()
        dt-bindings: interrupt-controller: renesas,rzv2h-icu: Document RZ/G3E SoC
        riscv: sophgo: dts: Add msi controller for SG2042
        irqchip: Add the Sophgo SG2042 MSI interrupt controller
        dt-bindings: interrupt-controller: Add Sophgo SG2042 MSI
        arm64: dts: rockchip: rk356x: Move PCIe MSI to use GIC ITS instead of MBI
        ...
      0f404646
    • Linus Torvalds's avatar
      Merge tag 'irq-msi-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 36f5f026
      Linus Torvalds authored
      Pull MSI irq updates from Thomas Gleixner:
      
       - Switch the MSI descriptor locking to guards
      
       - Replace the broken PCI/TPH implementation, which lacks any form of
         serialization against concurrent modifications with a properly
         serialized mechanism in the PCI/MSI core code
      
       - Replace the MSI descriptor abuse in the SCSI/UFS Qualcom driver with
         dedicated driver internal storage
      
      * tag 'irq-msi-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        genirq/msi: Rename msi_[un]lock_descs()
        scsi: ufs: qcom: Remove the MSI descriptor abuse
        PCI/TPH: Replace the broken MSI-X control word update
        PCI/MSI: Provide a sane mechanism for TPH
        PCI: hv: Switch MSI descriptor locking to guard()
        PCI/MSI: Switch to MSI descriptor locking to guard()
        NTB/msi: Switch MSI descriptor locking to lock guard()
        soc: ti: ti_sci_inta_msi: Switch MSI descriptor locking to guard()
        genirq/msi: Use lock guards for MSI descriptor locking
        cleanup: Provide retain_ptr()
        genirq/msi: Make a few functions static
      36f5f026
    • Linus Torvalds's avatar
      Merge tag 'irq-core-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 43a7eec0
      Linus Torvalds authored
      Pull irq updates from Thomas Gleixner:
       "A small set of core changes for the interrupt subsystem:
      
         - Expose the MSI message in the existing debug filesystem dump.
           That's useful for validation and debugging.
      
         - Small cleanups"
      
      * tag 'irq-core-2025-03-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        genirq: Make a few functions static
        irqdomain: Remove extern from function declarations
        genirq/msi: Expose MSI message data in debugfs
      43a7eec0
    • Linus Torvalds's avatar
      x86 boot build: make git ignore stale 'tools' directory · 2df0c02d
      Linus Torvalds authored
      
      We've had this before: when we remove infrastructure to generate files,
      the old stale build artifacts still remain in-tree.  And when the
      infrastructure to generate them is gone, so is the gitignore file for
      those build artifacts.
      
      End result: git will see the old generated files, and people will
      mistakenly commit them.  That's what happened with the 'genheaders' file
      not that long ago (see commit 04a3389b "Remove stale generated
      'genheaders' file").
      
      This time it's commit 9c54baab ("x86/boot: Drop CRC-32 checksum and
      the build tool that generates it") that removed the 'build' file from
      the arch/x86/boot/tools/ subdirectory, and removed the .gitignore file
      too (because the whole subdirectory is gone).
      
      And as a result, if you don't do a 'git clean -dqfx' or similar to clean
      up your tree, 'git status' will say
      
        Untracked files:
          (use "git add <file>..." to include in what will be committed)
      	arch/x86/boot/tools/
      
      and some hapless sleep-deprived developer will inevitably decide that
      that means that they need to 'git add' that directory.  Which would
      bring back some stale generated file that we most definitely do not want
      in the tree.
      
      So when removing directories that had special .gitignore patterns, make
      sure to add a new gitignore entry in the parent directory for the no
      longer existing subdirectory.
      
      It will avoid mistakes.
      
      Cc: Ard Biesheuvel <ardb@kernel.org>
      Cc: Ingo Molnar <mingo@kernel.org>
      Fixes: 9c54baab ("x86/boot: Drop CRC-32 checksum and the build tool that generates it")
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2df0c02d
    • Linus Torvalds's avatar
      Merge tag 'x86-platform-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 001a3a0c
      Linus Torvalds authored
      Pull x86 platform updates from Ingo Molnar:
       "Two small cleanups in the x86 platform support code"
      
      * tag 'x86-platform-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/platform/olpc: Remove unused variable 'len' in olpc_dt_compatible_match()
        x86/platform/olpc-xo1-sci: Don't include <linux/pm_wakeup.h> directly
      001a3a0c
    • Linus Torvalds's avatar
      Merge tag 'x86-sev-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8ac6067b
      Linus Torvalds authored
      Pull x86 SEV updates from Ingo Molnar:
      
       - Improve sme_enable() PIC build robustness (Kevin Loughlin)
      
       - Simplify vc_handle_msr() a bit (Peng Hao)
      
      [ Just reminding myself and everybody else about the endless stream of
        x86 TLAs: "SEV" is AMD's Secure Encrypted Virtualization  - Linus ]
      
      * tag 'x86-sev-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/sev: Simplify the code by removing unnecessary 'else' statement
        x86/sev: Add missing RIP_REL_REF() invocations during sme_enable()
      8ac6067b
    • Linus Torvalds's avatar
      Merge tag 'x86-cleanups-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a49a879f
      Linus Torvalds authored
      Pull x86 cleanups from Ingo Molnar:
       "Miscellaneous x86 cleanups by Arnd Bergmann, Charles Han, Mirsad
        Todorovac, Randy Dunlap, Thorsten Blum and Zhang Kunbo"
      
      * tag 'x86-cleanups-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/coco: Replace 'static const cc_mask' with the newly introduced cc_get_mask() function
        x86/delay: Fix inconsistent whitespace
        selftests/x86/syscall: Fix coccinelle WARNING recommending the use of ARRAY_SIZE()
        x86/platform: Fix missing declaration of 'x86_apple_machine'
        x86/irq: Fix missing declaration of 'io_apic_irqs'
        x86/usercopy: Fix kernel-doc func param name in clean_cache_range()'s description
        x86/apic: Use str_disabled_enabled() helper in print_ipi_mode()
      a49a879f
    • Linus Torvalds's avatar
      Merge tag 'x86-fpu-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 71b639af
      Linus Torvalds authored
      Pull x86/fpu updates from Ingo Molnar:
      
       - Improve crypto performance by making kernel-mode FPU reliably usable
         in softirqs ((Eric Biggers)
      
       - Fully optimize out WARN_ON_FPU() (Eric Biggers)
      
       - Initial steps to support Support Intel APX (Advanced Performance
         Extensions) (Chang S. Bae)
      
       - Fix KASAN for arch_dup_task_struct() (Benjamin Berg)
      
       - Refine and simplify the FPU magic number check during signal return
         (Chang S. Bae)
      
       - Fix inconsistencies in guest FPU xfeatures (Chao Gao, Stanislav
         Spassov)
      
       - selftests/x86/xstate: Introduce common code for testing extended
         states (Chang S. Bae)
      
       - Misc fixes and cleanups (Borislav Petkov, Colin Ian King, Uros
         Bizjak)
      
      * tag 'x86-fpu-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/fpu/xstate: Fix inconsistencies in guest FPU xfeatures
        x86/fpu: Clarify the "xa" symbolic name used in the XSTATE* macros
        x86/fpu: Use XSAVE{,OPT,C,S} and XRSTOR{,S} mnemonics in xstate.h
        x86/fpu: Improve crypto performance by making kernel-mode FPU reliably usable in softirqs
        x86/fpu/xstate: Simplify print_xstate_features()
        x86/fpu: Refine and simplify the magic number check during signal return
        selftests/x86/xstate: Fix spelling mistake "hader" -> "header"
        x86/fpu: Avoid copying dynamic FP state from init_task in arch_dup_task_struct()
        vmlinux.lds.h: Remove entry to place init_task onto init_stack
        selftests/x86/avx: Add AVX tests
        selftests/x86/xstate: Clarify supported xstates
        selftests/x86/xstate: Consolidate test invocations into a single entry
        selftests/x86/xstate: Introduce signal ABI test
        selftests/x86/xstate: Refactor ptrace ABI test
        selftests/x86/xstate: Refactor context switching test
        selftests/x86/xstate: Enumerate and name xstate components
        selftests/x86/xstate: Refactor XSAVE helpers for general use
        selftests/x86: Consolidate redundant signal helper functions
        x86/fpu: Fix guest FPU state buffer allocation size
        x86/fpu: Fully optimize out WARN_ON_FPU()
      71b639af
    • Linus Torvalds's avatar
      Merge tag 'x86-boot-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b58386a9
      Linus Torvalds authored
      Pull x86 boot code updates from Ingo Molnar:
      
       - Memblock setup and other early boot code cleanups (Mike Rapoport)
      
       - Export e820_table_kexec[] to sysfs (Dave Young)
      
       - Baby steps of adding relocate_kernel() debugging support (David
         Woodhouse)
      
       - Replace open-coded parity calculation with parity8() (Kuan-Wei Chiu)
      
       - Move the LA57 trampoline to separate source file (Ard Biesheuvel)
      
       - Misc micro-optimizations (Uros Bizjak)
      
       - Drop obsolete E820_TYPE_RESERVED_KERN and related code (Mike
         Rapoport)
      
      * tag 'x86-boot-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/kexec: Add relocate_kernel() debugging support: Load a GDT
        x86/boot: Move the LA57 trampoline to separate source file
        x86/boot: Do not test if AC and ID eflags are changeable on x86_64
        x86/bootflag: Replace open-coded parity calculation with parity8()
        x86/bootflag: Micro-optimize sbf_write()
        x86/boot: Add missing has_cpuflag() prototype
        x86/kexec: Export e820_table_kexec[] to sysfs
        x86/boot: Change some static bootflag functions to bool
        x86/e820: Drop obsolete E820_TYPE_RESERVED_KERN and related code
        x86/boot: Split parsing of boot_params into the parse_boot_params() helper function
        x86/boot: Split kernel resources setup into the setup_kernel_resources() helper function
        x86/boot: Move setting of memblock parameters to e820__memblock_setup()
      b58386a9
    • Linus Torvalds's avatar
      Merge tag 'x86-build-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · ebfb94d8
      Linus Torvalds authored
      Pull x86 build updates from Ingo Molnar:
      
       - Drop CRC-32 checksum and the build tool that generates it (Ard
         Biesheuvel)
      
       - Fix broken copy command in genimage.sh when making isoimage (Nir
         Lichtman)
      
      * tag 'x86-build-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/boot: Add back some padding for the CRC-32 checksum
        x86/boot: Drop CRC-32 checksum and the build tool that generates it
        x86/build: Fix broken copy command in genimage.sh when making isoimage
      ebfb94d8
    • Linus Torvalds's avatar
      Merge tag 'x86-core-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · e34c3805
      Linus Torvalds authored
      Pull core x86 updates from Ingo Molnar:
       "x86 CPU features support:
         - Generate the <asm/cpufeaturemasks.h> header based on build config
           (H. Peter Anvin, Xin Li)
         - x86 CPUID parsing updates and fixes (Ahmed S. Darwish)
         - Introduce the 'setcpuid=' boot parameter (Brendan Jackman)
         - Enable modifying CPU bug flags with '{clear,set}puid=' (Brendan
           Jackman)
         - Utilize CPU-type for CPU matching (Pawan Gupta)
         - Warn about unmet CPU feature dependencies (Sohil Mehta)
         - Prepare for new Intel Family numbers (Sohil Mehta)
      
        Percpu code:
         - Standardize & reorganize the x86 percpu layout and related cleanups
           (Brian Gerst)
         - Convert the stackprotector canary to a regular percpu variable
           (Brian Gerst)
         - Add a percpu subsection for cache hot data (Brian Gerst)
         - Unify __pcpu_op{1,2}_N() macros to __pcpu_op_N() (Uros Bizjak)
         - Construct __percpu_seg_override from __percpu_seg (Uros Bizjak)
      
        MM:
         - Add support for broadcast TLB invalidation using AMD's INVLPGB
           instruction (Rik van Riel)
         - Rework ROX cache to avoid writable copy (Mike Rapoport)
         - PAT: restore large ROX pages after fragmentation (Kirill A.
           Shutemov, Mike Rapoport)
         - Make memremap(MEMREMAP_WB) map memory as encrypted by default
           (Kirill A. Shutemov)
         - Robustify page table initialization (Kirill A. Shutemov)
         - Fix flush_tlb_range() when used for zapping normal PMDs (Jann Horn)
         - Clear _PAGE_DIRTY for kernel mappings when we clear _PAGE_RW
           (Matthew Wilcox)
      
        KASLR:
         - x86/kaslr: Reduce KASLR entropy on most x86 systems, to support PCI
           BAR space beyond the 10TiB region (CONFIG_PCI_P2PDMA=y) (Balbir
           Singh)
      
        CPU bugs:
         - Implement FineIBT-BHI mitigation (Peter Zijlstra)
         - speculation: Simplify and make CALL_NOSPEC consistent (Pawan Gupta)
         - speculation: Add a conditional CS prefix to CALL_NOSPEC (Pawan
           Gupta)
         - RFDS: Exclude P-only parts from the RFDS affected list (Pawan
           Gupta)
      
        System calls:
         - Break up entry/common.c (Brian Gerst)
         - Move sysctls into arch/x86 (Joel Granados)
      
        Intel LAM support updates: (Maciej Wieczor-Retman)
         - selftests/lam: Move cpu_has_la57() to use cpuinfo flag
         - selftests/lam: Skip test if LAM is disabled
         - selftests/lam: Test get_user() LAM pointer handling
      
        AMD SMN access updates:
         - Add SMN offsets to exclusive region access (Mario Limonciello)
         - Add support for debugfs access to SMN registers (Mario Limonciello)
         - Have HSMP use SMN through AMD_NODE (Yazen Ghannam)
      
        Power management updates: (Patryk Wlazlyn)
         - Allow calling mwait_play_dead with an arbitrary hint
         - ACPI/processor_idle: Add FFH state handling
         - intel_idle: Provide the default enter_dead() handler
         - Eliminate mwait_play_dead_cpuid_hint()
      
        Build system:
         - Raise the minimum GCC version to 8.1 (Brian Gerst)
         - Raise the minimum LLVM version to 15.0.0 (Nathan Chancellor)
      
        Kconfig: (Arnd Bergmann)
         - Add cmpxchg8b support back to Geode CPUs
         - Drop 32-bit "bigsmp" machine support
         - Rework CONFIG_GENERIC_CPU compiler flags
         - Drop configuration options for early 64-bit CPUs
         - Remove CONFIG_HIGHMEM64G support
         - Drop CONFIG_SWIOTLB for PAE
         - Drop support for CONFIG_HIGHPTE
         - Document CONFIG_X86_INTEL_MID as 64-bit-only
         - Remove old STA2x11 support
         - Only allow CONFIG_EISA for 32-bit
      
        Headers:
         - Replace __ASSEMBLY__ with __ASSEMBLER__ in UAPI and non-UAPI
           headers (Thomas Huth)
      
        Assembly code & machine code patching:
         - x86/alternatives: Simplify alternative_call() interface (Josh
           Poimboeuf)
         - x86/alternatives: Simplify callthunk patching (Peter Zijlstra)
         - KVM: VMX: Use named operands in inline asm (Josh Poimboeuf)
         - x86/hyperv: Use named operands in inline asm (Josh Poimboeuf)
         - x86/traps: Cleanup and robustify decode_bug() (Peter Zijlstra)
         - x86/kexec: Merge x86_32 and x86_64 code using macros from
           <asm/asm.h> (Uros Bizjak)
         - Use named operands in inline asm (Uros Bizjak)
         - Improve performance by using asm_inline() for atomic locking
           instructions (Uros Bizjak)
      
        Earlyprintk:
         - Harden early_serial (Peter Zijlstra)
      
        NMI handler:
         - Add an emergency handler in nmi_desc & use it in
           nmi_shootdown_cpus() (Waiman Long)
      
        Miscellaneous fixes and cleanups:
         - by Ahmed S. Darwish, Andy Shevchenko, Ard Biesheuvel, Artem
           Bityutskiy, Borislav Petkov, Brendan Jackman, Brian Gerst, Dan
           Carpenter, Dr. David Alan Gilbert, H. Peter Anvin, Ingo Molnar,
           Josh Poimboeuf, Kevin Brodsky, Mike Rapoport, Lukas Bulwahn, Maciej
           Wieczor-Retman, Max Grobecker, Patryk Wlazlyn, Pawan Gupta, Peter
           Zijlstra, Philip Redkin, Qasim Ijaz, Rik van Riel, Thomas Gleixner,
           Thorsten Blum, Tom Lendacky, Tony Luck, Uros Bizjak, Vitaly
           Kuznetsov, Xin Li, liuye"
      
      * tag 'x86-core-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (211 commits)
        zstd: Increase DYNAMIC_BMI2 GCC version cutoff from 4.8 to 11.0 to work around compiler segfault
        x86/asm: Make asm export of __ref_stack_chk_guard unconditional
        x86/mm: Only do broadcast flush from reclaim if pages were unmapped
        perf/x86/intel, x86/cpu: Replace Pentium 4 model checks with VFM ones
        perf/x86/intel, x86/cpu: Simplify Intel PMU initialization
        x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in non-UAPI headers
        x86/headers: Replace __ASSEMBLY__ with __ASSEMBLER__ in UAPI headers
        x86/locking/atomic: Improve performance by using asm_inline() for atomic locking instructions
        x86/asm: Use asm_inline() instead of asm() in clwb()
        x86/asm: Use CLFLUSHOPT and CLWB mnemonics in <asm/special_insns.h>
        x86/hweight: Use asm_inline() instead of asm()
        x86/hweight: Use ASM_CALL_CONSTRAINT in inline asm()
        x86/hweight: Use named operands in inline asm()
        x86/stackprotector/64: Only export __ref_stack_chk_guard on CONFIG_SMP
        x86/head/64: Avoid Clang < 17 stack protector in startup code
        x86/kexec: Merge x86_32 and x86_64 code using macros from <asm/asm.h>
        x86/runtime-const: Add the RUNTIME_CONST_PTR assembly macro
        x86/cpu/intel: Limit the non-architectural constant_tsc model checks
        x86/mm/pat: Replace Intel x86_model checks with VFM ones
        x86/cpu/intel: Fix fast string initialization for extended Families
        ...
      e34c3805
    • Linus Torvalds's avatar
      Merge tag 'perf-core-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 327ecdbc
      Linus Torvalds authored
      Pull performance events updates from Ingo Molnar:
       "Core:
         - Move perf_event sysctls into kernel/events/ (Joel Granados)
         - Use POLLHUP for pinned events in error (Namhyung Kim)
         - Avoid the read if the count is already updated (Peter Zijlstra)
         - Allow the EPOLLRDNORM flag for poll (Tao Chen)
         - locking/percpu-rwsem: Add guard support [ NOTE: this got
           (mis-)merged into the perf tree due to related work ] (Peter
           Zijlstra)
      
        perf_pmu_unregister() related improvements: (Peter Zijlstra)
         - Simplify the perf_event_alloc() error path
         - Simplify the perf_pmu_register() error path
         - Simplify perf_pmu_register()
         - Simplify perf_init_event()
         - Simplify perf_event_alloc()
         - Merge struct pmu::pmu_disable_count into struct
           perf_cpu_pmu_context::pmu_disable_count
         - Add this_cpc() helper
         - Introduce perf_free_addr_filters()
         - Robustify perf_event_free_bpf_prog()
         - Simplify the perf_mmap() control flow
         - Further simplify perf_mmap()
         - Remove retry loop from perf_mmap()
         - Lift event->mmap_mutex in perf_mmap()
         - Detach 'struct perf_cpu_pmu_context' and 'struct pmu' lifetimes
         - Fix perf_mmap() failure path
      
        Uprobes:
         - Harden x86 uretprobe syscall trampoline check (Jiri Olsa)
         - Remove redundant spinlock in uprobe_deny_signal() (Liao Chang)
         - Remove the spinlock within handle_singlestep() (Liao Chang)
      
        x86 Intel PMU enhancements:
         - Support PEBS counters snapshotting (Kan Liang)
         - Fix intel_pmu_read_event() (Kan Liang)
         - Extend per event callchain limit to branch stack (Kan Liang)
         - Fix system-wide LBR profiling (Kan Liang)
         - Allocate bts_ctx only if necessary (Li RongQing)
         - Apply static call for drain_pebs (Peter Zijlstra)
      
        x86 AMD PMU enhancements: (Ravi Bangoria)
         - Remove pointless sample period check
         - Fix ->config to sample period calculation for OP PMU
         - Fix perf_ibs_op.cnt_mask for CurCnt
         - Don't allow freq mode event creation through ->config interface
         - Add PMU specific minimum period
         - Add ->check_period() callback
         - Ceil sample_period to min_period
         - Add support for OP Load Latency Filtering
         - Update DTLB/PageSize decode logic
      
        Hardware breakpoints:
         - Return EOPNOTSUPP for unsupported breakpoint type (Saket Kumar
           Bhaskar)
      
        Hardlockup detector improvements: (Li Huafei)
         - perf_event memory leak
         - Warn if watchdog_ev is leaked
      
        Fixes and cleanups:
         - Misc fixes and cleanups (Andy Shevchenko, Kan Liang, Peter
           Zijlstra, Ravi Bangoria, Thorsten Blum, XieLudan)"
      
      * tag 'perf-core-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (55 commits)
        perf: Fix __percpu annotation
        perf: Clean up pmu specific data
        perf/x86: Remove swap_task_ctx()
        perf/x86/lbr: Fix shorter LBRs call stacks for the system-wide mode
        perf: Supply task information to sched_task()
        perf: attach/detach PMU specific data
        locking/percpu-rwsem: Add guard support
        perf: Save PMU specific data in task_struct
        perf: Extend per event callchain limit to branch stack
        perf/ring_buffer: Allow the EPOLLRDNORM flag for poll
        perf/core: Use POLLHUP for pinned events in error
        perf/core: Use sysfs_emit() instead of scnprintf()
        perf/core: Remove optional 'size' arguments from strscpy() calls
        perf/x86/intel/bts: Check if bts_ctx is allocated when calling BTS functions
        uprobes/x86: Harden uretprobe syscall trampoline check
        watchdog/hardlockup/perf: Warn if watchdog_ev is leaked
        watchdog/hardlockup/perf: Fix perf_event memory leak
        perf/x86: Annotate struct bts_buffer::buf with __counted_by()
        perf/core: Clean up perf_try_init_event()
        perf/core: Fix perf_mmap() failure path
        ...
      327ecdbc
    • Linus Torvalds's avatar
      Merge tag 'sched-core-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 32b22538
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
       "Core & fair scheduler changes:
      
         - Cancel the slice protection of the idle entity (Zihan Zhou)
         - Reduce the default slice to avoid tasks getting an extra tick
           (Zihan Zhou)
         - Force propagating min_slice of cfs_rq when {en,de}queue tasks
           (Tianchen Ding)
         - Refactor can_migrate_task() to elimate looping (I Hsin Cheng)
         - Add unlikey branch hints to several system calls (Colin Ian King)
         - Optimize current_clr_polling() on certain architectures (Yujun
           Dong)
      
        Deadline scheduler: (Juri Lelli)
         - Remove redundant dl_clear_root_domain call
         - Move dl_rebuild_rd_accounting to cpuset.h
      
        Uclamp:
         - Use the uclamp_is_used() helper instead of open-coding it (Xuewen
           Yan)
         - Optimize sched_uclamp_used static key enabling (Xuewen Yan)
      
        Scheduler topology support: (Juri Lelli)
         - Ignore special tasks when rebuilding domains
         - Add wrappers for sched_domains_mutex
         - Generalize unique visiting of root domains
         - Rebuild root domain accounting after every update
         - Remove partition_and_rebuild_sched_domains
         - Stop exposing partition_sched_domains_locked
      
        RSEQ: (Michael Jeanson)
         - Update kernel fields in lockstep with CONFIG_DEBUG_RSEQ=y
         - Fix segfault on registration when rseq_cs is non-zero
         - selftests: Add rseq syscall errors test
         - selftests: Ensure the rseq ABI TLS is actually 1024 bytes
      
        Membarriers:
         - Fix redundant load of membarrier_state (Nysal Jan K.A.)
      
        Scheduler debugging:
         - Introduce and use preempt_model_str() (Sebastian Andrzej Siewior)
         - Make CONFIG_SCHED_DEBUG unconditional (Ingo Molnar)
      
        Fixes and cleanups:
         - Always save/restore x86 TSC sched_clock() on suspend/resume
           (Guilherme G. Piccoli)
         - Misc fixes and cleanups (Thorsten Blum, Juri Lelli, Sebastian
           Andrzej Siewior)"
      
      * tag 'sched-core-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (40 commits)
        cpuidle, sched: Use smp_mb__after_atomic() in current_clr_polling()
        sched/debug: Remove CONFIG_SCHED_DEBUG
        sched/debug: Remove CONFIG_SCHED_DEBUG from self-test config files
        sched/debug, Documentation: Remove (most) CONFIG_SCHED_DEBUG references from documentation
        sched/debug: Make CONFIG_SCHED_DEBUG functionality unconditional
        sched/debug: Make 'const_debug' tunables unconditional __read_mostly
        sched/debug: Change SCHED_WARN_ON() to WARN_ON_ONCE()
        rseq/selftests: Fix namespace collision with rseq UAPI header
        include/{topology,cpuset}: Move dl_rebuild_rd_accounting to cpuset.h
        sched/topology: Stop exposing partition_sched_domains_locked
        cgroup/cpuset: Remove partition_and_rebuild_sched_domains
        sched/topology: Remove redundant dl_clear_root_domain call
        sched/deadline: Rebuild root domain accounting after every update
        sched/deadline: Generalize unique visiting of root domains
        sched/topology: Wrappers for sched_domains_mutex
        sched/deadline: Ignore special tasks when rebuilding domains
        tracing: Use preempt_model_str()
        xtensa: Rely on generic printing of preemption model
        x86: Rely on generic printing of preemption model
        s390: Rely on generic printing of preemption model
        ...
      32b22538
    • Linus Torvalds's avatar
      Merge tag 'objtool-core-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5a658afd
      Linus Torvalds authored
      Pull objtool updates from Ingo Molnar:
      
       - The biggest change is the new option to automatically fail the build
         on objtool warnings: CONFIG_OBJTOOL_WERROR.
      
         While there are no currently known unfixed false positives left, such
         an expansion in the severity of objtool warnings inevitably creates a
         risk of build failures, so it's disabled by default and depends on
         !COMPILE_TEST, so it shouldn't be enabled on
         allyesconfig/allmodconfig builds and won't be forced on people who
         just accept build-time defaults in 'make oldconfig'.
      
         While the option is strongly recommended, only people who enable it
         explicitly should see it.
      
         (Josh Poimboeuf)
      
       - Disable branch profiling in noinstr code with a broad brush that
         includes all of arch/x86/ and kernel/sched/. (Josh Poimboeuf)
      
       - Create backup object files on objtool errors and print exact objtool
         arguments to make failure analysis easier (Josh Poimboeuf)
      
       - Improve noreturn handling (Josh Poimboeuf)
      
       - Improve rodata handling (Tiezhu Yang)
      
       - Support jump tables, switch tables and goto tables on LoongArch
         (Tiezhu Yang)
      
       - Misc cleanups and fixes (Josh Poimboeuf, David Engraf, Ingo Molnar)
      
      * tag 'objtool-core-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (22 commits)
        tracing: Disable branch profiling in noinstr code
        objtool: Use O_CREAT with explicit mode mask
        objtool: Add CONFIG_OBJTOOL_WERROR
        objtool: Create backup on error and print args
        objtool: Change "warning:" to "error:" for --Werror
        objtool: Add --Werror option
        objtool: Add --output option
        objtool: Upgrade "Linked object detected" warning to error
        objtool: Consolidate option validation
        objtool: Remove --unret dependency on --rethunk
        objtool: Increase per-function WARN_FUNC() rate limit
        objtool: Update documentation
        objtool: Improve __noreturn annotation warning
        objtool: Fix error handling inconsistencies in check()
        x86/traps: Make exc_double_fault() consistently noreturn
        LoongArch: Enable jump table for objtool
        objtool/LoongArch: Add support for goto table
        objtool/LoongArch: Add support for switch table
        objtool: Handle PC relative relocation type
        objtool: Handle different entry size of rodata
        ...
      5a658afd
    • Linus Torvalds's avatar
      Merge tag 'locking-core-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 23608993
      Linus Torvalds authored
      Pull locking updates from Ingo Molnar:
       "Locking primitives:
         - Micro-optimize percpu_{,try_}cmpxchg{64,128}_op() and
           {,try_}cmpxchg{64,128} on x86 (Uros Bizjak)
         - mutexes: extend debug checks in mutex_lock() (Yunhui Cui)
         - Misc cleanups (Uros Bizjak)
      
        Lockdep:
         - Fix might_fault() lockdep check of current->mm->mmap_lock (Peter
           Zijlstra)
         - Don't disable interrupts on RT in disable_irq_nosync_lockdep.*()
           (Sebastian Andrzej Siewior)
         - Disable KASAN instrumentation of lockdep.c (Waiman Long)
         - Add kasan_check_byte() check in lock_acquire() (Waiman Long)
         - Misc cleanups (Sebastian Andrzej Siewior)
      
        Rust runtime integration:
         - Use Pin for all LockClassKey usages (Mitchell Levy)
         - sync: Add accessor for the lock behind a given guard (Alice Ryhl)
         - sync: condvar: Add wait_interruptible_freezable() (Alice Ryhl)
         - sync: lock: Add an example for Guard:: Lock_ref() (Boqun Feng)
      
        Split-lock detection feature (x86):
         - Fix warning mode with disabled mitigation mode (Maksim Davydov)
      
        Locking events:
         - Add locking events for rtmutex slow paths (Waiman Long)
         - Add locking events for lockdep (Waiman Long)"
      
      * tag 'locking-core-2025-03-22' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        lockdep: Remove disable_irq_lockdep()
        lockdep: Don't disable interrupts on RT in disable_irq_nosync_lockdep.*()
        rust: lockdep: Use Pin for all LockClassKey usages
        rust: sync: condvar: Add wait_interruptible_freezable()
        rust: sync: lock: Add an example for Guard:: Lock_ref()
        rust: sync: Add accessor for the lock behind a given guard
        locking/lockdep: Add kasan_check_byte() check in lock_acquire()
        locking/lockdep: Disable KASAN instrumentation of lockdep.c
        locking/lock_events: Add locking events for lockdep
        locking/lock_events: Add locking events for rtmutex slow paths
        x86/split_lock: Fix the delayed detection logic
        lockdep/mm: Fix might_fault() lockdep check of current->mm->mmap_lock
        x86/locking: Remove semicolon from "lock" prefix
        locking/mutex: Add MUTEX_WARN_ON() into fast path
        x86/locking: Use asm_inline for {,try_}cmpxchg{64,128} emulations
        x86/locking: Use ALT_OUTPUT_SP() for percpu_{,try_}cmpxchg{64,128}_op()
      23608993
    • Linus Torvalds's avatar
      Merge tag 'rcu-next-v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux · 3ba7dfb8
      Linus Torvalds authored
      Pull RCU updates from Boqun Feng:
       "Documentation:
         - Add broken-timing possibility to stallwarn.rst
         - Improve discussion of this_cpu_ptr(), add raw_cpu_ptr()
         - Document self-propagating callbacks
         - Point call_srcu() to call_rcu() for detailed memory ordering
         - Add CONFIG_RCU_LAZY delays to call_rcu() kernel-doc header
         - Clarify RCU_LAZY and RCU_LAZY_DEFAULT_OFF help text
         - Remove references to old grace-period-wait primitives
      
        srcu:
         - Introduce srcu_read_{un,}lock_fast(), which is similar to
           srcu_read_{un,}lock_lite(): avoid smp_mb()s in lock and unlock
           at the cost of calling synchronize_rcu() in synchronize_srcu()
      
           Moreover, by returning the percpu offset of the counter at
           srcu_read_lock_fast() time, srcu_read_unlock_fast() can avoid
           extra pointer dereferencing, which makes it faster than
           srcu_read_{un,}lock_lite()
      
           srcu_read_{un,}lock_fast() are intended to replace
           rcu_read_{un,}lock_trace() if possible
      
        RCU torture:
         - Add get_torture_init_jiffies() to return the start time of the test
         - Add a test_boost_holdoff module parameter to allow delaying
           boosting tests when building rcutorture as built-in
         - Add grace period sequence number logging at the beginning and end
           of failure/close-call results
         - Switch to hexadecimal for the expedited grace period sequence
           number in the rcu_exp_grace_period trace point
         - Make cur_ops->format_gp_seqs take buffer length
         - Move RCU_TORTURE_TEST_{CHK_RDR_STATE,LOG_CPU} to bool
         - Complain when invalid SRCU reader_flavor is specified
         - Add FORCE_NEED_SRCU_NMI_SAFE Kconfig for testing, which forces SRCU
           uses atomics even when percpu ops are NMI safe, and use the Kconfig
           for SRCU lockdep testing
      
        Misc:
         - Split rcu_report_exp_cpu_mult() mask parameter and use for tracing
         - Remove READ_ONCE() for rdp->gpwrap access in __note_gp_changes()
         - Fix get_state_synchronize_rcu_full() GP-start detection
         - Move RCU Tasks self-tests to core_initcall()
         - Print segment lengths in show_rcu_nocb_gp_state()
         - Make RCU watch ct_kernel_exit_state() warning
         - Flush console log from kernel_power_off()
         - rcutorture: Allow a negative value for nfakewriters
         - rcu: Update TREE05.boot to test normal synchronize_rcu()
         - rcu: Use _full() API to debug synchronize_rcu()
      
        Make RCU handle PREEMPT_LAZY better:
         - Fix header guard for rcu_all_qs()
         - rcu: Rename PREEMPT_AUTO to PREEMPT_LAZY
         - Update __cond_resched comment about RCU quiescent states
         - Handle unstable rdp in rcu_read_unlock_strict()
         - Handle quiescent states for PREEMPT_RCU=n, PREEMPT_COUNT=y
         - osnoise: Provide quiescent states
         - Adjust rcutorture with possible PREEMPT_RCU=n && PREEMPT_COUNT=y
           combination
         - Limit PREEMPT_RCU configurations
         - Make rcutorture senario TREE07 and senario TREE10 use
           PREEMPT_LAZY=y"
      
      * tag 'rcu-next-v6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux: (59 commits)
        rcutorture: Make scenario TREE07 build CONFIG_PREEMPT_LAZY=y
        rcutorture: Make scenario TREE10 build CONFIG_PREEMPT_LAZY=y
        rcu: limit PREEMPT_RCU configurations
        rcutorture: Update ->extendables check for lazy preemption
        rcutorture: Update rcutorture_one_extend_check() for lazy preemption
        osnoise: provide quiescent states
        rcu: Use _full() API to debug synchronize_rcu()
        rcu: Update TREE05.boot to test normal synchronize_rcu()
        rcutorture: Allow a negative value for nfakewriters
        Flush console log from kernel_power_off()
        context_tracking: Make RCU watch ct_kernel_exit_state() warning
        rcu/nocb: Print segment lengths in show_rcu_nocb_gp_state()
        rcu-tasks: Move RCU Tasks self-tests to core_initcall()
        rcu: Fix get_state_synchronize_rcu_full() GP-start detection
        torture: Make SRCU lockdep testing use srcu_read_lock_nmisafe()
        srcu: Add FORCE_NEED_SRCU_NMI_SAFE Kconfig for testing
        rcutorture: Complain when invalid SRCU reader_flavor is specified
        rcutorture: Move RCU_TORTURE_TEST_{CHK_RDR_STATE,LOG_CPU} to bool
        rcutorture: Make cur_ops->format_gp_seqs take buffer length
        rcutorture: Add ftrace-compatible timestamp to GP# failure/close-call output
        ...
      3ba7dfb8
    • Linus Torvalds's avatar
      Merge tag 'bitmap-for-6.15' of https://github.com/norov/linux · 2f2d5294
      Linus Torvalds authored
      Pull bitmap updates from Yury Norov:
      
       - cpumask_next_wrap() rework (me)
      
       - GENMASK() simplification (I Hsin)
      
       - rust bindings for cpumasks (Viresh and me)
      
       - scattered cleanups (Andy, Tamir, Vincent, Ignacio and Joel)
      
      * tag 'bitmap-for-6.15' of https://github.com/norov/linux: (22 commits)
        cpumask: align text in comment
        riscv: fix test_and_{set,clear}_bit ordering documentation
        treewide: fix typo 'unsigned __init128' -> 'unsigned __int128'
        MAINTAINERS: add rust bindings entry for bitmap API
        rust: Add cpumask helpers
        uapi: Revert "bitops: avoid integer overflow in GENMASK(_ULL)"
        cpumask: drop cpumask_next_wrap_old()
        PCI: hv: Switch hv_compose_multi_msi_req_get_cpu() to using cpumask_next_wrap()
        scsi: lpfc: rework lpfc_next_{online,present}_cpu()
        scsi: lpfc: switch lpfc_irq_rebalance() to using cpumask_next_wrap()
        s390: switch stop_machine_yield() to using cpumask_next_wrap()
        padata: switch padata_find_next() to using cpumask_next_wrap()
        cpumask: use cpumask_next_wrap() where appropriate
        cpumask: re-introduce cpumask_next{,_and}_wrap()
        cpumask: deprecate cpumask_next_wrap()
        powerpc/xmon: simplify xmon_batch_next_cpu()
        ibmvnic: simplify ibmvnic_set_queue_affinity()
        virtio_net: simplify virtnet_set_affinity()
        objpool: rework objpool_pop()
        cpumask: add for_each_{possible,online}_cpu_wrap
        ...
      2f2d5294
    • Linus Torvalds's avatar
      Merge tag 'docs-6.15' of git://git.lwn.net/linux · f81c2b81
      Linus Torvalds authored
      Pull documentation updates from Jonathan Corbet:
       "It has been a reasonably busy cycle for docs...
      
         - Significant changes throughout the tree to bring Python code up to
           current standards and raise the minimum Python required to 3.9
      
           Much of this is preparatory to replacing the ancient Perl
           scripts/kernel-doc horror with a slightly less horrifying Python
           implementation, expected for 6.16
      
         - Update the minimum Sphinx required to 3.4.3, allowing us to remove
           a bunch of older compatibility code
      
         - Rework and improve the generation of the ABI documentation
      
        (All of the above done by Mauro)
      
         - Lots of translation updates. Alex Shi and Yanteng Si are taking on
           responsibility for the Chinese translations going forward; that
           work will still get to you via docs-next
      
         - Try to standardize the format for indicating a developer's
           affiliation in commit tags
      
         - Clarify the TAB's role in CoC enforcement actions
      
         - Try to spell out the rules for when a commit tag can name another
           developer without their explicit permission
      
        Plus lots of other typo fixes and updates"
      
      * tag 'docs-6.15' of git://git.lwn.net/linux: (98 commits)
        docs/zh_CN: fix spelling mistake
        docs/Chinese: change the disclaimer words
        docs/zh_CN: Add snp-tdx-threat-model index Chinese translation
        docs: driver-api: firmware: clarify userspace requirements
        docs: clarify rules wrt tagging other people
        docs: Remove outdated highuid.rst documentation
        Documentation: dma-buf: heaps: Add heap name definitions
        docs/.../submit-checklist: Use Documentation/admin-guide/abi.rst for cross-ref of README
        docs: Correct installation instruction
        Documentation: kcsan: fix "Plain Accesses and Data Races" URL in kcsan.rst
        Documentation/CoC: Spell out the TAB role in enforcement decisions
        Documentation: ocxl.rst: Update consortium site
        scripts: get_feat.pl: substitute s390x with s390
        scripts/kernel-doc: drop dead code for Wcontents_before_sections
        scripts/kernel-doc: don't add not needed new lines
        docs: driver-api/infiniband.rst: fix Kerneldoc markup
        drivers: firewire: firewire-cdev.h: fix identation on a kernel-doc markup
        drivers: media: intel-ipu3.h: fix identation on a kernel-doc markup
        include/asm-generic/io.h: fix kerneldoc markup
        Docs/arch/arm64: Fix spelling in amu.rst
        ...
      f81c2b81
    • Linus Torvalds's avatar
      Merge tag 'stop-machine.2025.03.21a' of... · 8541bc1a
      Linus Torvalds authored
      Merge tag 'stop-machine.2025.03.21a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu
      
      Pull stop-machine update from Paul McKenney:
      
       - Add a comment for the call to rcu_momentary_eqs() from
         multi_cpu_stop() explaining that its purpose is to suppress
         false-positive RCU CPU stall warnings
      
      * tag 'stop-machine.2025.03.21a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:
        stop-machine: Add comment for rcu_momentary_eqs()
      8541bc1a
    • Linus Torvalds's avatar
      Merge tag 'lkmm.2025.03.21a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · 72b40807
      Linus Torvalds authored
      Pull kernel memory model updates from Paul McKenney:
       "Add more atomic operations, rework tags, and update documentation:
      
         - Add additional atomic operations (Puranjay Mohan)
      
         - Make better use of herd7 tags (Jonas Oberhauser)
      
         - Update documentation (Akira Yokosawa)
      
        These changes require v7.58 of the herd7 and klitmus tools, up from
        v7.52"
      
      * tag 'lkmm.2025.03.21a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:
        tools/memory-model: glossary.txt: Fix indents
        tools/memory-model/README: Fix typo
        tools/memory-model: Distinguish between syntactic and semantic tags
        tools/memory-model: Switch to softcoded herd7 tags
        tools/memory-model: Define effect of Mb tags on RMWs in tools/...
        tools/memory-model: Define applicable tags on operation in tools/...
        tools/memory-model: Legitimize current use of tags in LKMM macros
        tools/memory-model: Add atomic_andnot() with its variants
        tools/memory-model: Add atomic_and()/or()/xor() and add_negative
      72b40807
    • Linus Torvalds's avatar
      Merge tag 'nolibc-20250308-for-6.15-1' of... · 418becac
      Linus Torvalds authored
      Merge tag 'nolibc-20250308-for-6.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu
      
      Pull nolibc updates from Paul McKenney:
       - 32bit s390 support
       - opendir() and friends
       - openat() support
       - sscanf() support
       - various cleanups
      
      [ Paul has just forwarded the pull request from Thomas Weißschuh, so
        the tag signature is from Thomas, not Paul   - Linus ]
      
      * tag 'nolibc-20250308-for-6.15-1' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu: (26 commits)
        tools/nolibc: don't use asm/ UAPI headers
        selftests/nolibc: stop testing constructor order
        selftests/nolibc: use O_RDONLY flag instead of 0
        tools/nolibc: drop outdated example from overview comment
        tools/nolibc: process open() vararg as mode_t
        tools/nolibc: always use openat(2) instead of open(2)
        tools/nolibc: add support for openat(2)
        selftests/nolibc: add armthumb configuration
        selftests/nolibc: explicitly enable ARM mode
        Revert "selftests: kselftest: Fix build failure with NOLIBC"
        tools/nolibc: add support for [v]sscanf()
        tools/nolibc: add support for 32-bit s390
        selftests/nolibc: rename s390 to s390x
        selftests/nolibc: only run constructor tests on nolibc
        selftests/nolibc: split up architecture list in run-tests.sh
        tools/nolibc: add support for directory access
        tools/nolibc: add support for sys_llseek()
        selftests/nolibc: always keep test kernel configuration up to date
        selftests/nolibc: execute defconfig before other targets
        selftests/nolibc: drop call to mrproper target
        ...
      418becac
    • Linus Torvalds's avatar
      Merge tag 'sched_ext-for-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext · bcb04425
      Linus Torvalds authored
      Pull sched_ext updates from Tejun Heo:
      
       - Add mechanism to count and report internal events. This significantly
         improves visibility on subtle corner conditions.
      
       - The default idle CPU selection logic is revamped and improved in
         multiple ways including being made topology aware.
      
       - sched_ext was disabling ttwu_queue for simplicity, which can be
         costly when hardware topology is more complex. Implement
         SCX_OPS_ALLOWED_QUEUED_WAKEUP so that BPF schedulers can selectively
         enable ttwu_queue.
      
       - tools/sched_ext updates to improve compatibility among others.
      
       - Other misc updates and fixes.
      
       - sched_ext/for-6.14-fixes were pulled a few times to receive
         prerequisite fixes and resolve conflicts.
      
      * tag 'sched_ext-for-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/sched_ext: (42 commits)
        sched_ext: idle: Refactor scx_select_cpu_dfl()
        sched_ext: idle: Honor idle flags in the built-in idle selection policy
        sched_ext: Skip per-CPU tasks in scx_bpf_reenqueue_local()
        sched_ext: Add trace point to track sched_ext core events
        sched_ext: Change the event type from u64 to s64
        sched_ext: Documentation: add task lifecycle summary
        tools/sched_ext: Provide a compatible helper for scx_bpf_events()
        selftests/sched_ext: Add NUMA-aware scheduler test
        tools/sched_ext: Provide consistent access to scx flags
        sched_ext: idle: Fix scx_bpf_pick_any_cpu_node() behavior
        sched_ext: idle: Introduce scx_bpf_nr_node_ids()
        sched_ext: idle: Introduce node-aware idle cpu kfunc helpers
        sched_ext: idle: Per-node idle cpumasks
        sched_ext: idle: Introduce SCX_OPS_BUILTIN_IDLE_PER_NODE
        sched_ext: idle: Make idle static keys private
        sched/topology: Introduce for_each_node_numadist() iterator
        mm/numa: Introduce nearest_node_nodemask()
        nodemask: numa: reorganize inclusion path
        nodemask: add nodes_copy()
        tools/sched_ext: Sync with scx repo
        ...
      bcb04425
  4. Mar 24, 2025
    • Linus Torvalds's avatar
      Merge tag 'cgroup-for-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 94dc216a
      Linus Torvalds authored
      Pull cgroup updates from Tejun Heo:
      
       - Add deprecation info messages to cgroup1-only features
      
       - rstat updates including a bug fix and breaking up a critical section
         to reduce interrupt latency impact
      
       - Other misc and doc updates
      
      * tag 'cgroup-for-6.15' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        cgroup: rstat: Cleanup flushing functions and locking
        cgroup/rstat: avoid disabling irqs for O(num_cpu)
        mm: Fix a build breakage in memcontrol-v1.c
        blk-cgroup: Simplify policy files registration
        cgroup: Update file naming comment
        cgroup: Add deprecation message to legacy freezer controller
        mm: Add transformation message for per-memcg swappiness
        RFC cgroup/cpuset-v1: Add deprecation messages to sched_relax_domain_level
        cgroup/cpuset-v1: Add deprecation messages to memory_migrate
        cgroup/cpuset-v1: Add deprecation messages to mem_exclusive and mem_hardwall
        cgroup: Print message when /proc/cgroups is read on v2-only system
        cgroup/blkio: Add deprecation messages to reset_stats
        cgroup/cpuset-v1: Add deprecation messages to memory_spread_page and memory_spread_slab
        cgroup/cpuset-v1: Add deprecation messages to sched_load_balance and memory_pressure_enabled
        cgroup, docs: Be explicit about independence of RT_GROUP_SCHED and non-cpu controllers
        cgroup/rstat: Fix forceidle time in cpu.stat
        cgroup/misc: Remove unused misc_cg_res_total_usage
        cgroup/cpuset: Move procfs cpuset attribute under cgroup-v1.c
        cgroup: update comment about dropping cgroup kn refs
      94dc216a
Loading