Skip to content
Snippets Groups Projects
  1. Jan 22, 2025
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2025-01-17' of https://gitlab.freedesktop.org/drm/kernel · 96c84703
      Linus Torvalds authored
      Pull drm updates from Dave Airlie:
       "There are two external interactions of note, the msm tree pull in some
        opp tree, hopefully the opp tree arrives from the same git tree
        however it normally does.
      
        There is also a new cgroup controller for device memory, that is used
        by drm, so is merging through my tree. This will hopefully help open
        up gpu cgroup usage a bit more and move us forward.
      
        There is a new accelerator driver for the AMD XDNA Ryzen AI NPUs.
      
        Then the usual xe/amdgpu/i915/msm leaders and lots of changes and
        refactors across the board:
      
        core:
         - device memory cgroup controller added
         - Remove driver date from drm_driver
         - Add drm_printer based hex dumper
         - drm memory stats docs update
         - scheduler documentation improvements
      
        new driver:
         - amdxdna - Ryzen AI NPU support
      
        connector:
         - add a mutex to protect ELD
         - make connector setup two-step
      
        panels:
         - Introduce backlight quirks infrastructure
         - New panels: KDB KD116N2130B12, Tianma TM070JDHG34-00,
         - Multi-Inno Technology MI1010Z1T-1CP11
      
        bridge:
         - ti-sn65dsi83: Add ti,lvds-vod-swing optional properties
         - Provide default implementation of atomic_check for HDMI bridges
         - it605: HDCP improvements, MCCS Support
      
        xe:
         - make OA buffer size configurable
         - GuC capture fixes
         - add ufence and g2h flushes
         - restore system memory GGTT mappings
         - ioctl fixes
         - SRIOV PF scheduling priority
         - allow fault injection
         - lots of improvements/refactors
         - Enable GuC's WA_DUAL_QUEUE for newer platforms
         - IRQ related fixes and improvements
      
        i915:
         - More accurate engine busyness metrics with GuC submission
         - Ensure partial BO segment offset never exceeds allowed max
         - Flush GuC CT receive tasklet during reset preparation
         - Some DG2 refactor to fix DG2 bugs when operating with certain CPUs
         - Fix DG1 power gate sequence
         - Enabling uncompressed 128b/132b UHBR SST
         - Handle hdmi connector init failures, and no HDMI/DP cases
         - More robust engine resets on Haswell and older
      
        i915/xe display:
         - HDCP fixes for Xe3Lpd
         - New GSC FW ARL-H/ARL-U
         - support 3 VDSC engines 12 slices
         - MBUS joining sanitisation
         - reconcile i915/xe display power mgmt
         - Xe3Lpd fixes
         - UHBR rates for Thunderbolt
      
        amdgpu:
         - DRM panic support
         - track BO memory stats at runtime
         - Fix max surface handling in DC
         - Cleaner shader support for gfx10.3 dGPUs
         - fix drm buddy trim handling
         - SDMA engine reset updates
         - Fix doorbell ttm cleanup
         - RAS updates
         - ISP updates
         - SDMA queue reset support
         - Rework DPM powergating interfaces
         - Documentation updates and cleanups
         - DCN 3.5 updates
         - Use a pm notifier to more gracefully handle VRAM eviction on
           suspend or hibernate
         - Add debugfs interfaces for forcing scheduling to specific engine
           instances
         - GG 9.5 updates
         - IH 4.4 updates
         - Make missing optional firmware less noisy
         - PSP 13.x updates
         - SMU 13.x updates
         - VCN 5.x updates
         - JPEG 5.x updates
         - GC 12.x updates
         - DC FAMS updates
      
        amdkfd:
         - GG 9.5 updates
         - Logging improvements
         - Shader debugger fixes
         - Trap handler cleanup
         - Cleanup includes
         - Eviction fence wq fix
      
        msm:
         - MDSS:
            - properly described UBWC registers
            - added SM6150 (aka QCS615) support
         - DPU:
            - added SM6150 (aka QCS615) support
            - enabled wide planes if virtual planes are enabled (by using two
              SSPPs for a single plane)
            - added CWB hardware blocks support
         - DSI:
            - added SM6150 (aka QCS615) support
         - GPU:
            - Print GMU core fw version
            - GMU bandwidth voting for a740 and a750
            - Expose uche trap base via uapi
            - UAPI error reporting
      
        rcar-du:
         - Add r8a779h0 Support
      
        ivpu:
         - Fix qemu crash when using passthrough
      
        nouveau:
         - expose GSP-RM logging buffers via debugfs
      
        panfrost:
         - Add MT8188 Mali-G57 MC3 support
      
        rockchip:
         - Gamma LUT support
      
        hisilicon:
         - new HIBMC support
      
        virtio-gpu:
         - convert to helpers
         - add prime support for scanout buffers
      
        v3d:
         - Add DRM_IOCTL_V3D_PERFMON_SET_GLOBAL
      
        vc4:
         - Add support for BCM2712
      
        vkms:
         - line-per-line compositing algorithm to improve performance
      
        zynqmp:
         - Add DP audio support
      
        mediatek:
         - dp: Add sdp path reset
         - dp: Support flexible length of DP calibration data
      
        etnaviv:
         - add fdinfo memory support
         - add explicit reset handling"
      
      * tag 'drm-next-2025-01-17' of https://gitlab.freedesktop.org/drm/kernel: (1070 commits)
        drm/bridge: fix documentation for the hdmi_audio_prepare() callback
        doc/cgroup: Fix title underline length
        drm/doc: Include new drm-compute documentation
        cgroup/dmem: Fix parameters documentation
        cgroup/dmem: Select PAGE_COUNTER
        kernel/cgroup: Remove the unused variable climit
        drm/display: hdmi: Do not read EDID on disconnected connectors
        drm/tests: hdmi: Add connector disablement test
        drm/connector: hdmi: Do atomic check when necessary
        drm/amd/display: 3.2.316
        drm/amd/display: avoid reset DTBCLK at clock init
        drm/amd/display: improve dpia pre-train
        drm/amd/display: Apply DML21 Patches
        drm/amd/display: Use HW lock mgr for PSR1
        drm/amd/display: Revised for Replay Pseudo vblank control
        drm/amd/display: Add a new flag for replay low hz
        drm/amd/display: Remove unused read_ono_state function from Hwss module
        drm/amd/display: Do not elevate mem_type change to full update
        drm/amd/display: Do not wait for PSR disable on vbl enable
        drm/amd/display: Remove unnecessary eDP power down
        ...
      96c84703
  2. Jan 21, 2025
    • Linus Torvalds's avatar
      Merge tag 'trace-sorttable-v6.14' of... · c0e75905
      Linus Torvalds authored
      Merge tag 'trace-sorttable-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
      
      Pull scipts/sorttable updates from Steven Rostedt:
       "The sorttable.c was a copy from recordmcount.c which is very hard to
        maintain. That's because it uses macro helpers and places the code in
        a header file sorttable.h to handle both the 64 bit and 32 bit version
        of the Elf structures. It also uses _r()/r()/r2() wrappers around
        accessing the data which will read the 64 bit or 32 bit version of the
        data as well as handle endianess. If the wrong wrapper is used, an
        invalid value will result, and this has been a cause for bugs in the
        past. In fact the new ORC code doesn't even use it. That's fine
        because ORC is only for 64 bit x86 which is the default parsing.
      
        Instead of having a bunch of macros defined and then include the code
        twice from a header, the Elf structures are each wrapped in a union.
        The union holds the 64 bit and 32 bit version of the needed structure.
        Then a structure of function pointers is used, along with helper
        macros to access the ELF types appropriately for their byte size and
        endianess. How to reference the data fields is moved from the code
        that implements the sorting to the helper functions where all accesses
        to a field will use he same helper function. As long as the helper
        functions access the fields correctly, the code will also access the
        fields. This is an improvement over having to code implementing the
        sorting having to make sure it always uses the right accessor function
        when reading an ELF field.
      
        This is a clean up only, the functionality of the scripts/sorttable.c
        does not change"
      
      * tag 'trace-sorttable-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        scripts/sorttable: Use a structure of function pointers for elf helpers
        scripts/sorttable: Get start/stop_mcount_loc from ELF file directly
        scripts/sorttable: Move code from sorttable.h into sorttable.c
        scripts/sorttable: Use uint64_t for mcount sorting
        scripts/sorttable: Add helper functions for Elf_Sym
        scripts/sorttable: Add helper functions for Elf_Shdr
        scripts/sorttable: Add helper functions for Elf_Ehdr
        scripts/sorttable: Convert Elf_Sym MACRO over to a union
        scripts/sorttable: Replace Elf_Shdr Macro with a union
        scripts/sorttable: Convert Elf_Ehdr to union
        scripts/sorttable: Make compare_extable() into two functions
        scripts/sorttable: Have the ORC code use the _r() functions to read
        scripts/sorttable: Remove unneeded Elf_Rel
        scripts/sorttable: Remove unused write functions
        scripts/sorttable: Remove unused macro defines
      c0e75905
    • Linus Torvalds's avatar
      Merge tag 'ftrace-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 2e04247f
      Linus Torvalds authored
      Pull ftrace updates from Steven Rostedt:
      
       - Have fprobes built on top of function graph infrastructure
      
         The fprobe logic is an optimized kprobe that uses ftrace to attach to
         functions when a probe is needed at the start or end of the function.
         The fprobe and kretprobe logic implements a similar method as the
         function graph tracer to trace the end of the function. That is to
         hijack the return address and jump to a trampoline to do the trace
         when the function exits. To do this, a shadow stack needs to be
         created to store the original return address. Fprobes and function
         graph do this slightly differently. Fprobes (and kretprobes) has
         slots per callsite that are reserved to save the return address. This
         is fine when just a few points are traced. But users of fprobes, such
         as BPF programs, are starting to add many more locations, and this
         method does not scale.
      
         The function graph tracer was created to trace all functions in the
         kernel. In order to do this, when function graph tracing is started,
         every task gets its own shadow stack to hold the return address that
         is going to be traced. The function graph tracer has been updated to
         allow multiple users to use its infrastructure. Now have fprobes be
         one of those users. This will also allow for the fprobe and kretprobe
         methods to trace the return address to become obsolete. With new
         technologies like CFI that need to know about these methods of
         hijacking the return address, going toward a solution that has only
         one method of doing this will make the kernel less complex.
      
       - Cleanup with guard() and free() helpers
      
         There were several places in the code that had a lot of "goto out" in
         the error paths to either unlock a lock or free some memory that was
         allocated. But this is error prone. Convert the code over to use the
         guard() and free() helpers that let the compiler unlock locks or free
         memory when the function exits.
      
       - Remove disabling of interrupts in the function graph tracer
      
         When function graph tracer was first introduced, it could race with
         interrupts and NMIs. To prevent that race, it would disable
         interrupts and not trace NMIs. But the code has changed to allow NMIs
         and also interrupts. This change was done a long time ago, but the
         disabling of interrupts was never removed. Remove the disabling of
         interrupts in the function graph tracer is it is not needed. This
         greatly improves its performance.
      
       - Allow the :mod: command to enable tracing module functions on the
         kernel command line.
      
         The function tracer already has a way to enable functions to be
         traced in modules by writing ":mod:<module>" into set_ftrace_filter.
         That will enable either all the functions for the module if it is
         loaded, or if it is not, it will cache that command, and when the
         module is loaded that matches <module>, its functions will be
         enabled. This also allows init functions to be traced. But currently
         events do not have that feature.
      
         Because enabling function tracing can be done very early at boot up
         (before scheduling is enabled), the commands that can be done when
         function tracing is started is limited. Having the ":mod:" command to
         trace module functions as they are loaded is very useful. Update the
         kernel command line function filtering to allow it.
      
      * tag 'ftrace-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace: (26 commits)
        ftrace: Implement :mod: cache filtering on kernel command line
        tracing: Adopt __free() and guard() for trace_fprobe.c
        bpf: Use ftrace_get_symaddr() for kprobe_multi probes
        ftrace: Add ftrace_get_symaddr to convert fentry_ip to symaddr
        Documentation: probes: Update fprobe on function-graph tracer
        selftests/ftrace: Add a test case for repeating register/unregister fprobe
        selftests: ftrace: Remove obsolate maxactive syntax check
        tracing/fprobe: Remove nr_maxactive from fprobe
        fprobe: Add fprobe_header encoding feature
        fprobe: Rewrite fprobe on function-graph tracer
        s390/tracing: Enable HAVE_FTRACE_GRAPH_FUNC
        ftrace: Add CONFIG_HAVE_FTRACE_GRAPH_FUNC
        bpf: Enable kprobe_multi feature if CONFIG_FPROBE is enabled
        tracing/fprobe: Enable fprobe events with CONFIG_DYNAMIC_FTRACE_WITH_ARGS
        tracing: Add ftrace_fill_perf_regs() for perf event
        tracing: Add ftrace_partial_regs() for converting ftrace_regs to pt_regs
        fprobe: Use ftrace_regs in fprobe exit handler
        fprobe: Use ftrace_regs in fprobe entry handler
        fgraph: Pass ftrace_regs to retfunc
        fgraph: Replace fgraph_ret_regs with ftrace_regs
        ...
      2e04247f
    • Linus Torvalds's avatar
      Merge tag 'trace-ringbuffer-v6.14' of... · 0074adea
      Linus Torvalds authored
      Merge tag 'trace-ringbuffer-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace
      
      Pull trace ring-buffer updates from Steven Rostedt:
      
       - Clean up the __rb_map_vma() logic
      
         The logic of __rb_map_vma() has a error check with WARN_ON() that
         makes sure that the index does not go past the end of the array of
         buffers. The test in the loop pretty much guarantees that it will
         never happen, but since the relation of the variables used is a
         little complex, the WARN_ON() check was added. It was noticed that
         the array was dereferenced before this check and if the logic does
         break and for some reason the logic goes past the array, there will
         be an out of bounds access here. Move the access to after the
         WARN_ON().
      
       - Consolidate how the ring buffer is determined to be empty
      
         Currently there's two ways that are used to determine if the ring
         buffer is empty. One relies on the status of the commit and reader
         pages and what was read, and the other is on what was written vs what
         was read. By using the number of entries (written) method, it can be
         used for reading events that are out of the kernel's control (what
         pKVM will use). Move to this method to make it easier to implement a
         pKVM ring buffer that the kernel can read.
      
      * tag 'trace-ringbuffer-v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        ring-buffer: Make reading page consistent with the code logic
        ring-buffer: Check for empty ring-buffer with rb_num_of_entries()
      0074adea
    • Linus Torvalds's avatar
      Merge tag 'rcu.release.v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux · 9f3ee94e
      Linus Torvalds authored
      Pull RCU updates from Uladzislau Rezki:
       "Misc fixes:
         - check if IRQs are disabled in rcu_exp_need_qs()
         - instrument KCSAN exclusive-writer assertions
         - add extra WARN_ON_ONCE() check
         - set the cpu_no_qs.b.exp under lock
         - warn if callback enqueued on offline CPU
      
        Torture-test updates:
         - add rcutorture.preempt_duration kernel module parameter
         - make the TREE03 scenario do preemption
         - improve pooling timeouts for rcu_torture_writer()
         - improve output of "Failure/close-call rcutorture reader segments"
         - add some reader-state debugging checks
         - update doc of polled APIs
         - add extra diagnostics for per-reader-segment preemption
         - add an extra test for sched_clock()
         - improve testing on unresponsive systems
      
        SRCU updates:
         - improve doc for srcu_read_lock() in terms of return value
         - fix typo in comments
         - remove redundant GP sequence checks in the srcu_funnel_gp_start"
      
      * tag 'rcu.release.v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/rcu/linux: (31 commits)
        srcu: Remove redundant GP sequence checks in srcu_funnel_gp_start
        srcu: Fix typo s/srcu_check_read_flavor()/__srcu_check_read_flavor()/
        srcu: Guarantee non-negative return value from srcu_read_lock()
        MAINTAINERS: Update RCU git tree
        rcu: Add lockdep_assert_irqs_disabled() to rcu_exp_need_qs()
        rcu: Add KCSAN exclusive-writer assertions for rdp->cpu_no_qs.b.exp
        rcu: Make preemptible rcu_exp_handler() check idempotency
        rcu: Replace open-coded rcu_exp_need_qs() from rcu_exp_handler() with call
        rcu: Move rcu_report_exp_rdp() setting of ->cpu_no_qs.b.exp under lock
        rcu: Make rcu_report_exp_cpu_mult() caller acquire lock
        rcu: Report callbacks enqueued on offline CPU blind spot
        rcutorture: Use symbols for SRCU reader flavors
        rcutorture: Add per-reader-segment preemption diagnostics
        rcutorture: Read CPU ID for decoration protected by both reader types
        rcutorture: Add preempt_count() to rcutorture_one_extend_check() diagnostics
        rcutorture: Add parameters to control polled/conditional wait interval
        rcutorture: Add documentation for recent conditional and polled APIs
        rcutorture: Ignore attempts to test preemption and forward progress
        rcutorture: Make rcutorture_one_extend() check reader state
        rcutorture: Pretty-print rcutorture reader segments
        ...
      9f3ee94e
    • Linus Torvalds's avatar
      Merge tag 'slab-for-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab · ad37df3b
      Linus Torvalds authored
      Pull slab updates from Vlastimil Babka:
      
       - Move the kfree_rcu() implementation from RCU to SLAB subsystem
         (Uladzislau Rezki)
      
         The kfree_rcu() implementation has been historically maintained in
         the RCU subsystem. At LSF/MM we agreed to move it to SLAB, where it
         more logically belongs. The batching is planned be more integrated
         with SLUB internals in the future, while using the RCU APIs like any
         other subsystem.
      
       - Fix for kernel-doc warning (Randy Dunlap)
      
      * tag 'slab-for-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab:
        mm/slab: fix kernel-doc func param names
        mm/slab: Move kvfree_rcu() into SLAB
        rcu/kvfree: Adjust a shrinker name
        rcu/kvfree: Adjust names passed into trace functions
        rcu/kvfree: Move some functions under CONFIG_TINY_RCU
        rcu/kvfree: Initialize kvfree_rcu() separately
      ad37df3b
    • Linus Torvalds's avatar
      Merge tag 'irq-core-2025-01-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4c551165
      Linus Torvalds authored
      Pull interrupt subsystem updates from Thomas Gleixner:
      
       - Consolidate the machine_kexec_mask_interrupts() by providing a
         generic implementation and replacing the copy & pasta orgy in the
         relevant architectures.
      
       - Prevent unconditional operations on interrupt chips during kexec
         shutdown, which can trigger warnings in certain cases when the
         underlying interrupt has been shut down before.
      
       - Make the enforcement of interrupt handling in interrupt context
         unconditionally available, so that it actually works for non x86
         related interrupt chips. The earlier enablement for ARM GIC chips set
         the required chip flag, but did not notice that the check was hidden
         behind a config switch which is not selected by ARM[64].
      
       - Decrapify the handling of deferred interrupt affinity setting.
      
         Some interrupt chips require that affinity changes are made from the
         context of handling an interrupt to avoid certain race conditions.
         For x86 this was the default, but with interrupt remapping this
         requirement was lifted and a flag was introduced which tells the core
         code that affinity changes can be done in any context. Unrestricted
         affinity changes are the default for the majority of interrupt chips.
      
         RISCV has the requirement to add the deferred mode to one of it's
         interrupt controllers, but with the original implementation this
         would require to add the any context flag to all other RISC-V
         interrupt chips. That's backwards, so reverse the logic and require
         that chips, which need the deferred mode have to be marked
         accordingly. That avoids chasing the 'sane' chips and marking them.
      
       - Add multi-node support to the Loongarch AVEC interrupt controller
         driver.
      
       - The usual tiny cleanups, fixes and improvements all over the place.
      
      * tag 'irq-core-2025-01-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        genirq/generic_chip: Export irq_gc_mask_disable_and_ack_set()
        genirq/timings: Add kernel-doc for a function parameter
        genirq: Remove IRQ_MOVE_PCNTXT and related code
        x86/apic: Convert to IRQCHIP_MOVE_DEFERRED
        genirq: Provide IRQCHIP_MOVE_DEFERRED
        hexagon: Remove GENERIC_PENDING_IRQ leftover
        ARC: Remove GENERIC_PENDING_IRQ
        genirq: Remove handle_enforce_irqctx() wrapper
        genirq: Make handle_enforce_irqctx() unconditionally available
        irqchip/loongarch-avec: Add multi-nodes topology support
        irqchip/ts4800: Replace seq_printf() by seq_puts()
        irqchip/ti-sci-inta : Add module build support
        irqchip/ti-sci-intr: Add module build support
        irqchip/irq-brcmstb-l2: Replace brcmstb_l2_mask_and_ack() by generic function
        irqchip: keystone: Use syscon_regmap_lookup_by_phandle_args
        genirq/kexec: Prevent redundant IRQ masking by checking state before shutdown
        kexec: Consolidate machine_kexec_mask_interrupts() implementation
        genirq: Reuse irq_thread_fn() for forced thread case
        genirq: Move irq_thread_fn() further up in the code
      4c551165
    • Linus Torvalds's avatar
      Merge tag 'timers-core-2025-01-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · f200c315
      Linus Torvalds authored
      Pull timer and timekeeping updates from Thomas Gleixner:
      
       - Just boring cleanups, typo and comment fixes and trivial optimizations
      
      * tag 'timers-core-2025-01-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        timers/migration: Simplify top level detection on group setup
        timers: Optimize get_timer_[this_]cpu_base()
        timekeeping: Remove unused ktime_get_fast_timestamps()
        timer/migration: Fix kernel-doc warnings for union tmigr_state
        tick/broadcast: Add kernel-doc for function parameters
        hrtimers: Update the return type of enqueue_hrtimer()
        clocksource/wdtest: Print time values for short udelay(1)
        posix-timers: Fix typo in __lock_timer()
        vdso: Correct typo in PAGE_SHIFT comment
      f200c315
    • Linus Torvalds's avatar
      Merge tag 'livepatching-for-6.14' of... · 33608823
      Linus Torvalds authored
      Merge tag 'livepatching-for-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching
      
      Pull livepatching updates from Petr Mladek:
      
       - Add a sysfs attribute showing the livepatch ordering
      
       - Some code clean up
      
      * tag 'livepatching-for-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching:
        selftests: livepatch: add test cases of stack_order sysfs interface
        livepatch: Add stack_order sysfs attribute
        selftests/livepatch: Replace hardcoded module name with variable in test-callbacks.sh
      33608823
    • Linus Torvalds's avatar
      Merge tag 'printk-for-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux · 4ca6c022
      Linus Torvalds authored
      Pull printk updates from Petr Mladek:
      
       - Prevent possible deadlocks, caused by the lock serializing per-CPU
         backtraces, by entering the deferred printk context
      
       - Enforce the right casting in LOG_BUF_LEN_MAX definition
      
      * tag 'printk-for-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux:
        printk: Defer legacy printing when holding printk_cpu_sync
        printk: Remove redundant deferred check in vprintk()
        printk: Fix signed integer overflow when defining LOG_BUF_LEN_MAX
      4ca6c022
    • Linus Torvalds's avatar
      Merge tag 'sched-core-2025-01-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 62de6e16
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
       "Fair scheduler (SCHED_FAIR) enhancements:
      
         - Behavioral improvements:
            - Untangle NEXT_BUDDY and pick_next_task() (Peter Zijlstra)
      
         - Delayed-dequeue enhancements & fixes: (Vincent Guittot)
            - Rename h_nr_running into h_nr_queued
            - Add new cfs_rq.h_nr_runnable
            - Use the new cfs_rq.h_nr_runnable
            - Removed unsued cfs_rq.h_nr_delayed
            - Rename cfs_rq.idle_h_nr_running into h_nr_idle
            - Remove unused cfs_rq.idle_nr_running
            - Rename cfs_rq.nr_running into nr_queued
            - Do not try to migrate delayed dequeue task
            - Fix variable declaration position
            - Encapsulate set custom slice in a __setparam_fair() function
      
         - Fixes:
            - Fix race between yield_to() and try_to_wake_up() (Tianchen Ding)
            - Fix CPU bandwidth limit bypass during CPU hotplug (Vishal
              Chourasia)
      
         - Cleanups:
            - Clean up in migrate_degrades_locality() to improve readability
              (Peter Zijlstra)
            - Mark m*_vruntime() with __maybe_unused (Andy Shevchenko)
            - Update comments after sched_tick() rename (Sebastian Andrzej
              Siewior)
            - Remove CONFIG_CFS_BANDWIDTH=n definition of cfs_bandwidth_used()
              (Valentin Schneider)
      
        Deadline scheduler (SCHED_DL) enhancements:
      
         - Restore dl_server bandwidth on non-destructive root domain changes
           (Juri Lelli)
      
         - Correctly account for allocated bandwidth during hotplug (Juri
           Lelli)
      
         - Check bandwidth overflow earlier for hotplug (Juri Lelli)
      
         - Clean up goto label in pick_earliest_pushable_dl_task() (John
           Stultz)
      
         - Consolidate timer cancellation (Wander Lairson Costa)
      
        Load-balancer enhancements:
      
         - Improve performance by prioritizing migrating eligible tasks in
           sched_balance_rq() (Hao Jia)
      
         - Do not compute NUMA Balancing stats unnecessarily during
           load-balancing (K Prateek Nayak)
      
         - Do not compute overloaded status unnecessarily during
           load-balancing (K Prateek Nayak)
      
        Generic scheduling code enhancements:
      
         - Use READ_ONCE() in task_on_rq_queued(), to consistently use the
           WRITE_ONCE() updated ->on_rq field (Harshit Agarwal)
      
        Isolated CPUs support enhancements: (Waiman Long)
      
         - Make "isolcpus=nohz" equivalent to "nohz_full"
         - Consolidate housekeeping cpumasks that are always identical
         - Remove HK_TYPE_SCHED
         - Unify HK_TYPE_{TIMER|TICK|MISC} to HK_TYPE_KERNEL_NOISE
      
        RSEQ enhancements:
      
         - Validate read-only fields under DEBUG_RSEQ config (Mathieu
           Desnoyers)
      
        PSI enhancements:
      
         - Fix race when task wakes up before psi_sched_switch() adjusts flags
           (Chengming Zhou)
      
        IRQ time accounting performance enhancements: (Yafang Shao)
      
         - Define sched_clock_irqtime as static key
         - Don't account irq time if sched_clock_irqtime is disabled
      
        Virtual machine scheduling enhancements:
      
         - Don't try to catch up excess steal time (Suleiman Souhlal)
      
        Heterogenous x86 CPU scheduling enhancements: (K Prateek Nayak)
      
         - Convert "sysctl_sched_itmt_enabled" to boolean
         - Use guard() for itmt_update_mutex
         - Move the "sched_itmt_enabled" sysctl to debugfs
         - Remove x86_smt_flags and use cpu_smt_flags directly
         - Use x86_sched_itmt_flags for PKG domain unconditionally
      
        Debugging code & instrumentation enhancements:
      
         - Change need_resched warnings to pr_err() (David Rientjes)
         - Print domain name in /proc/schedstat (K Prateek Nayak)
         - Fix value reported by hot tasks pulled in /proc/schedstat (Peter
           Zijlstra)
         - Report the different kinds of imbalances in /proc/schedstat
           (Swapnil Sapkal)
         - Move sched domain name out of CONFIG_SCHED_DEBUG (Swapnil Sapkal)
         - Update Schedstat version to 17 (Swapnil Sapkal)"
      
      * tag 'sched-core-2025-01-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (48 commits)
        rseq: Fix rseq unregistration regression
        psi: Fix race when task wakes up before psi_sched_switch() adjusts flags
        sched, psi: Don't account irq time if sched_clock_irqtime is disabled
        sched: Don't account irq time if sched_clock_irqtime is disabled
        sched: Define sched_clock_irqtime as static key
        sched/fair: Do not compute overloaded status unnecessarily during lb
        sched/fair: Do not compute NUMA Balancing stats unnecessarily during lb
        x86/topology: Use x86_sched_itmt_flags for PKG domain unconditionally
        x86/topology: Remove x86_smt_flags and use cpu_smt_flags directly
        x86/itmt: Move the "sched_itmt_enabled" sysctl to debugfs
        x86/itmt: Use guard() for itmt_update_mutex
        x86/itmt: Convert "sysctl_sched_itmt_enabled" to boolean
        sched/core: Prioritize migrating eligible tasks in sched_balance_rq()
        sched/debug: Change need_resched warnings to pr_err
        sched/fair: Encapsulate set custom slice in a __setparam_fair() function
        sched: Fix race between yield_to() and try_to_wake_up()
        docs: Update Schedstat version to 17
        sched/stats: Print domain name in /proc/schedstat
        sched: Move sched domain name out of CONFIG_SCHED_DEBUG
        sched: Report the different kinds of imbalances in /proc/schedstat
        ...
      62de6e16
    • Linus Torvalds's avatar
      Merge tag 'x86-cleanups-2025-01-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 858df1de
      Linus Torvalds authored
      Pull x86 cleanups from Ingo Molnar:
       "Miscellaneous x86 cleanups and typo fixes, and also the removal of
        the 'disablelapic' boot parameter"
      
      * tag 'x86-cleanups-2025-01-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/ioapic: Remove a stray tab in the IO-APIC type string
        x86/cpufeatures: Remove "AMD" from the comments to the AMD-specific leaf
        Documentation/kernel-parameters: Fix a typo in kvm.enable_virt_at_load text
        x86/cpu: Fix typo in x86_match_cpu()'s doc
        x86/apic: Remove "disablelapic" cmdline option
        Documentation: Merge x86-specific boot options doc into kernel-parameters.txt
        x86/ioremap: Remove unused size parameter in remapping functions
        x86/ioremap: Simplify setup_data mapping variants
        x86/boot/compressed: Remove unused header includes from kaslr.c
      858df1de
    • Linus Torvalds's avatar
      Merge tag 'perf-core-2025-01-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 6c4aa896
      Linus Torvalds authored
      Pull performance events updates from Ingo Molnar:
       "Seqlock optimizations that arose in a perf context and were merged
        into the perf tree:
      
         - seqlock: Add raw_seqcount_try_begin (Suren Baghdasaryan)
         - mm: Convert mm_lock_seq to a proper seqcount (Suren Baghdasaryan)
         - mm: Introduce mmap_lock_speculate_{try_begin|retry} (Suren
           Baghdasaryan)
         - mm/gup: Use raw_seqcount_try_begin() (Peter Zijlstra)
      
        Core perf enhancements:
      
         - Reduce 'struct page' footprint of perf by mapping pages in advance
           (Lorenzo Stoakes)
         - Save raw sample data conditionally based on sample type (Yabin Cui)
         - Reduce sampling overhead by checking sample_type in
           perf_sample_save_callchain() and perf_sample_save_brstack() (Yabin
           Cui)
         - Export perf_exclude_event() (Namhyung Kim)
      
        Uprobes scalability enhancements: (Andrii Nakryiko)
      
         - Simplify find_active_uprobe_rcu() VMA checks
         - Add speculative lockless VMA-to-inode-to-uprobe resolution
         - Simplify session consumer tracking
         - Decouple return_instance list traversal and freeing
         - Ensure return_instance is detached from the list before freeing
         - Reuse return_instances between multiple uretprobes within task
         - Guard against kmemdup() failing in dup_return_instance()
      
        AMD core PMU driver enhancements:
      
         - Relax privilege filter restriction on AMD IBS (Namhyung Kim)
      
        AMD RAPL energy counters support: (Dhananjay Ugwekar)
      
         - Introduce topology_logical_core_id() (K Prateek Nayak)
         - Remove the unused get_rapl_pmu_cpumask() function
         - Remove the cpu_to_rapl_pmu() function
         - Rename rapl_pmu variables
         - Make rapl_model struct global
         - Add arguments to the init and cleanup functions
         - Modify the generic variable names to *_pkg*
         - Remove the global variable rapl_msrs
         - Move the cntr_mask to rapl_pmus struct
         - Add core energy counter support for AMD CPUs
      
        Intel core PMU driver enhancements:
      
         - Support RDPMC 'metrics clear mode' feature (Kan Liang)
         - Clarify adaptive PEBS processing (Kan Liang)
         - Factor out functions for PEBS records processing (Kan Liang)
         - Simplify the PEBS records processing for adaptive PEBS (Kan Liang)
      
        Intel uncore driver enhancements: (Kan Liang)
      
         - Convert buggy pmu->func_id use to pmu->registered
         - Support more units on Granite Rapids"
      
      * tag 'perf-core-2025-01-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (33 commits)
        perf: map pages in advance
        perf/x86/intel/uncore: Support more units on Granite Rapids
        perf/x86/intel/uncore: Clean up func_id
        perf/x86/intel: Support RDPMC metrics clear mode
        uprobes: Guard against kmemdup() failing in dup_return_instance()
        perf/x86: Relax privilege filter restriction on AMD IBS
        perf/core: Export perf_exclude_event()
        uprobes: Reuse return_instances between multiple uretprobes within task
        uprobes: Ensure return_instance is detached from the list before freeing
        uprobes: Decouple return_instance list traversal and freeing
        uprobes: Simplify session consumer tracking
        uprobes: add speculative lockless VMA-to-inode-to-uprobe resolution
        uprobes: simplify find_active_uprobe_rcu() VMA checks
        mm: introduce mmap_lock_speculate_{try_begin|retry}
        mm: convert mm_lock_seq to a proper seqcount
        mm/gup: Use raw_seqcount_try_begin()
        seqlock: add raw_seqcount_try_begin
        perf/x86/rapl: Add core energy counter support for AMD CPUs
        perf/x86/rapl: Move the cntr_mask to rapl_pmus struct
        perf/x86/rapl: Remove the global variable rapl_msrs
        ...
      6c4aa896
    • Linus Torvalds's avatar
      Merge tag 'objtool-core-2025-01-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · a6640c8c
      Linus Torvalds authored
      Pull objtool updates from Ingo Molnar:
      
       - Introduce the generic section-based annotation infrastructure a.k.a.
         ASM_ANNOTATE/ANNOTATE (Peter Zijlstra)
      
       - Convert various facilities to ASM_ANNOTATE/ANNOTATE: (Peter Zijlstra)
          - ANNOTATE_NOENDBR
          - ANNOTATE_RETPOLINE_SAFE
          - instrumentation_{begin,end}()
          - VALIDATE_UNRET_BEGIN
          - ANNOTATE_IGNORE_ALTERNATIVE
          - ANNOTATE_INTRA_FUNCTION_CALL
          - {.UN}REACHABLE
      
       - Optimize the annotation-sections parsing code (Peter Zijlstra)
      
       - Centralize annotation definitions in <linux/objtool.h>
      
       - Unify & simplify the barrier_before_unreachable()/unreachable()
         definitions (Peter Zijlstra)
      
       - Convert unreachable() calls to BUG() in x86 code, as unreachable()
         has unreliable code generation (Peter Zijlstra)
      
       - Remove annotate_reachable() and annotate_unreachable(), as it's
         unreliable against compiler optimizations (Peter Zijlstra)
      
       - Fix non-standard ANNOTATE_REACHABLE annotation order (Peter Zijlstra)
      
       - Robustify the annotation code by warning about unknown annotation
         types (Peter Zijlstra)
      
       - Allow arch code to discover jump table size, in preparation of
         annotated jump table support (Ard Biesheuvel)
      
      * tag 'objtool-core-2025-01-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mm: Convert unreachable() to BUG()
        objtool: Allow arch code to discover jump table size
        objtool: Warn about unknown annotation types
        objtool: Fix ANNOTATE_REACHABLE to be a normal annotation
        objtool: Convert {.UN}REACHABLE to ANNOTATE
        objtool: Remove annotate_{,un}reachable()
        loongarch: Use ASM_REACHABLE
        x86: Convert unreachable() to BUG()
        unreachable: Unify
        objtool: Collect more annotations in objtool.h
        objtool: Collapse annotate sequences
        objtool: Convert ANNOTATE_INTRA_FUNCTION_CALL to ANNOTATE
        objtool: Convert ANNOTATE_IGNORE_ALTERNATIVE to ANNOTATE
        objtool: Convert VALIDATE_UNRET_BEGIN to ANNOTATE
        objtool: Convert instrumentation_{begin,end}() to ANNOTATE
        objtool: Convert ANNOTATE_RETPOLINE_SAFE to ANNOTATE
        objtool: Convert ANNOTATE_NOENDBR to ANNOTATE
        objtool: Generic annotation infrastructure
      a6640c8c
    • Linus Torvalds's avatar
      Merge tag 'locking-core-2025-01-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 8838a1a2
      Linus Torvalds authored
      Pull locking updates from Ingo Molnar:
       "Lockdep:
      
         - Improve and fix lockdep bitsize limits, clarify the Kconfig
           documentation (Carlos Llamas)
      
         - Fix lockdep build warning on Clang related to
           chain_hlock_class_idx() inlining (Andy Shevchenko)
      
         - Relax the requirements of PROVE_RAW_LOCK_NESTING arch support by
           not tying it to ARCH_SUPPORTS_RT unnecessarily (Waiman Long)
      
        Rust integration:
      
         - Support lock pointers managed by the C side (Lyude Paul)
      
         - Support guard types (Lyude Paul)
      
         - Update MAINTAINERS file filters to include the Rust locking code
           (Boqun Feng)
      
        Wake-queues:
      
         - Add raw_spin_*wake() helpers to simplify locking code (John Stultz)
      
        SMP cross-calls:
      
         - Fix potential data update race by evaluating the local cond_func()
           before IPI side-effects (Mathieu Desnoyers)
      
        Guard primitives:
      
         - Ease [c]tags based searches by including the cleanup/guard type
           primitives (Peter Zijlstra)
      
        ww_mutexes:
      
         - Simplify the ww_mutex self-test code via swap() (Thorsten Blum)
      
        Static calls:
      
         - Update the static calls MAINTAINERS file-pattern (Jiri Slaby)"
      
      * tag 'locking-core-2025-01-20' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        MAINTAINERS: Add static_call_inline.c to STATIC BRANCH/CALL
        cleanup, tags: Create tags for the cleanup primitives
        sched/wake_q: Add helper to call wake_up_q after unlock with preemption disabled
        rust: sync: Add lock::Backend::assert_is_held()
        rust: sync: Add SpinLockGuard type alias
        rust: sync: Add MutexGuard type alias
        rust: sync: Make Guard::new() public
        rust: sync: Add Lock::from_raw() for Lock<(), B>
        locking: MAINTAINERS: Start watching Rust locking primitives
        lockdep: Move lockdep_assert_locked() under #ifdef CONFIG_PROVE_LOCKING
        lockdep: Mark chain_hlock_class_idx() with __maybe_unused
        lockdep: Document MAX_LOCKDEP_CHAIN_HLOCKS calculation
        lockdep: Clarify size for LOCKDEP_*_BITS configs
        lockdep: Fix upper limit for LOCKDEP_*_BITS configs
        locking/ww_mutex/test: Use swap() macro
        smp/scf: Evaluate local cond_func() before IPI side-effects
        locking/lockdep: Enforce PROVE_RAW_LOCK_NESTING only if ARCH_SUPPORTS_RT
      8838a1a2
    • Linus Torvalds's avatar
      Merge tag 'x86_misc_for_v6.14_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b9d8a295
      Linus Torvalds authored
      Pull misc x86 updates from Borislav Petkov:
      
       - The first part of a restructuring of AMD's representation of a
         northbridge which is legacy now, and the creation of the new AMD node
         concept which represents the Zen architecture of having a collection
         of I/O devices within an SoC. Those nodes comprise the so-called data
         fabric on Zen.
      
         This has at least one practical advantage of not having to add a PCI
         ID each time a new data fabric PCI device releases. Eventually, the
         lot more uniform provider of data fabric functionality amd_node.c
         will be used by all the drivers which need it
      
       - Smaller cleanups
      
      * tag 'x86_misc_for_v6.14_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/amd_node: Use defines for SMN register offsets
        x86/amd_node: Remove dependency on AMD_NB
        x86/amd_node: Update __amd_smn_rw() error paths
        x86/amd_nb: Move SMN access code to a new amd_node driver
        x86/amd_nb, hwmon: (k10temp): Simplify amd_pci_dev_to_node_id()
        x86/amd_nb: Simplify function 3 search
        x86/amd_nb: Use topology info to get AMD node count
        x86/amd_nb: Simplify root device search
        x86/amd_nb: Simplify function 4 search
        x86: Start moving AMD node functionality out of AMD_NB
        x86/amd_nb: Clean up early_is_amd_nb()
        x86/amd_nb: Restrict init function to AMD-based systems
        x86/mtrr: Rename mtrr_overwrite_state() to guest_force_mtrr_state()
      b9d8a295
    • Linus Torvalds's avatar
      Merge tag 'x86_cpu_for_v6.14_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 48795f90
      Linus Torvalds authored
      Pull x86 cpuid updates from Borislav Petkov:
      
       - Remove the less generic CPU matching infra around struct x86_cpu_desc
         and use the generic struct x86_cpu_id thing
      
       - Remove magic naked numbers for CPUID functions and use proper defines
         of the prefix CPUID_LEAF_*. Consolidate some of the crazy use around
         the tree
      
       - Smaller cleanups and improvements
      
      * tag 'x86_cpu_for_v6.14_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/cpu: Make all all CPUID leaf names consistent
        x86/fpu: Remove unnecessary CPUID level check
        x86/fpu: Move CPUID leaf definitions to common code
        x86/tsc: Remove CPUID "frequency" leaf magic numbers.
        x86/tsc: Move away from TSC leaf magic numbers
        x86/cpu: Move TSC CPUID leaf definition
        x86/cpu: Refresh DCA leaf reading code
        x86/cpu: Remove unnecessary MwAIT leaf checks
        x86/cpu: Use MWAIT leaf definition
        x86/cpu: Move MWAIT leaf definition to common header
        x86/cpu: Remove 'x86_cpu_desc' infrastructure
        x86/cpu: Move AMD erratum 1386 table over to 'x86_cpu_id'
        x86/cpu: Replace PEBS use of 'x86_cpu_desc' use with 'x86_cpu_id'
        x86/cpu: Expose only stepping min/max interface
        x86/cpu: Introduce new microcode matching helper
        x86/cpufeature: Document cpu_feature_enabled() as the default to use
        x86/paravirt: Remove the WBINVD callback
        x86/cpufeatures: Free up unused feature bits
      48795f90
    • Linus Torvalds's avatar
      Merge tag 'x86_sev_for_v6.14_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 13b6931c
      Linus Torvalds authored
      Pull x86 SEV updates from Borislav Petkov:
      
       - A segmented Reverse Map table (RMP) is a across-nodes distributed
         table of sorts which contains per-node descriptors of each node-local
         4K page, denoting its ownership (hypervisor, guest, etc) in the realm
         of confidential computing. Add support for such a table in order to
         improve referential locality when accessing or modifying RMP table
         entries
      
       - Add support for reading the TSC in SNP guests by removing any
         interference or influence the hypervisor might have, with the goal of
         making a confidential guest even more independent from the hypervisor
      
      * tag 'x86_sev_for_v6.14_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/sev: Add the Secure TSC feature for SNP guests
        x86/tsc: Init the TSC for Secure TSC guests
        x86/sev: Mark the TSC in a secure TSC guest as reliable
        x86/sev: Prevent RDTSC/RDTSCP interception for Secure TSC enabled guests
        x86/sev: Prevent GUEST_TSC_FREQ MSR interception for Secure TSC enabled guests
        x86/sev: Change TSC MSR behavior for Secure TSC enabled guests
        x86/sev: Add Secure TSC support for SNP guests
        x86/sev: Relocate SNP guest messaging routines to common code
        x86/sev: Carve out and export SNP guest messaging init routines
        virt: sev-guest: Replace GFP_KERNEL_ACCOUNT with GFP_KERNEL
        virt: sev-guest: Remove is_vmpck_empty() helper
        x86/sev/docs: Document the SNP Reverse Map Table (RMP)
        x86/sev: Add full support for a segmented RMP table
        x86/sev: Treat the contiguous RMP table as a single RMP segment
        x86/sev: Map only the RMP table entries instead of the full RMP range
        x86/sev: Move the SNP probe routine out of the way
        x86/sev: Require the RMPREAD instruction after Zen4
        x86/sev: Add support for the RMPREAD instruction
        x86/sev: Prepare for using the RMPREAD instruction to access the RMP
      13b6931c
    • Linus Torvalds's avatar
      Merge tag 'x86_microcode_for_v6.14_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 254d7633
      Linus Torvalds authored
      Pull x86 microcode loader updates from Borislav Petkov:
      
       - A bunch of minor cleanups
      
      * tag 'x86_microcode_for_v6.14_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/microcode/AMD: Remove ret local var in early_apply_microcode()
        x86/microcode/AMD: Have __apply_microcode_amd() return bool
        x86/microcode/AMD: Make __verify_patch_size() return bool
        x86/microcode/AMD: Remove bogus comment from parse_container()
        x86/microcode/AMD: Return bool from find_blobs_in_containers()
      254d7633
    • Linus Torvalds's avatar
      Merge tag 'x86_cache_for_v6.14_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3357d1d1
      Linus Torvalds authored
      Pull x86 resource control updates from Borislav Petkov:
      
       - Extend resctrl with the capability of total memory bandwidth
         monitoring, thus accomodating systems which support only total but
         not local memory bandwidth monitoring. Add the respective new mount
         options
      
       - The usual cleanups
      
      * tag 'x86_cache_for_v6.14_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/resctrl: Document the new "mba_MBps_event" file
        x86/resctrl: Add write option to "mba_MBps_event" file
        x86/resctrl: Add "mba_MBps_event" file to CTRL_MON directories
        x86/resctrl: Make mba_sc use total bandwidth if local is not supported
        x86/resctrl: Compute memory bandwidth for all supported events
        x86/resctrl: Modify update_mba_bw() to use per CTRL_MON group event
        x86/resctrl: Prepare for per-CTRL_MON group mba_MBps control
        x86/resctrl: Introduce resctrl_file_fflags_init() to initialize fflags
        x86/resctrl: Use kthread_run_on_cpu()
      3357d1d1
    • Linus Torvalds's avatar
      Merge tag 'x86_bugs_for_v6.14_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d80825ee
      Linus Torvalds authored
      Pull x86 CPU speculation update from Borislav Petkov:
      
       - Add support for AMD hardware which is not affected by SRSO on the
         user/kernel attack vector and advertise it to guest userspace
      
      * tag 'x86_bugs_for_v6.14_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        KVM: x86: Advertise SRSO_USER_KERNEL_NO to userspace
        x86/bugs: Add SRSO_USER_KERNEL_NO support
      d80825ee
    • Linus Torvalds's avatar
      Merge tag 'edac_updates_for_v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras · 0763dd89
      Linus Torvalds authored
      Pull EDAC updates from Borislav Petkov:
      
       - Remove the EDAC PowerPC Cell driver due to the removal of the IBM
         Cell blades support
      
       - Add a new EDAC driver for Loongson SoCs which reports single-bit
         correctable errors
      
       - Extend the SKX and i10NM EDAC drivers to support UV systems which can
         have more than 8 nodes
      
       - Add Intel Clearwater Forest server support to i10nm_edac
      
       - Minor fix
      
      * tag 'edac_updates_for_v6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/ras/ras:
        EDAC/cell: Remove powerpc Cell driver
        EDAC: Add an EDAC driver for the Loongson memory controller
        EDAC: Fix typos in comments
        EDAC/{i10nm,skx,skx_common}: Support UV systems
        EDAC/i10nm: Add Intel Clearwater Forest server support
      0763dd89
    • Linus Torvalds's avatar
      Merge tag 'ras_core_for_v6.14_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d3504411
      Linus Torvalds authored
      Pull x86 RAS updates from Borislav Petkov:
      
       - Remove the shared threshold bank hack on AMD and streamline and
         simplify it
      
       - Cleanup and sanitize MCA code
      
      * tag 'ras_core_for_v6.14_rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/mce/amd: Remove shared threshold bank plumbing
        x86/mce: Remove the redundant mce_hygon_feature_init()
        x86/mce: Convert family/model mixed checks to VFM-based checks
        x86/mce: Break up __mcheck_cpu_apply_quirks()
        x86/mce: Make four functions return bool
        x86/mce/threshold: Remove the redundant this_cpu_dec_return()
        x86/mce: Make several functions return bool
      d3504411
    • Mathieu Desnoyers's avatar
      rseq: Fix rseq unregistration regression · 40724eca
      Mathieu Desnoyers authored
      
      A logic inversion in rseq_reset_rseq_cpu_node_id() causes the rseq
      unregistration to fail when rseq_validate_ro_fields() succeeds rather
      than the opposite.
      
      This affects both CONFIG_DEBUG_RSEQ=y and CONFIG_DEBUG_RSEQ=n.
      
      Fixes: 7d5265ff ("rseq: Validate read-only fields under DEBUG_RSEQ config")
      Signed-off-by: default avatarMathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
      Link: https://lore.kernel.org/r/20250116205956.836074-1-mathieu.desnoyers@efficios.com
      40724eca
    • Linus Torvalds's avatar
      Merge tag 'powerpc-6.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 95ec54a4
      Linus Torvalds authored
      Pull powerpc updates from Madhavan Srinivasan:
      
       - Add preempt lazy support
      
       - Deprecate cxl and cxl flash driver
      
       - Fix a possible IOMMU related OOPS at boot on pSeries
      
       - Optimize sched_clock() in ppc32 by replacing mulhdu() by
         mul_u64_u64_shr()
      
      Thanks to Andrew Donnellan, Andy Shevchenko, Ankur Arora, Christophe
      Leroy, Frederic Barrat, Gaurav Batra, Luis Felipe Hernandez, Michael
      Ellerman, Nilay Shroff, Ricardo B.  Marliere, Ritesh Harjani (IBM),
      Sebastian Andrzej Siewior, Shrikanth Hegde, Sourabh Jain, Thorsten Blum,
      and Zhu Jun.
      
      * tag 'powerpc-6.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        selftests/powerpc: Fix argument order to timer_sub()
        powerpc/prom_init: Use IS_ENABLED()
        powerpc/pseries/iommu: IOMMU incorrectly marks MMIO range in DDW
        powerpc: Use str_on_off() helper in check_cache_coherency()
        powerpc: Large user copy aware of full:rt:lazy preemption
        powerpc: Add preempt lazy support
        powerpc/book3s64/hugetlb: Fix disabling hugetlb when fadump is active
        powerpc/vdso: Mark the vDSO code read-only after init
        powerpc/64: Use get_user() in start_thread()
        macintosh: declare ctl_table as const
        selftest/powerpc/ptrace: Cleanup duplicate macro definitions
        selftest/powerpc/ptrace/ptrace-pkey: Remove duplicate macros
        selftest/powerpc/ptrace/core-pkey: Remove duplicate macros
        powerpc/8xx: Drop legacy-of-mm-gpiochip.h header
        scsi/cxlflash: Deprecate driver
        cxl: Deprecate driver
        selftests/powerpc: Fix typo in test-vphn.c
        powerpc/xmon: Use str_yes_no() helper in dump_one_paca()
        powerpc/32: Replace mulhdu() by mul_u64_u64_shr()
      95ec54a4
    • Linus Torvalds's avatar
      Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · 9ad09c4f
      Linus Torvalds authored
      Pull arm64 updates from Will Deacon:
       "We've got a little less than normal thanks to the holidays in
        December, but there's the usual summary below. The highlight is
        probably the 52-bit physical addressing (LPA2) clean-up from Ard.
      
        Confidential Computing:
      
         - Register a platform device when running in CCA realm mode to enable
           automatic loading of dependent modules
      
        CPU Features:
      
         - Update a bunch of system register definitions to pick up new field
           encodings from the architectural documentation
      
         - Add hwcaps and selftests for the new (2024) dpISA extensions
      
        Documentation:
      
         - Update EL3 (firmware) requirements for booting Linux on modern
           arm64 designs
      
         - Remove stale information about the kernel virtual memory map
      
        Miscellaneous:
      
         - Minor cleanups and typo fixes
      
        Memory management:
      
         - Fix vmemmap_check_pmd() to look at the PMD type bits
      
         - LPA2 (52-bit physical addressing) cleanups and minor fixes
      
         - Adjust physical address space depending upon whether or not LPA2 is
           enabled
      
        Perf and PMUs:
      
         - Add port filtering support for NVIDIA's NVLINK-C2C Coresight PMU
      
         - Extend AXI filtering support for the DDR PMU on NXP IMX SoCs
      
         - Fix Designware PCIe PMU event numbering
      
         - Add generic branch events for the Apple M1 CPU PMU
      
         - Add support for Marvell Odyssey DDR and LLC-TAD PMUs
      
         - Cleanups to the Hisilicon DDRC and Uncore PMU code
      
         - Advertise discard mode for the SPE PMU
      
         - Add the perf users mailing list to our MAINTAINERS entry"
      
      * tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux: (64 commits)
        Documentation: arm64: Remove stale and redundant virtual memory diagrams
        perf docs: arm_spe: Document new discard mode
        perf: arm_spe: Add format option for discard mode
        MAINTAINERS: Add perf list for drivers/perf/
        arm64: Remove duplicate included header
        drivers/perf: apple_m1: Map generic branch events
        arm64: rsi: Add automatic arm-cca-guest module loading
        kselftest/arm64: Add 2024 dpISA extensions to hwcap test
        KVM: arm64: Allow control of dpISA extensions in ID_AA64ISAR3_EL1
        arm64/hwcap: Describe 2024 dpISA extensions to userspace
        arm64/sysreg: Update ID_AA64SMFR0_EL1 to DDI0601 2024-12
        arm64: Filter out SVE hwcaps when FEAT_SVE isn't implemented
        drivers/perf: hisi: Set correct IRQ affinity for PMUs with no association
        arm64/sme: Move storage of reg_smidr to __cpuinfo_store_cpu()
        arm64: mm: Test for pmd_sect() in vmemmap_check_pmd()
        arm64/mm: Replace open encodings with PXD_TABLE_BIT
        arm64/mm: Rename pte_mkpresent() as pte_mkvalid()
        arm64/sysreg: Update ID_AA64ISAR2_EL1 to DDI0601 2024-09
        arm64/sysreg: Update ID_AA64ZFR0_EL1 to DDI0601 2024-09
        arm64/sysreg: Update ID_AA64FPFR0_EL1 to DDI0601 2024-09
        ...
      9ad09c4f
    • Linus Torvalds's avatar
      Merge tag 'm68k-for-v6.14-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · e7244cc3
      Linus Torvalds authored
      Pull m68k updates from Geert Uytterhoeven:
      
       - Use the generic muldi3 libgcc function
      
       - Miscellaneous fixes and improvements
      
      * tag 'm68k-for-v6.14-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k: libgcc: Fix lvalue abuse in umul_ppmm()
        m68k: vga: Fix I/O defines
        zorro: Constify 'struct bin_attribute'
        m68k: atari: Use str_on_off() helper in atari_nvram_proc_read()
        m68k: Use kernel's generic muldi3 libgcc function
      e7244cc3
    • Linus Torvalds's avatar
      Merge tag 's390-6.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 4f42d0bf
      Linus Torvalds authored
      Pull s390 updates from Alexander Gordeev:
      
       - Select config option KASAN_VMALLOC if KASAN is enabled
      
       - Select config option VMAP_STACK unconditionally
      
       - Implement arch_atomic_inc() / arch_atomic_dec() functions which
         result in a single instruction if compiled for z196 or newer
         architectures
      
       - Make layering between atomic.h and atomic_ops.h consistent
      
       - Comment s390 preempt_count implementation
      
       - Remove pre MARCH_HAS_Z196_FEATURES preempt count implementation
      
       - GCC uses the number of lines of an inline assembly to calculate
         number of instructions and decide on inlining. Therefore remove
         superfluous new lines from a couple of inline assemblies.
      
       - Provide arch_atomic_*_and_test() implementations that allow the
         compiler to generate slightly better code.
      
       - Optimize __preempt_count_dec_and_test()
      
       - Remove __bootdata annotations from declarations in header files
      
       - Add missing include of <linux/smp.h> in abs_lowcore.h to provide
         declarations for get_cpu() and put_cpu() used in the code
      
       - Fix suboptimal kernel image base when running make kasan.config
      
       - Remove huge_pte_none() and huge_pte_none_mostly() as are identical to
         the generic variants
      
       - Remove unused PAGE_KERNEL_EXEC, SEGMENT_KERNEL_EXEC, and
         REGION3_KERNEL_EXEC defines
      
       - Simplify noexec page protection handling and change the page, segment
         and region3 protection definitions automatically if the instruction
         execution-protection facility is not available
      
       - Save one instruction and prefer EXRL instruction over EX in string,
         xor_*(), amode31 and other functions
      
       - Create /dev/diag misc device to fetch diagnose specific information
         from the kernel and provide it to userspace
      
       - Retrieve electrical power readings using DIAGNOSE 0x324 ioctl
      
       - Make ccw_device_get_ciw() consistent and use array indices instead of
         pointer arithmetic
      
       - s390/qdio: Move memory alloc/pointer arithmetic for slib and sl into
         one place
      
       - The sysfs core now allows instances of 'struct bin_attribute' to be
         moved into read-only memory. Make use of that in s390 code
      
       - Add missing TLB range adjustment in pud_free_tlb()
      
       - Improve topology setup by adding early polarization detection
      
       - Fix length checks in codepage_convert() function
      
       - The generic bitops implementation is nearly identical to the s390
         one. Switch to the generic variant and decrease a bit the kernel
         image size
      
       - Provide an optimized arch_test_bit() implementation which makes use
         of flag output constraint. This generates slightly better code
      
       - Provide memory topology information obtanied with DIAGNOSE 0x310
         using ioctl.
      
       - Various other small improvements, fixes, and cleanups
      
      Also, some changes came in through a merge of 'pci-device-recovery'
      branch:
      
       - Add PCI error recovery status mechanism
      
       - Simplify and document debug_next_entry() logic
      
       - Split private data allocation and freeing out of debug file open()
         and close() operations
      
       - Add debug_dump() function that gets a textual representation of a
         debug info (e.g. PCI recovery hardware error logs)
      
       - Add formatted content of pci_debug_msg_id to the PCI report
      
      * tag 's390-6.14-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (48 commits)
        s390/futex: Fix FUTEX_OP_ANDN implementation
        s390/diag: Add memory topology information via diag310
        s390/bitops: Provide optimized arch_test_bit()
        s390/bitops: Switch to generic bitops
        s390/ebcdic: Fix length decrement in codepage_convert()
        s390/ebcdic: Fix length check in codepage_convert()
        s390/ebcdic: Use exrl instead of ex
        s390/amode31: Use exrl instead of ex
        s390/stackleak: Use exrl instead of ex in __stackleak_poison()
        s390/lib: Use exrl instead of ex in xor functions
        s390/topology: Improve topology detection
        s390/tlb: Add missing TLB range adjustment
        s390/pkey: Constify 'struct bin_attribute'
        s390/sclp: Constify 'struct bin_attribute'
        s390/pci: Constify 'struct bin_attribute'
        s390/ipl: Constify 'struct bin_attribute'
        s390/crypto/cpacf: Constify 'struct bin_attribute'
        s390/qdio: Move memory alloc/pointer arithmetic for slib and sl into one place
        s390/cio: Use array indices instead of pointer arithmetic
        s390/qdio: Rename feature flag aif_osa to aif_qdio
        ...
      4f42d0bf
    • Linus Torvalds's avatar
      Merge tag 'for-6.14/io_uring-20250119' of git://git.kernel.dk/linux · a312e170
      Linus Torvalds authored
      Pull io_uring updates from Jens Axboe:
       "Not a lot in terms of features this time around, mostly just cleanups
        and code consolidation:
      
         - Support for PI meta data read/write via io_uring, with NVMe and
           SCSI covered
      
         - Cleanup the per-op structure caching, making it consistent across
           various command types
      
         - Consolidate the various user mapped features into a concept called
           regions, making the various users of that consistent
      
         - Various cleanups and fixes"
      
      * tag 'for-6.14/io_uring-20250119' of git://git.kernel.dk/linux: (56 commits)
        io_uring/fdinfo: fix io_uring_show_fdinfo() misuse of ->d_iname
        io_uring: reuse io_should_terminate_tw() for cmds
        io_uring: Factor out a function to parse restrictions
        io_uring/rsrc: require cloned buffers to share accounting contexts
        io_uring: simplify the SQPOLL thread check when cancelling requests
        io_uring: expose read/write attribute capability
        io_uring/rw: don't gate retry on completion context
        io_uring/rw: handle -EAGAIN retry at IO completion time
        io_uring/rw: use io_rw_recycle() from cleanup path
        io_uring/rsrc: simplify the bvec iter count calculation
        io_uring: ensure io_queue_deferred() is out-of-line
        io_uring/rw: always clear ->bytes_done on io_async_rw setup
        io_uring/rw: use NULL for rw->free_iovec assigment
        io_uring/rw: don't mask in f_iocb_flags
        io_uring/msg_ring: Drop custom destructor
        io_uring: Move old async data allocation helper to header
        io_uring/rw: Allocate async data through helper
        io_uring/net: Allocate msghdr async data through helper
        io_uring/uring_cmd: Allocate async data through generic helper
        io_uring/poll: Allocate apoll with generic alloc_cache helper
        ...
      a312e170
    • Linus Torvalds's avatar
      Merge tag 'for-6.14/block-20250118' of git://git.kernel.dk/linux · 1cbfb828
      Linus Torvalds authored
      Pull block updates from Jens Axboe:
      
       - NVMe pull requests via Keith:
            - Target support for PCI-Endpoint transport (Damien)
            - TCP IO queue spreading fixes (Sagi, Chaitanya)
            - Target handling for "limited retry" flags (Guixen)
            - Poll type fix (Yongsoo)
            - Xarray storage error handling (Keisuke)
            - Host memory buffer free size fix on error (Francis)
      
       - MD pull requests via Song:
            - Reintroduce md-linear (Yu Kuai)
            - md-bitmap refactor and fix (Yu Kuai)
            - Replace kmap_atomic with kmap_local_page (David Reaver)
      
       - Quite a few queue freeze and debugfs deadlock fixes
      
         Ming introduced lockdep support for this in the 6.13 kernel, and it
         has (unsurprisingly) uncovered quite a few issues
      
       - Use const attributes for IO schedulers
      
       - Remove bio ioprio wrappers
      
       - Fixes for stacked device atomic write support
      
       - Refactor queue affinity helpers, in preparation for better supporting
         isolated CPUs
      
       - Cleanups of loop O_DIRECT handling
      
       - Cleanup of BLK_MQ_F_* flags
      
       - Add rotational support for null_blk
      
       - Various fixes and cleanups
      
      * tag 'for-6.14/block-20250118' of git://git.kernel.dk/linux: (106 commits)
        block: Don't trim an atomic write
        block: Add common atomic writes enable flag
        md/md-linear: Fix a NULL vs IS_ERR() bug in linear_add()
        block: limit disk max sectors to (LLONG_MAX >> 9)
        block: Change blk_stack_atomic_writes_limits() unit_min check
        block: Ensure start sector is aligned for stacking atomic writes
        blk-mq: Move more error handling into blk_mq_submit_bio()
        block: Reorder the request allocation code in blk_mq_submit_bio()
        nvme: fix bogus kzalloc() return check in nvme_init_effects_log()
        md/md-bitmap: move bitmap_{start, end}write to md upper layer
        md/raid5: implement pers->bitmap_sector()
        md: add a new callback pers->bitmap_sector()
        md/md-bitmap: remove the last parameter for bimtap_ops->endwrite()
        md/md-bitmap: factor behind write counters out from bitmap_{start/end}write()
        md: Replace deprecated kmap_atomic() with kmap_local_page()
        md: reintroduce md-linear
        partitions: ldm: remove the initial kernel-doc notation
        blk-cgroup: rwstat: fix kernel-doc warnings in header file
        blk-cgroup: fix kernel-doc warnings in header file
        nbd: fix partial sending
        ...
      1cbfb828
  3. Jan 20, 2025
    • Linus Torvalds's avatar
      Merge tag 'dlm-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm · 3d3a9c8b
      Linus Torvalds authored
      Pull dlm updates from David Teigland:
      
       - Fix a case where the new scanning code missed removing an unused rsb
      
       - Fix the error when removing a configfs entry for an invalid node id
      
      * tag 'dlm-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm:
        dlm: return -ENOENT if no comm was found
        dlm: fix srcu_read_lock() return type to int
        dlm: fix removal of rsb struct that is master and dir record
      3d3a9c8b
    • Linus Torvalds's avatar
      Merge tag 'bcachefs-2025-01-20.2' of git://evilpiepirate.org/bcachefs · 2622f290
      Linus Torvalds authored
      Pull bcachefs updates from Kent Overstreet:
       "Lots of scalability work, another big on-disk format change. On-disk
        format version goes from 1.13 to 1.20.
      
        Like 6.11, this is another big and expensive automatic/required on
        disk format upgrade. This is planned to be the last big on disk format
        upgrade before the experimental label comes off. There will be one
        more minor on disk format update for a few things that couldn't make
        this release.
      
        Headline improvements:
      
         - Self healing work:
      
           Allocator and reflink now run the exact same check/repair code that
           fsck does at runtime, where applicable.
      
           The long term goal here is to remove inconsistent() errors (that
           cause us to go emergency read only) by lifting fsck code up to
           normal runtime paths; we should only go emergency read-only if we
           detect an inconsistency that was due to a runtime bug - or truly
           catastrophic damage (corrupted btree roots/interior nodes).
      
         - Reflink repair no longer deletes reflink pointers:
      
           Instead we flip an error bit and log the error, and they can still
           be deleted by file deletion. This means a temporary failure to find
           an indirect extent (perhaps repaired later by btree node scan)
           won't result in unnecessary data loss
      
         - Improvements to rebalance data path option handling:
      
           We can now correctly apply changed filesystem-level io path options
           to pending rebalance work, and soon we'll be able to apply
           file-level io path option changes to indirect extents
      
         - Fix mount time regression that some users encountered post the 6.11
           disk accounting rewrite.
      
           Accounting keys were encoded little endian (typetag in the low
           bits) - which didn't anticipate adding accounting keys for every
           inode, which aren't stored in memory and we don't want to scan at
           mount time.
      
         - fsck time on large filesystems is improved by multiple orders of
           magnitude. Previously, 100TB was about the practical max filesystem
           size, where users were reporting fsck times of a day+. With the new
           changes (which nearly eliminate backpointers fsck overhead), we
           fsck'd a filesystem with 10PB of data in 1.5 hours.
      
           The problematic fsck passes were walking every extent and checking
           for missing backpointers, and walking every backpointer to check
           for dangling backpointers. As we've been adding more and more
           runtime self healing there was no reason to keep around the
           backpointers -> extents pass; dangling backpointers are just
           deleted, and we can do that when using them - thus, backpointers ->
           extents is now only run in debug mode.
      
           extents -> backpointers does need to exist, since missing
           backpointers would mean we can't find data to move it (for e.g.
           copygc, device evacuate, scrub). But the new on disk format version
           makes possible a new strategy where we sum up backpointers within a
           bucket and check it against the bucket sector counts, and then only
           scan for missing backpointers if the counts are off (and then, only
           for specific buckets).
      
        Full list of on disk format changes:
      
         - 1.14: backpointer_bucket_gen
      
           Backpointers now have a field for the bucket generation number,
           replacing the obsolete bucket_offset field. This is needed for the
           new "sum up backpointers within a bucket" code, since backpointers
           use the btree write buffer - meaning we will see stale reads, and
           this runs online, with the filesystem in full rw mode.
      
         - 1.15: disk_accounting_big_endian
      
           As previously described, fix the endianness of accounting keys so
           that accounting keys with the same typetag sort together, and
           accounting read can skip types it's not interested in.
      
         - 1.16: reflink_p_may_update_opts:
      
           This version indicates that a new reflink pointer field is
           understood and may be used; the field indicates whether the reflink
           pointer has permissions to update IO path options (e.g.
           compression, replicas) may be updated on the indirect extent it
           points to.
      
           This completes the rebalance/reflink data path option handling from
           the 6.13 pull request.
      
         - 1.17: inode_depth
      
           Add a new inode field, bi_depth, to accelerate the
           check_directory_structure fsck path, which checks for loops in the
           filesystem heirarchy.
      
           check_inodes and check_dirents check connectivity, so
           check_directory_structure only has to check for loops - by walking
           back up to the root from every directory.
      
           But a path can't be a loop if it has a counter that increases
           monotonically from root to leaf - adding a depth counter means that
           we can check for loops with only local (parent -> child) checks. We
           might need to occasionally renumber the depth field in fsck if
           directories have been moved around, but then future fsck runs will
           be much faster.
      
         - 1.18: persistent_inode_cursors
      
           Previously, the cursor used for inode allocation was only kept in
           memory, which meant that users with large filesystems and lots of
           files were reporting that the first create after mounting would
           take awhile - since it had to scan from the start.
      
           Inode allocation cursors are now persistent, and also include a
           generation field (incremented on wraparound, which will only happen
           if inode allocation is restricted to 32 bit inodes), so that we
           don't have to leave inode_generation keys around after a delete.
      
           The option for 32 bit inode numbers may now also be set on
           individual directories, and non-32 bit inode allocations are
           disallowed from allocating from the 32 bit part of the inode number
           space.
      
         - 1.19: autofix_errors
      
           Runtime self healing is now the default.o
      
         - 1.20: directory size (from Hongbo)
      
           directory i_size is now meaningful, and not 0"
      
      * tag 'bcachefs-2025-01-20.2' of git://evilpiepirate.org/bcachefs: (268 commits)
        bcachefs: Fix check_inode_hash_info_matches_root()
        bcachefs: Document issue with bch_stripe layout
        bcachefs: Fix self healing on read error
        bcachefs: Pop all the transactions from the abort one
        bcachefs: Only abort the transactions in the cycle
        bcachefs: Introduce lock_graph_pop_from
        bcachefs: Convert open-coded lock_graph_pop_all to helper
        bcachefs: Do not allow no fail lock request to fail
        bcachefs: Merge the condition to avoid additional invocation
        Revert "bcachefs: Fix bch2_btree_node_upgrade()"
        bcachefs: bcachefs_metadata_version_directory_size
        bcachefs: make directory i_size meaningful
        bcachefs: check_unreachable_inodes is not actually PASS_ONLINE yet
        bcachefs: Don't use BTREE_ITER_cached when walking alloc btree during fsck
        bcachefs: Check for dirents to overwritten inodes
        bcachefs: bch2_btree_iter_peek_slot() handles navigating to nonexistent depth
        bcachefs: Don't set btree_path to updtodate if we don't fill
        bcachefs: __bch2_btree_pos_to_text()
        bcachefs: printbuf_reset() handles tabstops
        bcachefs: Silence read-only errors when deleting snapshots
        ...
      2622f290
    • Linus Torvalds's avatar
      Merge tag 'pstore-v6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · 5d8a4bd6
      Linus Torvalds authored
      Pull pstore updates from Kees Cook:
      
       - pstore/blk: trivial typo fixes (Eugen Hristev)
      
       - pstore/zone: reject zero-sized allocations (Eugen Hristev)
      
      * tag 'pstore-v6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        pstore/zone: avoid dereferencing zero sized ptr after init zones
        pstore/blk: trivial typo fixes
      5d8a4bd6
    • Linus Torvalds's avatar
      Merge tag 'execve-v6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · fadc3ed9
      Linus Torvalds authored
      Pull execve updates from Kees Cook:
      
       - fix up /proc/pid/comm in the execveat(AT_EMPTY_PATH) case (Tycho
         Andersen, Kees Cook)
      
       - binfmt_misc: Fix comment typos (Christophe JAILLET)
      
       - move empty argv[0] warning closer to actual logic (Nir Lichtman)
      
       - remove legacy custom binfmt modules autoloading (Nir Lichtman)
      
       - Make sure set_task_comm() always NUL-terminates
      
       - binfmt_flat: Fix integer overflow bug on 32 bit systems (Dan
         Carpenter)
      
       - coredump: Do not lock when copying "comm"
      
       - MAINTAINERS: add auxvec.h and set myself as maintainer
      
      * tag 'execve-v6.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        binfmt_flat: Fix integer overflow bug on 32 bit systems
        selftests/exec: add a test for execveat()'s comm
        exec: fix up /proc/pid/comm in the execveat(AT_EMPTY_PATH) case
        exec: Make sure task->comm is always NUL-terminated
        exec: remove legacy custom binfmt modules autoloading
        exec: move warning of null argv to be next to the relevant code
        fs: binfmt: Fix a typo
        MAINTAINERS: exec: Mark Kees as maintainer
        MAINTAINERS: exec: Add auxvec.h UAPI
        coredump: Do not lock during 'comm' reporting
      fadc3ed9
    • Linus Torvalds's avatar
      Merge tag 'for-6.14-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 0eb4aaa2
      Linus Torvalds authored
      Pull btrfs updates from David Sterba:
       "User visible changes, features:
      
         - rebuilding of the free space tree at mount time is done in more
           transactions, fix potential hangs when the transaction thread is
           blocked due to large amount of block groups
      
         - more read IO balancing strategies (experimental config), add two
           new ways how to select a device for read if the profiles allow that
           (all RAID1*), the current default selects the device by pid which
           is good on average but less performant for single reader workloads
      
             - select preferred device for all reads (namely for testing)
             - round-robin, balance reads across devices relevant for the
               requested IO range
      
         - add encoded write ioctl support to io_uring (read was added in
           6.12), basis for writing send stream using that instead of
           syscalls, non-blocking mode is not yet implemented
      
         - support FS_IOC_READ_VERITY_METADATA, applications can use the
           metadata to do their own verification
      
         - pass inode's i_write_hint to bios, for parity with other
           filesystems, ioctls F_GET_RW_HINT/F_SET_RW_HINT
      
        Core:
      
         - in zoned mode: allow to directly reclaim a block group by simply
           resetting it, then it can be reused and another block group does
           not need to be allocated
      
         - super block validation now also does more comprehensive sys array
           validation, adding it to the points where superblock is validated
           (post-read, pre-write)
      
         - subpage mode fixes:
            - fix double accounting of blocks due to some races
            - improved or fixed error handling in a few cases (compression,
              delalloc)
      
         - raid stripe tree:
            - fix various cases with extent range splitting or deleting
            - implement hole punching to extent range
            - reduce number of stripe tree lookups during bio submission
            - more self-tests
      
         - updated self-tests (delayed refs)
      
         - error handling improvements
      
         - cleanups, refactoring
            - remove rest of backref caching infrastructure from relocation,
              not needed anymore
            - error message updates
            - remove unnecessary calls when extent buffer was marked dirty
            - unused parameter removal
            - code moved to new files
      
        Other code changes: add rb_find_add_cached() to the rb-tree API"
      
      * tag 'for-6.14-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (127 commits)
        btrfs: selftests: add a selftest for deleting two out of three extents
        btrfs: selftests: add test for punching a hole into 3 RAID stripe-extents
        btrfs: selftests: add selftest for punching holes into the RAID stripe extents
        btrfs: selftests: test RAID stripe-tree deletion spanning two items
        btrfs: selftests: don't split RAID extents in half
        btrfs: selftests: check for correct return value of failed lookup
        btrfs: don't use btrfs_set_item_key_safe on RAID stripe-extents
        btrfs: implement hole punching for RAID stripe extents
        btrfs: fix deletion of a range spanning parts two RAID stripe extents
        btrfs: fix tail delete of RAID stripe-extents
        btrfs: fix front delete range calculation for RAID stripe extents
        btrfs: assert RAID stripe-extent length is always greater than 0
        btrfs: don't try to delete RAID stripe-extents if we don't need to
        btrfs: selftests: correct RAID stripe-tree feature flag setting
        btrfs: add io_uring interface for encoded writes
        btrfs: remove the unused locked_folio parameter from btrfs_cleanup_ordered_extents()
        btrfs: add extra error messages for delalloc range related errors
        btrfs: subpage: dump the involved bitmap when ASSERT() failed
        btrfs: subpage: fix the bitmap dump of the locked flags
        btrfs: do proper folio cleanup when run_delalloc_nocow() failed
        ...
      0eb4aaa2
    • Linus Torvalds's avatar
      Merge tag 'gfs2-for-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 1851bccf
      Linus Torvalds authored
      Pull gfs2 updates from Andreas Gruenbacher:
      
       - In the quota code, to avoid spurious audit messages, don't call
         capable() when quotas are off
      
       - When changing the 'j' flag of an inode, truncate the inode address
         space to avoid mixing "buffer head" and "iomap" pages
      
      * tag 'gfs2-for-6.14' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: Truncate address space when flipping GFS2_DIF_JDATA flag
        gfs2: reorder capability check last
      1851bccf
    • Linus Torvalds's avatar
      Merge tag 'vfs-6.14-rc1.afs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs · b971424b
      Linus Torvalds authored
      Pull afs updates from Christian Brauner:
       "Dynamic root improvements:
      
         - Create an /afs/.<cell> mountpoint to match the /afs/<cell>
           mountpoint when a cell is created
      
         - Add some more checks on cell names proposed by the user to prevent
           dodgy symlink bodies from being created. Also prevent rootcell from
           being altered once set to simplify the locking
      
         - Change the handling of /afs/@cell from being a dentry name
           substitution at lookup time to making it a symlink to the current
           cell name and also provide a /afs/.@cell symlink to point to the
           dotted cell mountpoint
      
        Fixes:
      
         - Fix the abort code check in the fallback handling for the
           YFS.RemoveFile2 RPC call
      
         - Use call->op->server() for oridnary filesystem RPC calls that have
           an operation descriptor instead of call->server()"
      
      * tag 'vfs-6.14-rc1.afs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
        afs: Fix the fallback handling for the YFS.RemoveFile2 RPC call
        afs: Make /afs/@cell and /afs/.@cell symlinks
        afs: Add rootcell checks
        afs: Make /afs/.<cell> as well as /afs/<cell> mountpoints
      b971424b
    • Linus Torvalds's avatar
      Merge tag 'vfs-6.14-rc1.statx.dio' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs · 47c9f2b3
      Linus Torvalds authored
      Pull vfs direct-io updates from Christian Brauner:
       "File systems that write out of place usually require different
        alignment for direct I/O writes than what they can do for reads.
      
        Add a separate dio read align field to statx, as many out of place
        write file systems can easily do reads aligned to the device sector
        size, but require bigger alignment for writes.
      
        This is usually papered over by falling back to buffered I/O for
        smaller writes and doing read-modify-write cycles, but performance for
        this sucks, so applications benefit from knowing the actual write
        alignment"
      
      * tag 'vfs-6.14-rc1.statx.dio' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
        xfs: report larger dio alignment for COW inodes
        xfs: report the correct read/write dio alignment for reflinked inodes
        xfs: cleanup xfs_vn_getattr
        fs: add STATX_DIO_READ_ALIGN
        fs: reformat the statx definition
      47c9f2b3
    • Linus Torvalds's avatar
      Merge tag 'vfs-6.14-rc1.libfs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs · 7e587c20
      Linus Torvalds authored
      Pull vfs libfs updates from Christian Brauner:
       "This improves the stable directory offset behavior in various ways.
      
        Stable offsets are needed so that NFS can reliably read directories on
        filesystems such as tmpfs:
      
         - Improve the end-of-directory detection
      
           According to getdents(3), the d_off field in each returned
           directory entry points to the next entry in the directory. The
           d_off field in the last returned entry in the readdir buffer must
           contain a valid offset value, but if it points to an actual
           directory entry, then readdir/getdents can loop.
      
           Introduce a specific fixed offset value that is placed in the d_off
           field of the last entry in a directory. Some user space
           applications assume that the EOD offset value is larger than the
           offsets of real directory entries, so the largest valid offset
           value is reserved for this purpose. This new value is never
           allocated by simple_offset_add().
      
           When ->iterate_dir() returns, getdents{64} inserts the ctx->pos
           value into the d_off field of the last valid entry in the readdir
           buffer. When it hits EOD, offset_readdir() sets ctx->pos to the EOD
           offset value so the last entry is updated to point to the EOD
           marker.
      
           When trying to read the entry at the EOD offset, offset_readdir()
           terminates immediately.
      
         - Rely on d_children to iterate stable offset directories
      
           Instead of using the mtree to emit entries in the order of their
           offset values, use it only to map incoming ctx->pos to a starting
           entry. Then use the directory's d_children list, which is already
           maintained properly by the dcache, to find the next child to emit.
      
         - Narrow the range of directory offset values returned by
           simple_offset_add() to 3 .. (S32_MAX - 1) on all platforms. This
           means the allocation behavior is identical on 32-bit systems,
           64-bit systems, and 32-bit user space on 64-bit kernels. The new
           range still permits over 2 billion concurrent entries per
           directory.
      
         - Return ENOSPC when the directory offset range is exhausted. Hitting
           this error is almost impossible though.
      
         - Remove the simple_offset_empty() helper"
      
      * tag 'vfs-6.14-rc1.libfs' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
        libfs: Use d_children list to iterate simple_offset directories
        libfs: Replace simple_offset end-of-directory detection
        Revert "libfs: fix infinite directory reads for offset dir"
        Revert "libfs: Add simple_offset_empty()"
        libfs: Return ENOSPC when the directory offset range is exhausted
      7e587c20
    • Linus Torvalds's avatar
      Merge tag 'vfs-6.14-rc1.mount.v2' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs · 100ceb48
      Linus Torvalds authored
      Pull vfs mount updates from Christian Brauner:
      
       - Add a mountinfo program to demonstrate statmount()/listmount()
      
         Add a new "mountinfo" sample userland program that demonstrates how
         to use statmount() and listmount() to get at the same info that
         /proc/pid/mountinfo provides
      
       - Remove pointless nospec.h include
      
       - Prepend statmount.mnt_opts string with security_sb_mnt_opts()
      
         Currently these mount options aren't accessible via statmount()
      
       - Add new mount namespaces to mount namespace rbtree outside of the
         namespace semaphore
      
       - Lockless mount namespace lookup
      
         Currently we take the read lock when looking for a mount namespace to
         list mounts in. We can make this lockless. The simple search case can
         just use a sequence counter to detect concurrent changes to the
         rbtree
      
         For walking the list of mount namespaces sequentially via nsfs we
         keep a separate rcu list as rb_prev() and rb_next() aren't usable
         safely with rcu. Currently there is no primitive for retrieving the
         previous list member. To do this we need a new deletion primitive
         that doesn't poison the prev pointer and a corresponding retrieval
         helper
      
         Since creating mount namespaces is a relatively rare event compared
         with querying mounts in a foreign mount namespace this is worth it.
         Once libmount and systemd pick up this mechanism to list mounts in
         foreign mount namespaces this will be used very frequently
      
           - Add extended selftests for lockless mount namespace iteration
      
           - Add a sample program to list all mounts on the system, i.e., in
             all mount namespaces
      
       - Improve mount namespace iteration performance
      
         Make finding the last or first mount to start iterating the mount
         namespace from an O(1) operation and add selftests for iterating the
         mount table starting from the first and last mount
      
       - Use an xarray for the old mount id
      
         While the ida does use the xarray internally we can use it explicitly
         which allows us to increment the unique mount id under the xa lock.
         This allows us to remove the atomic as we're now allocating both ids
         in one go
      
       - Use a shared header for vfs sample programs
      
       - Fix build warnings for new sample program to list all mounts
      
      * tag 'vfs-6.14-rc1.mount.v2' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs:
        samples/vfs: fix build warnings
        samples/vfs: use shared header
        samples/vfs/mountinfo: Use __u64 instead of uint64_t
        fs: remove useless lockdep assertion
        fs: use xarray for old mount id
        selftests: add listmount() iteration tests
        fs: cache first and last mount
        samples: add test-list-all-mounts
        selftests: remove unneeded include
        selftests: add tests for mntns iteration
        seltests: move nsfs into filesystems subfolder
        fs: simplify rwlock to spinlock
        fs: lockless mntns lookup for nsfs
        rculist: add list_bidir_{del,prev}_rcu()
        fs: lockless mntns rbtree lookup
        fs: add mount namespace to rbtree late
        fs: prepend statmount.mnt_opts string with security_sb_mnt_opts()
        mount: remove inlude/nospec.h include
        samples: add a mountinfo program to demonstrate statmount()/listmount()
      100ceb48
Loading