1. 26 May, 2022 14 commits
    • Linus Torvalds's avatar
      Merge tag 'mm-stable-2022-05-25' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm · 98931dd9
      Linus Torvalds authored
      Pull MM updates from Andrew Morton:
       "Almost all of MM here. A few things are still getting finished off,
        reviewed, etc.
      
         - Yang Shi has improved the behaviour of khugepaged collapsing of
           readonly file-backed transparent hugepages.
      
         - Johannes Weiner has arranged for zswap memory use to be tracked and
           managed on a per-cgroup basis.
      
         - Munchun Song adds a /proc knob ("hugetlb_optimize_vmemmap") for
           runtime enablement of the recent huge page vmemmap optimization
           feature.
      
         - Baolin Wang contributes a series to fix some issues around hugetlb
           pagetable invalidation.
      
         - Zhenwei Pi has fixed some interactions between hwpoisoned pages and
           virtualization.
      
         - Tong Tiangen has enabled the use of the presently x86-only
           page_table_check debugging feature on arm64 and riscv.
      
         - David Vernet has done some fixup work on the memcg selftests.
      
         - Peter Xu has taught userfaultfd to handle write protection faults
           against shmem- and hugetlbfs-backed files.
      
         - More DAMON development from SeongJae Park - adding online tuning of
           the feature and support for monitoring of fixed virtual address
           ranges. Also easier discovery of which monitoring operations are
           available.
      
         - Nadav Amit has done some optimization of TLB flushing during
           mprotect().
      
         - Neil Brown continues to labor away at improving our swap-over-NFS
           support.
      
         - David Hildenbrand has some fixes to anon page COWing versus
           get_user_pages().
      
         - Peng Liu fixed some errors in the core hugetlb code.
      
         - Joao Martins has reduced the amount of memory consumed by
           device-dax's compound devmaps.
      
         - Some cleanups of the arch-specific pagemap code from Anshuman
           Khandual.
      
         - Muchun Song has found and fixed some errors in the TLB flushing of
           transparent hugepages.
      
         - Roman Gushchin has done more work on the memcg selftests.
      
        ... and, of course, many smaller fixes and cleanups. Notably, the
        customary million cleanup serieses from Miaohe Lin"
      
      * tag 'mm-stable-2022-05-25' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (381 commits)
        mm: kfence: use PAGE_ALIGNED helper
        selftests: vm: add the "settings" file with timeout variable
        selftests: vm: add "test_hmm.sh" to TEST_FILES
        selftests: vm: check numa_available() before operating "merge_across_nodes" in ksm_tests
        selftests: vm: add migration to the .gitignore
        selftests/vm/pkeys: fix typo in comment
        ksm: fix typo in comment
        selftests: vm: add process_mrelease tests
        Revert "mm/vmscan: never demote for memcg reclaim"
        mm/kfence: print disabling or re-enabling message
        include/trace/events/percpu.h: cleanup for "percpu: improve percpu_alloc_percpu event trace"
        include/trace/events/mmflags.h: cleanup for "tracing: incorrect gfp_t conversion"
        mm: fix a potential infinite loop in start_isolate_page_range()
        MAINTAINERS: add Muchun as co-maintainer for HugeTLB
        zram: fix Kconfig dependency warning
        mm/shmem: fix shmem folio swapoff hang
        cgroup: fix an error handling path in alloc_pagecache_max_30M()
        mm: damon: use HPAGE_PMD_SIZE
        tracing: incorrect isolate_mote_t cast in mm_vmscan_lru_isolate
        nodemask.h: fix compilation error with GCC12
        ...
      98931dd9
    • Linus Torvalds's avatar
      Merge tag 'kbuild-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · df202b45
      Linus Torvalds authored
      Pull Kbuild updates from Masahiro Yamada:
      
       - Add HOSTPKG_CONFIG env variable to allow users to override pkg-config
      
       - Support W=e as a shorthand for KCFLAGS=-Werror
      
       - Fix CONFIG_IKHEADERS build to support toybox cpio
      
       - Add scripts/dummy-tools/pahole to ease distro packagers' life
      
       - Suppress false-positive warnings from checksyscalls.sh for W=2 build
      
       - Factor out the common code of arch/*/boot/install.sh into
         scripts/install.sh
      
       - Support 'kernel-install' tool in scripts/prune-kernel
      
       - Refactor module-versioning to link the symbol versions at the final
         link of vmlinux and modules
      
       - Remove CONFIG_MODULE_REL_CRCS because module-versioning now works in
         an arch-agnostic way
      
       - Refactor modpost, Makefiles
      
      * tag 'kbuild-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (56 commits)
        genksyms: adjust the output format to modpost
        kbuild: stop merging *.symversions
        kbuild: link symbol CRCs at final link, removing CONFIG_MODULE_REL_CRCS
        modpost: extract symbol versions from *.cmd files
        modpost: add sym_find_with_module() helper
        modpost: change the license of EXPORT_SYMBOL to bool type
        modpost: remove left-over cross_compile declaration
        kbuild: record symbol versions in *.cmd files
        kbuild: generate a list of objects in vmlinux
        modpost: move *.mod.c generation to write_mod_c_files()
        modpost: merge add_{intree_flag,retpoline,staging_flag} to add_header
        scripts/prune-kernel: Use kernel-install if available
        kbuild: factor out the common installation code into scripts/install.sh
        modpost: split new_symbol() to symbol allocation and hash table addition
        modpost: make sym_add_exported() always allocate a new symbol
        modpost: make multiple export error
        modpost: dump Module.symvers in the same order of modules.order
        modpost: traverse the namespace_list in order
        modpost: use doubly linked list for dump_lists
        modpost: traverse unresolved symbols in order
        ...
      df202b45
    • Linus Torvalds's avatar
      Merge tag 'asm-generic-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic · 16477cdf
      Linus Torvalds authored
      Pull asm-generic updates from Arnd Bergmann:
       "The asm-generic tree contains three separate changes for linux-5.19:
      
         - The h8300 architecture is retired after it has been effectively
           unmaintained for a number of years. This is the last architecture
           we supported that has no MMU implementation, but there are still a
           few architectures (arm, m68k, riscv, sh and xtensa) that support
           CPUs with and without an MMU.
      
         - A series to add a generic ticket spinlock that can be shared by
           most architectures with a working cmpxchg or ll/sc type atomic,
           including the conversion of riscv, csky and openrisc. This series
           is also a prerequisite for the loongarch64 architecture port that
           will come as a separate pull request.
      
         - A cleanup of some exported uapi header files to ensure they can be
           included from user space without relying on other kernel headers"
      
      * tag 'asm-generic-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/asm-generic:
        h8300: remove stale bindings and symlink
        sparc: add asm/stat.h to UAPI compile-test coverage
        powerpc: add asm/stat.h to UAPI compile-test coverage
        mips: add asm/stat.h to UAPI compile-test coverage
        riscv: add linux/bpf_perf_event.h to UAPI compile-test coverage
        kbuild: prevent exported headers from including <stdlib.h>, <stdbool.h>
        agpgart.h: do not include <stdlib.h> from exported header
        csky: Move to generic ticket-spinlock
        RISC-V: Move to queued RW locks
        RISC-V: Move to generic spinlocks
        openrisc: Move to ticket-spinlock
        asm-generic: qrwlock: Document the spinlock fairness requirements
        asm-generic: qspinlock: Indicate the use of mixed-size atomics
        asm-generic: ticket-lock: New generic ticket-based spinlock
        remove the h8300 architecture
      16477cdf
    • Linus Torvalds's avatar
      Merge tag 'arm-multiplatform-5.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · ecf0aa53
      Linus Torvalds authored
      Pull ARMv4T/v5 multiplatform support from Arnd Bergmann:
       "This series has been 12 years in the making, it mostly finishes the
        work that was started with the founding of Linaro to clean up platform
        support in the kernel.
      
        The largest change here is a cleanup of the omap1 platform, which is
        the final ARM machine type to get converted to the common-clk
        subsystem. All the omap1 specific drivers are now made independent of
        the mach/*.h headers to allow the platform to be part of a generic
        ARMv4/v5 multiplatform kernel.
      
        The last bit that enables this support is still missing here while we
        wait for some last dependencies to make it into the mainline kernel
        through other subsystems.
      
        The s3c24xx, ixp4xx, iop32x, ep93xx and dove platforms were all almost
        at the point of allowing multiplatform kernels, this work gets
        completed here along with a few additional cleanup. At the same time,
        the s3c24xx and s3c64xx are now deprecated and expected to get removed
        in the future.
      
        The PXA and OMAP1 bits are in a separate branch because of
        dependencies. Once both branches are merged, only the three Intel
        StrongARM platforms (RiscPC, Footbridge/NetWinder and StrongARM1100)
        need separate kernels, and there are no plans to include these"
      
      * tag 'arm-multiplatform-5.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (61 commits)
        ARM: ixp4xx: Consolidate Kconfig fixing issue
        ARM: versatile: Add missing of_node_put in dcscb_init
        ARM: config: Refresh IXP4xx config after multiplatform
        ARM: omap1: add back omap_set_dma_priority() stub
        ARM: omap: fix missing declaration warnings
        ARM: omap: fix address space warnings from sparse
        ARM: spear: remove include/mach/ subdirectory
        ARM: davinci: remove include/mach/ subdirectory
        ARM: omap2: remove include/mach/ subdirectory
        integrator: remove empty ap_init_early()
        ARM: s3c: fix include path
        MAINTAINERS: omap1: Add Janusz as an additional maintainer
        ARM: omap1: htc_herald: fix typos in comments
        ARM: OMAP1: fix typos in comments
        ARM: OMAP1: clock: Remove noop code
        ARM: OMAP1: clock: Remove unused code
        ARM: OMAP1: clock: Fix UART rate reporting algorithm
        ARM: OMAP1: clock: Fix early UART rate issues
        ARM: OMAP1: Prepare for conversion of OMAP1 clocks to CCF
        ARM: omap1: fix build with no SoC selected
        ...
      ecf0aa53
    • Linus Torvalds's avatar
      Merge tag 'arm-defconfig-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · a0439cf4
      Linus Torvalds authored
      Pull ARM defconfig updates from Arnd Bergmann:
       "Lots of smaller additions to the defconfig files for both 32-bit and
        64-bit arm platforms, enabling drivers that are now usable on common
        hardware, and a few options to make it possible to boot a file system
        image using systemd"
      
      * tag 'arm-defconfig-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (39 commits)
        ARM: configs: Enable ASoC AC'97 glue
        ARM: configs: Enable audio on BeagleBone Black in multi_v7_defconfig
        ARM: configs: at91: Enable AUTOFS_FS required by systemd
        ARM: configs: at91: Enable options required for systemd
        ARM: configs: at91: sama7: enable CONFIG_RESET_CONTROLLER
        ARM: configs: at91: sama7: add MCHP PDMC and DMIC drivers
        ARM: configs: at91: sama7: Enable MTD_UBI_BLOCK
        ARM: configs: at91: sama7: Enable MTD_UBI_FASTMAP
        ARM: configs: at91: sama7: add xisc and csi2dc
        ARM: multi_v7_defconfig: add atmel video pipeline modules
        ARM: configs: at91: Remove MTD_BLOCK and use MTD_UBI_BLOCK for read only block FS
        arm64: defconfig: Enable the WM8524 codec driver
        arm64: defconfig: Enable modules for arm displays
        arm: nomadik: drop selecting obsolete CLKSRC_NOMADIK_MTU_SCHED_CLOCK
        arm64: defconfig: Enable Renesas RZ/V2M SoC
        arm64: defconfig: Enable ARCH_R9A07G043
        arm64: defconfig: Enable configs for DisplayPort on J721e
        arm64: defconfig: Build Tegra ASRC module
        ARM: multi_v7_defconfig: enable CONFIG_ARCH_BCMBCA in armv7 defconfig
        arm: mediatek: select arch timer for mt7629
        ...
      a0439cf4
    • Linus Torvalds's avatar
      Merge tag 'arm-drivers-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · cc3c470a
      Linus Torvalds authored
      Pull ARM driver updates from Arnd Bergmann:
       "There are minor updates to SoC specific drivers for chips by Rockchip,
        Samsung, NVIDIA, TI, NXP, i.MX, Qualcomm, and Broadcom.
      
        Noteworthy driver changes include:
      
         - Several conversions of DT bindings to yaml format.
      
         - Renesas adds driver support for R-Car V4H, RZ/V2M and RZ/G2UL SoCs.
      
         - Qualcomm adds a bus driver for the SSC (Snapdragon Sensor Core),
           and support for more chips in the RPMh power domains and the
           soc-id.
      
         - NXP has a new driver for the HDMI blk-ctrl on i.MX8MP.
      
         - Apple M1 gains support for the on-chip NVMe controller, making it
           possible to finally use the internal disks. This also includes SoC
           drivers for their RTKit IPC and for the SART DMA address filter.
      
        For other subsystems that merge their drivers through the SoC tree, we
        have
      
         - Firmware drivers for the ARM firmware stack including TEE, OP-TEE,
           SCMI and FF-A get a number of smaller updates and cleanups. OP-TEE
           now has a cache for firmware argument structures as an
           optimization, and SCMI now supports the 3.1 version of the
           specification.
      
         - Reset controller updates to Amlogic, ASpeed, Renesas and ACPI
           drivers
      
         - Memory controller updates for Tegra, and a few updates for other
           platforms"
      
      * tag 'arm-drivers-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (159 commits)
        memory: tegra: Add MC error logging on Tegra186 onward
        memory: tegra: Add memory controller channels support
        memory: tegra: Add APE memory clients for Tegra234
        memory: tegra: Add Tegra234 support
        nvme-apple: fix sparse endianess warnings
        soc/tegra: pmc: Document core domain fields
        soc: qcom: pdr: use static for servreg_* variables
        soc: imx: fix semicolon.cocci warnings
        soc: renesas: R-Car V3U is R-Car Gen4
        soc: imx: add i.MX8MP HDMI blk-ctrl
        soc: imx: imx8m-blk-ctrl: Add i.MX8MP media blk-ctrl
        soc: imx: add i.MX8MP HSIO blk-ctrl
        soc: imx: imx8m-blk-ctrl: set power device name
        soc: qcom: llcc: Add sc8180x and sc8280xp configurations
        dt-bindings: arm: msm: Add sc8180x and sc8280xp LLCC compatibles
        soc/tegra: pmc: Select REGMAP
        dt-bindings: reset: st,sti-powerdown: Convert to yaml
        dt-bindings: reset: st,sti-picophyreset: Convert to yaml
        dt-bindings: reset: socfpga: Convert to yaml
        dt-bindings: reset: snps,axs10x-reset: Convert to yaml
        ...
      cc3c470a
    • Linus Torvalds's avatar
      Merge tag 'arm-dt-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · ae862183
      Linus Torvalds authored
      Pull ARM DT updates from Arnd Bergmann:
       "There are 40 branches this time, adding a lot of new hardware support,
        and cleanups. Krzysztof Kozlowski continues his treewide cleanups.
      
        There are a number of new SoCs, all of them as part of existing
        families, and typically added along with a reference board:
      
         - Renesas RZ/G2UL (R9A07G043) is the single-core version of the
           RZ/G2L general-purpose MPU.
      
         - Renesas RZ/V2M (R9A09G011) is a smart camera SoC
      
         - Renesas R-Car V4H (R8A779G0) is an automotive chip with Cortex-A76
           cores and deep learning accerlation.
      
         - Broadcom BCM47622 is a new broadband SoC based on a quad Cortex-A7
           and dual Wifi-6.
      
         - Corstone1000 is a generic platform from Arm that is used for
           designing custom SoCs, the support for now is for the Fixed Virtual
           Platform emulation for it.
      
         - Mediatek MT8195 (Kompanio 1200) is a high-end consumer chip used in
           upcoming Chromebooks.
      
         - NXP i.MXRT1050 is a Cortex-M7 based microcontroller, the first
           MMU-less SoC to be added in a while
      
        New machines based on already supported SoCs this time are mainly for
        32-bit platforms and include:
      
         - Two wireless routers based on Broadcom bcm4708
      
         - 30 new boards based on NXP i.MX6, i.MX7 and i.MX8 families, mostly
           for the industrial embedded market, and on NXP LS1021A based IOT
           board.
      
         - Two ethernet switches based on Microchip LAN966
      
         - Eight Qualcomm Snapdragon based machines, including a smartwatch, a
           Chromebook board and some phones
      
         - Another phone based on the old ST-Ericsson Ux500 platform
      
         - Seven STM32MP1 based boards
      
         - Four single-board computers based on Rockchip RK3566/RK3568"
      
      * tag 'arm-dt-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (791 commits)
        ARM: dts: kswitch-d10: enable networking
        ARM: dts: lan966x: add switch node
        ARM: dts: lan966x: add serdes node
        ARM: dts: lan966x: add reset switch reset node
        ARM: dts: lan966x: add MIIM nodes
        ARM: dts: lan966x: add hwmon node
        ARM: dts: lan966x: add basic Kontron KSwitch D10 support
        ARM: dts: lan966x: add flexcom I2C nodes
        ARM: dts: lan966x: add flexcom SPI nodes
        ARM: dts: lan966x: add all flexcom usart nodes
        ARM: dts: lan966x: add missing uart DMA channel
        ARM: dts: lan966x: add sgpio node
        ARM: dts: lan966x: swap dma channels for crypto node
        ARM: dts: lan966x: rename pinctrl nodes
        ARM: dts: at91: sama7g5: remove interrupt-parent from gic node
        ARM: dts: at91: use generic node name for dataflash
        ARM: dts: turris-omnia: Add atsha204a node
        arm64: dts: mt8192: Follow binding order for SCP registers
        arm64: dts: mediatek: add mtk-snfi for mt7622
        arm64: dts: mediatek: mt8195-demo: enable uart1
        ...
      ae862183
    • Linus Torvalds's avatar
      Merge tag 'arm-soc-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · c011dd53
      Linus Torvalds authored
      Pull 32-bit ARM SoC updates from Arnd Bergmann:
       "These updates are for platform specific code in arch/arm/, mostly
        fixing minor issues.
      
        The at91 platform gains support for better power management on the
        lan966 platform and new firmware on the sama5 platform. The mediatek
        soc drivers in turn are enabled for the new mt8195 SoC"
      
      * tag 'arm-soc-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (34 commits)
        ARM: at91: debug: add lan966 support
        ARM: at91: pm: add support for sama5d2 secure suspend
        ARM: at91: add code to handle secure calls
        ARM: at91: Kconfig: implement PIT64B selection
        ARM: at91: pm: add quirks for pm
        ARM: at91: pm: use kernel documentation style
        ARM: at91: pm: introduce macros for pm mode replacement
        ARM: at91: pm: keep documentation inline with structure members
        orion5x: fix typos in comments
        ARM: hisi: Add missing of_node_put after of_find_compatible_node
        ARM: shmobile: rcar-gen2: Drop comma after OF match table sentinel
        ARM: shmobile: Drop commas after dt_compat sentinels
        soc: mediatek: mutex: remove mt8195 MOD0 and SOF0 definition
        MAINTAINERS: Add Broadcom BCMBCA entry
        arm: bcmbca: add arch bcmbca machine entry
        MAINTAINERS: Broadcom internal lists aren't maintainers
        dt-bindings: pwrap: mediatek: Update pwrap document for mt8195
        soc: mediatek: add DDP_DOMPONENT_DITHER0 enum for mt8195 vdosys0
        soc: mediatek: add mtk-mutex support for mt8195 vdosys0
        soc: mediatek: add mtk-mmsys support for mt8195 vdosys0
        ...
      c011dd53
    • Uros Bizjak's avatar
      locking/lockref: Use try_cmpxchg64 in CMPXCHG_LOOP macro · 3378323b
      Uros Bizjak authored
      Use try_cmpxchg64 instead of cmpxchg64 in CMPXCHG_LOOP macro.
      x86 CMPXCHG instruction returns success in ZF flag, so this
      change saves a compare after cmpxchg (and related move instruction
      in front of cmpxchg). The main loop of lockref_get improves from:
      
        13:	48 89 c1             	mov    %rax,%rcx
        16:	48 c1 f9 20          	sar    $0x20,%rcx
        1a:	83 c1 01             	add    $0x1,%ecx
        1d:	48 89 ce             	mov    %rcx,%rsi
        20:	89 c1                	mov    %eax,%ecx
        22:	48 89 d0             	mov    %rdx,%rax
        25:	48 c1 e6 20          	shl    $0x20,%rsi
        29:	48 09 f1             	or     %rsi,%rcx
        2c:	f0 48 0f b1 4d 00    	lock cmpxchg %rcx,0x0(%rbp)
        32:	48 39 d0             	cmp    %rdx,%rax
        35:	75 17                	jne    4e <lockref_get+0x4e>
      
      to:
      
        13:	48 89 ca             	mov    %rcx,%rdx
        16:	48 c1 fa 20          	sar    $0x20,%rdx
        1a:	83 c2 01             	add    $0x1,%edx
        1d:	48 89 d6             	mov    %rdx,%rsi
        20:	89 ca                	mov    %ecx,%edx
        22:	48 c1 e6 20          	shl    $0x20,%rsi
        26:	48 09 f2             	or     %rsi,%rdx
        29:	f0 48 0f b1 55 00    	lock cmpxchg %rdx,0x0(%rbp)
        2f:	75 02                	jne    33 <lockref_get+0x33>
      
      [ Michael Ellerman and Mark Rutland confirm that code generation on
        powerpc and arm64 respectively is also ok, even though they do not
        have a native arch_try_cmpxchg() implementation, and rely on the
        default fallback case    - Linus ]
      Signed-off-by: default avatarUros Bizjak <ubizjak@gmail.com>
      Tested-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Tested-by: default avatarMark Rutland <mark.rutland@arm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Cc: Waiman.Long@hp.com
      Cc: paulmck@linux.vnet.ibm.com
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3378323b
    • Linus Torvalds's avatar
      Merge tag 'xfs-5.19-for-linus' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · babf0bb9
      Linus Torvalds authored
      Pull xfs updates from Dave Chinner:
       "This is a big update with lots of new code. The summary below them
        all, so I'll just touch on teh higlights. The two main new features
        are Large Extent Counts and Logged Attribute Replay - these are two
        new foundational features that we are building more complex future
        features on top of.
      
        For upcoming functionality, we need to be able to store hundreds of
        millions of xattrs per inode. The Large Extent Count feature removes
        the limits that prevent this scale of xattr storage, and while we were
        modifying the on disk extent count format we also increased the number
        of data extents we support per inode from 2^32 to 2^47.
      
        We also need to be able to modify xattrs as part of larger atomic
        transactions rather than as standalone transactions. The Logged
        Attribute Replay feature introduces the infrastructure that allows us
        to use intents to record the attribute modifications in the journal
        before we start them, hence allowing other atomic transactions to log
        attribute modification intents and then defer the actual modification
        to later. If we then crash, log recovery then guarantees that the
        attribute is replayed in the context of the atomic transaction that
        logged the intent.
      
        A significant chunk of the commits in this merge are for the base
        attribute replay functionality along with fixes, improvements and
        cleanups related to this new functioanlity. Allison deserves a big
        round of thanks for her ongoing work to get this functionality into
        XFS.
      
        There are also many other smaller changes and improvements, so overall
        this is one of the bigger XFS merge requests in some time.
      
        I will be following up next week with another smaller pull request -
        we already have another round of fixes and improvements to the logged
        attribute replay functionality just about ready to go. They'll soak
        and test over the next week, and I'll send a pull request for them
        near the end of the merge window.
      
        Summary:
      
         - support for printk message indexing.
      
         - large extent counts to provide support for up to 2^47 data extents
           and 2^32 attribute extents, allowing us to scale beyond 4 billion
           data extents to billions of xattrs per inode.
      
         - conversion of various flags fields to be consistently declared as
           unsigned bit fields.
      
         - improvements to realtime extent accounting and converts them to
           per-cpu counters to match all the other block and inode accounting.
      
         - reworks core log formatting code to reduce iterations, have a
           shorter, cleaner fast path and generally be easier to understand
           and maintain.
      
         - improvements to rmap btree searches that reduce overhead by up to
           30% resulting in xfs_scrub runtime reductions of 15%.
      
         - improvements to reflink that remove the size limitations in
           remapping operations and greatly reduce the size of transaction
           reservations.
      
         - reworks the minimum log size calculations to allow us to change
           transaction reservations without changing the minimum supported log
           size.
      
         - removal of quota warning support as it has never been used on
           Linux.
      
         - intent whiteouts to allow us to cancel intents that are completed
           entirely in memory rather than having use CPU and disk bandwidth
           formatting and writing them into the journal when it is not
           necessary. This makes rmap, reflink and extent freeing slightly
           more efficient, but provides massive improvements for....
      
         - Logged Attribute Replay feature support. This is a fundamental
           change to the way we modify attributes, laying the foundation for
           future integration of attribute modifications as part of other
           atomic transactional operations the filesystem performs.
      
         - Lots of cleanups and fixes for the logged attribute replay
           functionality"
      
      * tag 'xfs-5.19-for-linus' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (124 commits)
        xfs: can't use kmem_zalloc() for attribute buffers
        xfs: detect empty attr leaf blocks in xfs_attr3_leaf_verify
        xfs: ATTR_REPLACE algorithm with LARP enabled needs rework
        xfs: use XFS_DA_OP flags in deferred attr ops
        xfs: remove xfs_attri_remove_iter
        xfs: switch attr remove to xfs_attri_set_iter
        xfs: introduce attr remove initial states into xfs_attr_set_iter
        xfs: xfs_attr_set_iter() does not need to return EAGAIN
        xfs: clean up final attr removal in xfs_attr_set_iter
        xfs: remote xattr removal in xfs_attr_set_iter() is conditional
        xfs: XFS_DAS_LEAF_REPLACE state only needed if !LARP
        xfs: split remote attr setting out from replace path
        xfs: consolidate leaf/node states in xfs_attr_set_iter
        xfs: kill XFS_DAC_LEAF_ADDNAME_INIT
        xfs: separate out initial attr_set states
        xfs: don't set quota warning values
        xfs: remove warning counters from struct xfs_dquot_res
        xfs: remove quota warning limit from struct xfs_quota_limits
        xfs: rework deferred attribute operation setup
        xfs: make xattri_leaf_bp more useful
        ...
      babf0bb9
    • Linus Torvalds's avatar
      Merge tag 'fsnotify_for_v5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · e375780b
      Linus Torvalds authored
      Pull fsnotify updates from Jan Kara:
       "The biggest part of this is support for fsnotify inode marks that
        don't pin inodes in memory but rather get evicted together with the
        inode (they are useful if userspace needs to exclude receipt of events
        from potentially large subtrees using fanotify ignore marks).
      
        There is also a fix for more consistent handling of events sent to
        parent and a fix of sparse(1) complaints"
      
      * tag 'fsnotify_for_v5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        fanotify: fix incorrect fmode_t casts
        fsnotify: consistent behavior for parent not watching children
        fsnotify: introduce mark type iterator
        fanotify: enable "evictable" inode marks
        fanotify: use fsnotify group lock helpers
        fanotify: implement "evictable" inode marks
        fanotify: factor out helper fanotify_mark_update_flags()
        fanotify: create helper fanotify_mark_user_flags()
        fsnotify: allow adding an inode mark without pinning inode
        dnotify: use fsnotify group lock helpers
        nfsd: use fsnotify group lock helpers
        audit: use fsnotify group lock helpers
        inotify: use fsnotify group lock helpers
        fsnotify: create helpers for group mark_mutex lock
        fsnotify: make allow_dups a property of the group
        fsnotify: pass flags argument to fsnotify_alloc_group()
        fsnotify: fix wrong lockdep annotations
        inotify: move control flags from mask to mark flags
        inotify: show inotify mask flags in proc fdinfo
      e375780b
    • Linus Torvalds's avatar
      Merge tag 'fs_for_v5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 8b728edc
      Linus Torvalds authored
      Pull writeback and ext2 cleanups from Jan Kara:
       "One small ext2 cleanup and one writeback spelling fix"
      
      * tag 'fs_for_v5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        writeback: fix typo in comment
        fs: ext2: Fix duplicate included linux/dax.h
      8b728edc
    • Linus Torvalds's avatar
      Merge tag 'dma-mapping-5.19-2022-05-25' of git://git.infradead.org/users/hch/dma-mapping · 3f306ea2
      Linus Torvalds authored
      Pull dma-mapping updates from Christoph Hellwig:
      
       - don't over-decrypt memory (Robin Murphy)
      
       - takes min align mask into account for the swiotlb max mapping size
         (Tianyu Lan)
      
       - use GFP_ATOMIC in dma-debug (Mikulas Patocka)
      
       - fix DMA_ATTR_NO_KERNEL_MAPPING on xen/arm (me)
      
       - don't fail on highmem CMA pages in dma_direct_alloc_pages (me)
      
       - cleanup swiotlb initialization and share more code with swiotlb-xen
         (me, Stefano Stabellini)
      
      * tag 'dma-mapping-5.19-2022-05-25' of git://git.infradead.org/users/hch/dma-mapping: (23 commits)
        dma-direct: don't over-decrypt memory
        swiotlb: max mapping size takes min align mask into account
        swiotlb: use the right nslabs-derived sizes in swiotlb_init_late
        swiotlb: use the right nslabs value in swiotlb_init_remap
        swiotlb: don't panic when the swiotlb buffer can't be allocated
        dma-debug: change allocation mode from GFP_NOWAIT to GFP_ATIOMIC
        dma-direct: don't fail on highmem CMA pages in dma_direct_alloc_pages
        swiotlb-xen: fix DMA_ATTR_NO_KERNEL_MAPPING on arm
        x86: remove cruft from <asm/dma-mapping.h>
        swiotlb: remove swiotlb_init_with_tbl and swiotlb_init_late_with_tbl
        swiotlb: merge swiotlb-xen initialization into swiotlb
        swiotlb: provide swiotlb_init variants that remap the buffer
        swiotlb: pass a gfp_mask argument to swiotlb_init_late
        swiotlb: add a SWIOTLB_ANY flag to lift the low memory restriction
        swiotlb: make the swiotlb_init interface more useful
        x86: centralize setting SWIOTLB_FORCE when guest memory encryption is enabled
        x86: remove the IOMMU table infrastructure
        MIPS/octeon: use swiotlb_init instead of open coding it
        arm/xen: don't check for xen_initial_domain() in xen_create_contiguous_region
        swiotlb: rename swiotlb_late_init_with_default_size
        ...
      3f306ea2
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · fbe86dac
      Linus Torvalds authored
      Pull SCSI updates from James Bottomley:
       "This consists of a small set of driver updates (lpfc, ufs, mpt3sas
        mpi3mr, iscsi target). Apart from that this is mostly small fixes with
        very few core changes (the biggest one being VPD caching)"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (177 commits)
        scsi: target: tcmu: Avoid holding XArray lock when calling lock_page
        scsi: elx: efct: Remove NULL check after calling container_of()
        scsi: dpt_i2o: Drop redundant spinlock initialization
        scsi: qedf: Remove redundant variable op
        scsi: hisi_sas: Fix memory ordering in hisi_sas_task_deliver()
        scsi: fnic: Replace DMA mask of 64 bits with 47 bits
        scsi: mpi3mr: Add target device related sysfs attributes
        scsi: mpi3mr: Add shost related sysfs attributes
        scsi: elx: efct: Remove redundant memset() statement
        scsi: megaraid_sas: Remove redundant memset() statement
        scsi: mpi3mr: Return error if dma_alloc_coherent() fails
        scsi: hisi_sas: Fix rescan after deleting a disk
        scsi: hisi_sas: Use sas_ata_wait_after_reset() in IT nexus reset
        scsi: libsas: Refactor sas_ata_hard_reset()
        scsi: mpt3sas: Update driver version to 42.100.00.00
        scsi: mpt3sas: Fix junk chars displayed while printing ChipName
        scsi: ipr: Use kobj_to_dev()
        scsi: mpi3mr: Fix a NULL vs IS_ERR() bug in mpi3mr_bsg_init()
        scsi: bnx2fc: Avoid using get_cpu() in bnx2fc_cmd_alloc()
        scsi: libfc: Remove get_cpu() semantics in fc_exch_em_alloc()
        ...
      fbe86dac
  2. 25 May, 2022 26 commits
    • Linus Torvalds's avatar
      Merge tag 'sound-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · d7227785
      Linus Torvalds authored
      Pull sound updates from Takashi Iwai:
       "Not much dramatic changes at this time, but we've received quite a lot
        of changes for ASoC, while there are still a few fixes and quirks for
        usual HD- and USB-auido. Here are some highlights.
      
        ASoC:
      
         - Overhaul of endianness specification for data formats, avoiding
           needless restrictions due to CODECs
      
         - Initial stages of Intel AVS driver merge
      
         - Introduction of v4 IPC mechanism for SOF
      
         - TDM mode support for AK4613
      
         - Support for Analog Devices ADAU1361, Cirrus Logic CS35L45, Maxim
           MAX98396, MediaTek MT8186, NXP i.MX8 micfil and SAI interfaces,
           nVidia Tegra186 ASRC, and Texas Instruments TAS2764 and TAS2780
      
        Others:
      
         - A few regression fixes after the USB-audio endpoint management
           refactoring
      
         - More enhancements for Cirrus HD-audio codec support (still ongoing)
      
         - Addition of generic serial MIDI driver"
      
      * tag 'sound-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (504 commits)
        ALSA: hda/realtek - Add new type for ALC245
        ALSA: usb-audio: Configure sync endpoints before data
        ALSA: ctxfi: fix typo in comment
        ALSA: cs5535audio: fix typo in comment
        ALSA: ctxfi: Add SB046x PCI ID
        ALSA: usb-audio: Add missing ep_idx in fixed EP quirks
        ALSA: usb-audio: Workaround for clock setup on TEAC devices
        ALSA: lola: Bounds check loop iterator against streams array size
        ASoC: max98090: Move check for invalid values before casting in max98090_put_enab_tlv()
        ASoC: rt1308-sdw: add the default value of register 0xc320
        ASoC: rt9120: Use pm_runtime and regcache to optimize 'pwdnn' logic
        ASoC: rt9120: Fix 3byte read, valule offset typo
        ASoC: amd: acp: Set Speaker enable/disable pin through rt1019 codec driver.
        ASoC: amd: acp: Set Speaker enable/disable pin through rt1019 codec driver
        ASoC: wm2000: fix missing clk_disable_unprepare() on error in wm2000_anc_transition()
        ASoC: codecs: lpass: Fix passing zero to 'PTR_ERR'
        ASoC: SOF: sof-client-ipc-flood-test: use pm_runtime_resume_and_get()
        ASoC: SOF: mediatek: remove duplicate include in mt8195.c
        ASoC: SOF: mediatek: Add mt8195 debug dump
        ASoC: SOF: mediatek: Add mediatek common debug dump
        ...
      d7227785
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2022-05-25' of git://anongit.freedesktop.org/drm/drm · 2518f226
      Linus Torvalds authored
      Pull drm updates from Dave Airlie:
       "Intel have enabled DG2 on certain SKUs for laptops, AMD has started
        some new GPU support, msm has user allocated VA controls
      
        dma-buf:
         - add dma_resv_replace_fences
         - add dma_resv_get_singleton
         - make dma_excl_fence private
      
        core:
         - EDID parser refactorings
         - switch drivers to drm_mode_copy/duplicate
         - DRM managed mutex initialization
      
        display-helper:
         - put HDMI, SCDC, HDCP, DSC and DP into new module
      
        gem:
         - rework fence handling
      
        ttm:
         - rework bulk move handling
         - add common debugfs for resource managers
         - convert to kvcalloc
      
        format helpers:
         - support monochrome formats
         - RGB888, RGB565 to XRGB8888 conversions
      
        fbdev:
         - cfb/sys_imageblit fixes
         - pagelist corruption fix
         - create offb platform device
         - deferred io improvements
      
        sysfb:
         - Kconfig rework
         - support for VESA mode selection
      
        bridge:
         - conversions to devm_drm_of_get_bridge
         - conversions to panel_bridge
         - analogix_dp - autosuspend support
         - it66121 - audio support
         - tc358767 - DSI to DPI support
         - icn6211 - PLL/I2C fixes, DT property
         - adv7611 - enable DRM_BRIDGE_OP_HPD
         - anx7625 - fill ELD if no monitor
         - dw_hdmi - add audio support
         - lontium LT9211 support, i.MXMP LDB
         - it6505: Kconfig fix, DPCD set power fix
         - adv7511 - CEC support for ADV7535
      
        panel:
         - ltk035c5444t, B133UAN01, NV3052C panel support
         - DataImage FG040346DSSWBG04 support
         - st7735r - DT bindings fix
         - ssd130x - fixes
      
        i915:
         - DG2 laptop PCI-IDs ("motherboard down")
         - Initial RPL-P PCI IDs
         - compute engine ABI
         - DG2 Tile4 support
         - DG2 CCS clear color compression support
         - DG2 render/media compression formats support
         - ATS-M platform info
         - RPL-S PCI IDs added
         - Bump ADL-P DMC version to v2.16
         - Support static DRRS
         - Support multiple eDP/LVDS native mode refresh rates
         - DP HDR support for HSW+
         - Lots of display refactoring + fixes
         - GuC hwconfig support and query
         - sysfs support for multi-tile
         - fdinfo per-client gpu utilisation
         - add geometry subslices query
         - fix prime mmap with LMEM
         - fix vm open count and remove vma refcounts
         - contiguous allocation fixes
         - steered register write support
         - small PCI BAR enablement
         - GuC error capture support
         - sunset igpu legacy mmap support for newer devices
         - GuC version 70.1.1 support
      
        amdgpu:
         - Initial SoC21 support
         - SMU 13.x enablement
         - SMU 13.0.4 support
         - ttm_eu cleanups
         - USB-C, GPUVM updates
         - TMZ fixes for RV
         - RAS support for VCN
         - PM sysfs code cleanup
         - DC FP rework
         - extend CG/PG flags to 64-bit
         - SI dpm lockdep fix
         - runtime PM fixes
      
        amdkfd:
         - RAS/SVM fixes
         - TLB flush fixes
         - CRIU GWS support
         - ignore bogus MEC signals more efficiently
      
        msm:
         - Fourcc modifier for tiled but not compressed layouts
         - Support for userspace allocated IOVA (GPU virtual address)
         - DPU: DSC (Display Stream Compression) support
         - DP: eDP support
         - DP: conversion to use drm_bridge and drm_bridge_connector
         - Merge DPU1 and MDP5 MDSS driver
         - DPU: writeback support
      
        nouveau:
         - make some structures static
         - make some variables static
         - switch to drm_gem_plane_helper_prepare_fb
      
        radeon:
         - misc fixes/cleanups
      
        mxsfb:
         - rework crtc mode setting
         - LCDIF CRC support
      
        etnaviv:
         - fencing improvements
         - fix address space collisions
         - cleanup MMU reference handling
      
        gma500:
         - GEM/GTT improvements
         - connector handling fixes
      
        komeda:
         - switch to plane reset helper
      
        mediatek:
         - MIPI DSI improvements
      
        omapdrm:
         - GEM improvements
      
        qxl:
         - aarch64 support
      
        vc4:
         - add a CL submission tracepoint
         - HDMI YUV support
         - HDMI/clock improvements
         - drop is_hdmi caching
      
        virtio:
         - remove restriction of non-zero blob types
      
        vmwgfx:
         - support for cursormob and cursorbypass 4
         - fence improvements
      
        tidss:
         - reset DISPC on startup
      
        solomon:
         - SPI support
         - DT improvements
      
        sun4i:
         - allwinner D1 support
         - drop is_hdmi caching
      
        imx:
         - use swap() instead of open-coding
         - use devm_platform_ioremap_resource
         - remove redunant initializations
      
        ast:
         - Displayport support
      
        rockchip:
         - Refactor IOMMU initialisation
         - make some structures static
         - replace drm_detect_hdmi_monitor with drm_display_info.is_hdmi
         - support swapped YUV formats,
         - clock improvements
         - rk3568 support
         - VOP2 support
      
        mediatek:
         - MT8186 support
      
        tegra:
         - debugabillity improvements"
      
      * tag 'drm-next-2022-05-25' of git://anongit.freedesktop.org/drm/drm: (1740 commits)
        drm/i915/dsi: fix VBT send packet port selection for ICL+
        drm/i915/uc: Fix undefined behavior due to shift overflowing the constant
        drm/i915/reg: fix undefined behavior due to shift overflowing the constant
        drm/i915/gt: Fix use of static in macro mismatch
        drm/i915/audio: fix audio code enable/disable pipe logging
        drm/i915: Fix CFI violation with show_dynamic_id()
        drm/i915: Fix 'mixing different enum types' warnings in intel_display_power.c
        drm/i915/gt: Fix build error without CONFIG_PM
        drm/msm/dpu: handle pm_runtime_get_sync() errors in bind path
        drm/msm/dpu: add DRM_MODE_ROTATE_180 back to supported rotations
        drm/msm: don't free the IRQ if it was not requested
        drm/msm/dpu: limit writeback modes according to max_linewidth
        drm/amd: Don't reset dGPUs if the system is going to s2idle
        drm/amdgpu: Unmap legacy queue when MES is enabled
        drm: msm: fix possible memory leak in mdp5_crtc_cursor_set()
        drm/msm: Fix fb plane offset calculation
        drm/msm/a6xx: Fix refcount leak in a6xx_gpu_init
        drm/msm/dsi: don't powerup at modeset time for parade-ps8640
        drm/rockchip: Change register space names in vop2
        dt-bindings: display: rockchip: make reg-names mandatory for VOP2
        ...
      2518f226
    • Linus Torvalds's avatar
      Merge tag 'devicetree-for-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 86c87bea
      Linus Torvalds authored
      Pull devicetree updates from Rob Herring:
       "Bindings:
      
         - Convert smsc,lan91c111, qcom,spi-qup, qcom,msm-uartdm,
           qcom,i2c-qup, qcom,gsbi, i2c-mt65xx, TI wkup_m3_ipc (and new
           props), qcom,smp2p, TI timer, Mediatek gnss, Mediatek topckgen,
           Mediatek apmixedsys, Mediatek infracfg, fsl,ls-extirq,
           fsl,layerscape-dcfg, QCom PMIC SPMI, rda,8810pl-timer, Xilinx
           zynqmp_ipi, uniphier-pcie, and Ilitek touchscreen controllers
      
         - Convert various Arm Ltd peripheral IP bindings to schemas
      
         - New bindings for Menlo board CPLD, DH electronics board CPLD,
           Qualcomm Geni based QUP I2C, Renesas RZ/G2UL OSTM, Broafcom BCM4751
           GNSS, MT6360 PMIC, ASIX USB Ethernet controllers, and
           Microchip/SMSC LAN95xx USB Ethernet controllers
      
         - Add vendor prefix for Enclustra
      
         - Add various compatible string additions
      
         - Various example fixes and cleanups
      
         - Remove unused hisilicon,hi6220-reset binding
      
         - Treewide fix properties missing type definition
      
         - Drop some empty and unreferenced .txt bindings
      
         - Documentation improvements for writing schemas
      
        DT driver core:
      
         - Drop static IRQ resources for DT platform devices as IRQ setup is
           dynamic and drivers have all been converted to use
           platform_get_irq() and friends
      
         - Rework memory allocations and frees for overlays
      
         - Continue overlay notifier callbacks on successful calls and add
           unittests
      
         - Handle 'interrupts-extended' in early DT IRQ setup
      
         - Fix of_property_read_string() errors to match documentation
      
         - Ignore disabled nodes in FDT API calls"
      
      * tag 'devicetree-for-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (86 commits)
        of/irq: fix typo in comment
        dt-bindings: Fix properties without any type
        Revert "dt-bindings: mailbox: qcom-ipcc: add missing properties into example"
        dt-bindings: input: touchscreen: ilitek_ts_i2c: Absorb ili2xxx bindings
        dt-bindings: timer: samsung,exynos4210-mct: define strict clock order
        dt-bindings: timer: samsung,exynos4210-mct: drop unneeded minItems
        dt-bindings: timer: cdns,ttc: drop unneeded minItems
        dt-bindings: mailbox: zynqmp_ipi: convert to yaml
        dt-bindings: usb: ci-hdrc-usb2: fix node node for ethernet controller
        dt-bindings: net: add schema for Microchip/SMSC LAN95xx USB Ethernet controllers
        dt-bindings: net: add schema for ASIX USB Ethernet controllers
        of/fdt: Ignore disabled memory nodes
        dt-bindings: arm: fix typos in compatible
        dt-bindings: mfd: Add bindings child nodes for the Mediatek MT6360
        dt-bindings: display: convert Arm Komeda to DT schema
        dt-bindings: display: convert Arm Mali-DP to DT schema
        dt-bindings: display: convert Arm HDLCD to DT schema
        dt-bindings: display: convert PL110/PL111 to DT schema
        dt-bindings: arm: convert vexpress-config to DT schema
        dt-bindings: arm: convert vexpress-sysregs to DT schema
        ...
      86c87bea
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v5.19-2022-05-23' of... · d223575e
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v5.19-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull perf tool updates from Arnaldo Carvalho de Melo:
       "Intel PT:
      
         - Allow hardware tracing on KVM test programs. In this case, the VM
           is not running an OS, but only the functions loaded into it by the
           hypervisor test program, and conveniently, loaded at the same
           virtual addresses.
      
         - Improve documentation:
            - Add link to perf wiki's page
      
         - Cleanups:
            - Delete now unused perf-with-kcore.sh script
            - Remove unused machines__find_host()
      
        ARM SPE (Statistical Profile Extensions):
      
         - Add man page entry.
      
        Vendor Events:
      
         - Update various Intel event topics
      
         - Update various microarch events
      
         - Fix various cstate metrics
      
         - Fix Alderlake metric groups
      
         - Add sapphirerapids events
      
         - Add JSON files for ARM Cortex A34, A35, A55, A510, A65, A73, A75,
           A77, A78, A710, X1, X2 and Neoverse E1
      
         - Update Cortex A57/A72
      
        perf stat:
      
         - Introduce stats for the user and system rusage times
      
        perf c2c:
      
         - Prep work to support ARM systems
      
        perf annotate:
      
         - Add --percent-limit option
      
        perf lock:
      
         - Add -t/--thread option for report
      
         - Do not discard broken lock stats
      
        perf bench:
      
         - Add breakpoint benchmarks
      
        perf test:
      
         - Limit to only run executable scripts in tests
      
         - Add basic perf record tests
      
         - Add stat record+report test
      
         - Add basic stat and topdown group test
      
         - Skip several tests when the user hasn't permission to perform them
      
         - Fix test case 81 ("perf record tests") on s390x
      
        perf version:
      
         - debuginfod support improvements
      
        perf scripting python:
      
         - Expose symbol offset and source information
      
        perf build:
      
         - Error for BPF skeletons without LIBBPF
      
         - Use Python devtools for version autodetection rather than runtime
      
        Miscellaneous:
      
         - Add riscv64 support to 'perf jitdump'
      
         - Various fixes/tidy ups related to cpu_map
      
         - Fixes for handling Intel hybrid systems"
      
      * tag 'perf-tools-for-v5.19-2022-05-23' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (122 commits)
        perf intel-pt: Add guest_code support
        perf kvm report: Add guest_code support
        perf script: Add guest_code support
        perf tools: Add guest_code support
        perf tools: Factor out thread__set_guest_comm()
        perf tools: Add machine to machines back pointer
        perf vendors events arm64: Update Cortex A57/A72
        perf vendors events arm64: Arm Neoverse E1
        perf vendors events arm64: Arm Cortex-X2
        perf vendors events arm64: Arm Cortex-X1
        perf vendors events arm64: Arm Cortex-A710
        perf vendors events arm64: Arm Cortex-A78
        perf vendors events arm64: Arm Cortex-A77
        perf vendors events arm64: Arm Cortex-A75
        perf vendors events arm64: Arm Cortex-A73
        perf vendors events arm64: Arm Cortex-A65
        perf vendors events arm64: Arm Cortex-A510
        perf vendors events arm64: Arm Cortex-A55
        perf vendors events arm64: Arm Cortex-A35
        perf vendors events arm64: Arm Cortex-A34
        ...
      d223575e
    • Linus Torvalds's avatar
      Merge tag 'checkpatch-new-alloc-check-5.19-rc1' of... · e908305f
      Linus Torvalds authored
      Merge tag 'checkpatch-new-alloc-check-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux
      
      Pull checkpatch update from Gustavo Silva:
       "kvmalloc() and kvzalloc() functions have now 2-factor multiplication
        argument forms kvmalloc_array() and kvcalloc().
      
        Add alloc-with-multiplies checks for these new functions"
      
      * tag 'checkpatch-new-alloc-check-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux:
        checkpatch: add new alloc functions to alloc with multiplies check
      e908305f
    • Linus Torvalds's avatar
      Merge tag 'size_t-saturating-helpers-5.19-rc1' of... · 62e5873e
      Linus Torvalds authored
      Merge tag 'size_t-saturating-helpers-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux
      
      Pull misc hardening updates from Gustavo Silva:
       "Replace a few open-coded instances with size_t saturating arithmetic
        helpers"
      
      * tag 'size_t-saturating-helpers-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux:
        virt: acrn: Prefer array_size and struct_size over open coded arithmetic
        afs: Prefer struct_size over open coded arithmetic
      62e5873e
    • Linus Torvalds's avatar
      Merge tag 'Wstringop-overflow-fixes-5.19-rc1' of... · a3a8b54b
      Linus Torvalds authored
      Merge tag 'Wstringop-overflow-fixes-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux
      
      Pull Wstringop-overflow fixes from Gustavo Silva:
       "Fix some -Wstringop-overflow warnings when building with GCC-11. All
        the patches have been in linux-next during the last development cycle.
      
        This is part of the ongoing efforts to globally enable
        -Wstringop-overflow"
      
      * tag 'Wstringop-overflow-fixes-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux:
        drm/i915: Fix -Wstringop-overflow warning in call to intel_read_wm_latency()
        drm/amd/display: Fix Wstringop-overflow warnings in dc_link_dp.c
        scsi: fcoe: Fix Wstringop-overflow warnings in fcoe_wwn_from_mac()
      a3a8b54b
    • Linus Torvalds's avatar
      Merge tag 'net-next-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next · 7e062cda
      Linus Torvalds authored
      Pull networking updates from Jakub Kicinski:
       "Core
        ----
      
         - Support TCPv6 segmentation offload with super-segments larger than
           64k bytes using the IPv6 Jumbogram extension header (AKA BIG TCP).
      
         - Generalize skb freeing deferral to per-cpu lists, instead of
           per-socket lists.
      
         - Add a netdev statistic for packets dropped due to L2 address
           mismatch (rx_otherhost_dropped).
      
         - Continue work annotating skb drop reasons.
      
         - Accept alternative netdev names (ALT_IFNAME) in more netlink
           requests.
      
         - Add VLAN support for AF_PACKET SOCK_RAW GSO.
      
         - Allow receiving skb mark from the socket as a cmsg.
      
         - Enable memcg accounting for veth queues, sysctl tables and IPv6.
      
        BPF
        ---
      
         - Add libbpf support for User Statically-Defined Tracing (USDTs).
      
         - Speed up symbol resolution for kprobes multi-link attachments.
      
         - Support storing typed pointers to referenced and unreferenced
           objects in BPF maps.
      
         - Add support for BPF link iterator.
      
         - Introduce access to remote CPU map elements in BPF per-cpu map.
      
         - Allow middle-of-the-road settings for the
           kernel.unprivileged_bpf_disabled sysctl.
      
         - Implement basic types of dynamic pointers e.g. to allow for
           dynamically sized ringbuf reservations without extra memory copies.
      
        Protocols
        ---------
      
         - Retire port only listening_hash table, add a second bind table
           hashed by port and address. Avoid linear list walk when binding to
           very popular ports (e.g. 443).
      
         - Add bridge FDB bulk flush filtering support allowing user space to
           remove all FDB entries matching a condition.
      
         - Introduce accept_unsolicited_na sysctl for IPv6 to implement
           router-side changes for RFC9131.
      
         - Support for MPTCP path manager in user space.
      
         - Add MPTCP support for fallback to regular TCP for connections that
           have never connected additional subflows or transmitted
           out-of-sequence data (partial support for RFC8684 fallback).
      
         - Avoid races in MPTCP-level window tracking, stabilize and improve
           throughput.
      
         - Support lockless operation of GRE tunnels with seq numbers enabled.
      
         - WiFi support for host based BSS color collision detection.
      
         - Add support for SO_TXTIME/SCM_TXTIME on CAN sockets.
      
         - Support transmission w/o flow control in CAN ISOTP (ISO 15765-2).
      
         - Support zero-copy Tx with TLS 1.2 crypto offload (sendfile).
      
         - Allow matching on the number of VLAN tags via tc-flower.
      
         - Add tracepoint for tcp_set_ca_state().
      
        Driver API
        ----------
      
         - Improve error reporting from classifier and action offload.
      
         - Add support for listing line cards in switches (devlink).
      
         - Add helpers for reporting page pool statistics with ethtool -S.
      
         - Add support for reading clock cycles when using PTP virtual clocks,
           instead of having the driver convert to time before reporting. This
           makes it possible to report time from different vclocks.
      
         - Support configuring low-latency Tx descriptor push via ethtool.
      
         - Separate Clause 22 and Clause 45 MDIO accesses more explicitly.
      
        New hardware / drivers
        ----------------------
      
         - Ethernet:
            - Marvell's Octeon NIC PCI Endpoint support (octeon_ep)
            - Sunplus SP7021 SoC (sp7021_emac)
            - Add support for Renesas RZ/V2M (in ravb)
            - Add support for MediaTek mt7986 switches (in mtk_eth_soc)
      
         - Ethernet PHYs:
            - ADIN1100 industrial PHYs (w/ 10BASE-T1L and SQI reporting)
            - TI DP83TD510 PHY
            - Microchip LAN8742/LAN88xx PHYs
      
         - WiFi:
            - Driver for pureLiFi X, XL, XC devices (plfxlc)
            - Driver for Silicon Labs devices (wfx)
            - Support for WCN6750 (in ath11k)
            - Support Realtek 8852ce devices (in rtw89)
      
         - Mobile:
            - MediaTek T700 modems (Intel 5G 5000 M.2 cards)
      
         - CAN:
            - ctucanfd: add support for CTU CAN FD open-source IP core from
              Czech Technical University in Prague
      
        Drivers
        -------
      
         - Delete a number of old drivers still using virt_to_bus().
      
         - Ethernet NICs:
            - intel: support TSO on tunnels MPLS
            - broadcom: support multi-buffer XDP
            - nfp: support VF rate limiting
            - sfc: use hardware tx timestamps for more than PTP
            - mlx5: multi-port eswitch support
            - hyper-v: add support for XDP_REDIRECT
            - atlantic: XDP support (including multi-buffer)
            - macb: improve real-time perf by deferring Tx processing to NAPI
      
         - High-speed Ethernet switches:
            - mlxsw: implement basic line card information querying
            - prestera: add support for traffic policing on ingress and egress
      
         - Embedded Ethernet switches:
            - lan966x: add support for packet DMA (FDMA)
            - lan966x: add support for PTP programmable pins
            - ti: cpsw_new: enable bc/mc storm prevention
      
         - Qualcomm 802.11ax WiFi (ath11k):
            - Wake-on-WLAN support for QCA6390 and WCN6855
            - device recovery (firmware restart) support
            - support setting Specific Absorption Rate (SAR) for WCN6855
            - read country code from SMBIOS for WCN6855/QCA6390
            - enable keep-alive during WoWLAN suspend
            - implement remain-on-channel support
      
         - MediaTek WiFi (mt76):
            - support Wireless Ethernet Dispatch offloading packet movement
              between the Ethernet switch and WiFi interfaces
            - non-standard VHT MCS10-11 support
            - mt7921 AP mode support
            - mt7921 IPv6 NS offload support
      
         - Ethernet PHYs:
            - micrel: ksz9031/ksz9131: cabletest support
            - lan87xx: SQI support for T1 PHYs
            - lan937x: add interrupt support for link detection"
      
      * tag 'net-next-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next: (1809 commits)
        ptp: ocp: Add firmware header checks
        ptp: ocp: fix PPS source selector debugfs reporting
        ptp: ocp: add .init function for sma_op vector
        ptp: ocp: vectorize the sma accessor functions
        ptp: ocp: constify selectors
        ptp: ocp: parameterize input/output sma selectors
        ptp: ocp: revise firmware display
        ptp: ocp: add Celestica timecard PCI ids
        ptp: ocp: Remove #ifdefs around PCI IDs
        ptp: ocp: 32-bit fixups for pci start address
        Revert "net/smc: fix listen processing for SMC-Rv2"
        ath6kl: Use cc-disable-warning to disable -Wdangling-pointer
        selftests/bpf: Dynptr tests
        bpf: Add dynptr data slices
        bpf: Add bpf_dynptr_read and bpf_dynptr_write
        bpf: Dynptr support for ring buffers
        bpf: Add bpf_dynptr_from_mem for local dynptrs
        bpf: Add verifier support for dynptrs
        bpf: Suppress 'passing zero to PTR_ERR' warning
        bpf: Introduce bpf_arch_text_invalidate for bpf_prog_pack
        ...
      7e062cda
    • Linus Torvalds's avatar
      Merge branch 'for-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq · 5d1772b1
      Linus Torvalds authored
      Pull workqueue update from Tejun Heo:
       "A lone commit fixing CPU offline handling for per-cpu wq workers so
        that they don't bother isolated CPUs"
      
      * 'for-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq:
        workqueue: Restrict kworker in the offline CPU pool running on housekeeping CPUs
      5d1772b1
    • Linus Torvalds's avatar
      Merge branch 'for-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup · 8b49c4b1
      Linus Torvalds authored
      Pull cgroup updates from Tejun Heo:
       "Nothing too interesting. This adds cpu controller selftests and there
        are a couple code cleanup patches"
      
      * 'for-5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup:
        cgroup: remove the superfluous judgment
        cgroup: Make cgroup_debug static
        kseltest/cgroup: Make test_stress.sh work if run interactively
        kselftest/cgroup: fix test_stress.sh to use OUTPUT dir
        cgroup: Add config file to cgroup selftest suite
        cgroup: Add test_cpucg_max_nested() testcase
        cgroup: Add test_cpucg_max() testcase
        cgroup: Add test_cpucg_nested_weight_underprovisioned() testcase
        cgroup: Adding test_cpucg_nested_weight_overprovisioned() testcase
        cgroup: Add test_cpucg_weight_underprovisioned() testcase
        cgroup: Add test_cpucg_weight_overprovisioned() testcase
        cgroup: Add test_cpucg_stats() testcase to cgroup cpu selftests
        cgroup: Add new test_cpu.c test suite in cgroup selftests
      8b49c4b1
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-kunit-5.19-rc1' of... · 64e34b50
      Linus Torvalds authored
      Merge tag 'linux-kselftest-kunit-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull KUnit updates from Shuah Khan:
       "Several fixes, cleanups, and enhancements to tests and framework:
      
         - introduce _NULL and _NOT_NULL macros to pointer error checks
      
         - rework kunit_resource allocation policy to fix memory leaks when
           caller doesn't specify free() function to be used when allocating
           memory using kunit_add_resource() and kunit_alloc_resource() funcs.
      
         - add ability to specify suite-level init and exit functions"
      
      * tag 'linux-kselftest-kunit-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest: (41 commits)
        kunit: tool: Use qemu-system-i386 for i386 runs
        kunit: fix executor OOM error handling logic on non-UML
        kunit: tool: update riscv QEMU config with new serial dependency
        kcsan: test: use new suite_{init,exit} support
        kunit: tool: Add list of all valid test configs on UML
        kunit: take `kunit_assert` as `const`
        kunit: tool: misc cleanups
        kunit: tool: minor cosmetic cleanups in kunit_parser.py
        kunit: tool: make parser stop overwriting status of suites w/ no_tests
        kunit: tool: remove dead parse_crash_in_log() logic
        kunit: tool: print clearer error message when there's no TAP output
        kunit: tool: stop using a shell to run kernel under QEMU
        kunit: tool: update test counts summary line format
        kunit: bail out of test filtering logic quicker if OOM
        lib/Kconfig.debug: change KUnit tests to default to KUNIT_ALL_TESTS
        kunit: Rework kunit_resource allocation policy
        kunit: fix debugfs code to use enum kunit_status, not bool
        kfence: test: use new suite_{init/exit} support, add .kunitconfig
        kunit: add ability to specify suite-level init and exit functions
        kunit: rename print_subtest_{start,end} for clarity (s/subtest/suite)
        ...
      64e34b50
    • Linus Torvalds's avatar
      Merge tag 'linux-kselftest-next-5.19-rc1' of... · 1c6d2ead
      Linus Torvalds authored
      Merge tag 'linux-kselftest-next-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest
      
      Pull Kselftest updates from Shuah Khan:
       "Several fixes, cleanups, and enhancements to tests:
      
         - add mips support for kprobe args string and syntax tests
      
         - updates to resctrl test to use kselftest framework
      
         - fixes, cleanups, and enhancements to tests"
      
      * tag 'linux-kselftest-next-5.19-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
        kselftests/ir : Improve readability of modprobe error message
        selftests/resctrl: Fix null pointer dereference on open failed
        selftests/resctrl: Add missing SPDX license to Makefile
        selftests/resctrl: Update README about using kselftest framework to build/run resctrl_tests
        selftests/resctrl: Make resctrl_tests run using kselftest framework
        selftests/resctrl: Fix resctrl_tests' return code to work with selftest framework
        selftests/resctrl: Change the default limited time to 120 seconds
        selftests/resctrl: Kill child process before parent process terminates if SIGTERM is received
        selftests/resctrl: Print a message if the result of MBM&CMT tests is failed on Intel CPU
        selftests/resctrl: Extend CPU vendor detection
        selftests/x86/corrupt_xstate_header: Use provided __cpuid_count() macro
        selftests/x86/amx: Use provided __cpuid_count() macro
        selftests/vm/pkeys: Use provided __cpuid_count() macro
        selftests: Provide local define of __cpuid_count()
        selftests/damon: add damon to selftests root Makefile
        selftests/binderfs: Improve message to provide more info
        selftests: mqueue: drop duplicate min definition
        selftests/ftrace: add mips support for kprobe args syntax tests
        selftests/ftrace: add mips support for kprobe args string tests
      1c6d2ead
    • Linus Torvalds's avatar
      Merge tag 'docs-5.19' of git://git.lwn.net/linux · 88a61892
      Linus Torvalds authored
      Pull documentation updates from Jonathan Corbet:
       "It was a moderately busy cycle for documentation; highlights include:
      
         - After a long period of inactivity, the Japanese translations are
           seeing some much-needed maintenance and updating.
      
         - Reworked IOMMU documentation
      
         - Some new documentation for static-analysis tools
      
         - A new overall structure for the memory-management documentation.
           This is an LSFMM outcome that, it is hoped, will help encourage
           developers to fill in the many gaps. Optimism is eternal...but
           hopefully it will work.
      
         - More Chinese translations.
      
        Plus the usual typo fixes, updates, etc"
      
      * tag 'docs-5.19' of git://git.lwn.net/linux: (70 commits)
        docs: pdfdocs: Add space for chapter counts >= 100 in TOC
        docs/zh_CN: Add dev-tools/gdb-kernel-debugging.rst Chinese translation
        input: Docs: correct ntrig.rst typo
        input: Docs: correct atarikbd.rst typos
        MAINTAINERS: Become the docs/zh_CN maintainer
        docs/zh_CN: fix devicetree usage-model translation
        mm,doc: Add new documentation structure
        Documentation: drop more IDE boot options and ide-cd.rst
        Documentation/process: use scripts/get_maintainer.pl on patches
        MAINTAINERS: Add entry for DOCUMENTATION/JAPANESE
        docs/trans/ja_JP/howto: Don't mention specific kernel versions
        docs/ja_JP/SubmittingPatches: Request summaries for commit references
        docs/ja_JP/SubmittingPatches: Add Suggested-by as a standard signature
        docs/ja_JP/SubmittingPatches: Randy has moved
        docs/ja_JP/SubmittingPatches: Suggest the use of scripts/get_maintainer.pl
        docs/ja_JP/SubmittingPatches: Update GregKH links
        Documentation/sysctl: document max_rcu_stall_to_panic
        Documentation: add missing angle bracket in cgroup-v2 doc
        Documentation: dev-tools: use literal block instead of code-block
        docs/zh_CN: add vm numa translation
        ...
      88a61892
    • Kefeng Wang's avatar
      mm: kfence: use PAGE_ALIGNED helper · f403f22f
      Kefeng Wang authored
      Use PAGE_ALIGNED macro instead of IS_ALIGNED and passing PAGE_SIZE.
      
      Link: https://lkml.kernel.org/r/20220520021833.121405-1-wangkefeng.wang@huawei.comSigned-off-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
      Acked-by: default avatarMuchun Song <songmuchun@bytedance.com>
      Cc: Marco Elver <elver@google.com>
      Cc: Alexander Potapenko <glider@google.com>
      Cc: Dmitry Vyukov <dvyukov@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      f403f22f
    • Patrick Wang's avatar
      selftests: vm: add the "settings" file with timeout variable · 05987399
      Patrick Wang authored
      The default "timeout" for one kselftest is 45 seconds, while some cases in
      run_vmtests.sh require more time.  This will cause testing timeout like:
      
        not ok 4 selftests: vm: run_vmtests.sh # TIMEOUT 45 seconds
      
      Therefore, add the "settings" file with timeout variable so users can set
      the "timeout" value.
      
      Link: https://lkml.kernel.org/r/20220521083825.319654-4-patrick.wang.shcn@gmail.comSigned-off-by: default avatarPatrick Wang <patrick.wang.shcn@gmail.com>
      Cc: Shuah Khan <shuah@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      05987399
    • Patrick Wang's avatar
      selftests: vm: add "test_hmm.sh" to TEST_FILES · ccd2a120
      Patrick Wang authored
      The "test_hmm.sh" file used by run_vmtests.sh dose not be installed into
      INSTALL_PATH.  Thus run_vmtests.sh can not call it in INSTALL_PATH:
      
        ---------------------------
        running ./test_hmm.sh smoke
        ---------------------------
        ./run_vmtests.sh: line 74: ./test_hmm.sh: No such file or directory
        [FAIL]
        -----------------------
      
      Add "test_hmm.sh" to TEST_FILES so that it will be installed.
      
      Link: https://lkml.kernel.org/r/20220521083825.319654-3-patrick.wang.shcn@gmail.comSigned-off-by: default avatarPatrick Wang <patrick.wang.shcn@gmail.com>
      Cc: Shuah Khan <shuah@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      ccd2a120
    • Patrick Wang's avatar
      selftests: vm: check numa_available() before operating "merge_across_nodes" in ksm_tests · 9aa1af95
      Patrick Wang authored
      Patch series "selftests: vm: a few fixup patches".
      
      This series contains three fixup patches for vm selftests.  They are
      independent.  Please see the patches.
      
      
      This patch (of 3):
      
      Currently, ksm_tests operates "merge_across_nodes" with NUMA either
      enabled or disabled.  In a system with NUMA disabled, these operations
      will fail and output a misleading report given "merge_across_nodes" does
      not exist in sysfs:
      
        ----------------------------
        running ./ksm_tests -M -p 10
        ----------------------------
        f /sys/kernel/mm/ksm/merge_across_nodes
        fopen: No such file or directory
        Cannot save default tunables
        [FAIL]
        ----------------------
      
      So check numa_available() before those operations to skip them if NUMA is
      disabled.
      
      Link: https://lkml.kernel.org/r/20220521083825.319654-1-patrick.wang.shcn@gmail.com
      Link: https://lkml.kernel.org/r/20220521083825.319654-2-patrick.wang.shcn@gmail.comSigned-off-by: default avatarPatrick Wang <patrick.wang.shcn@gmail.com>
      Cc: Shuah Khan <shuah@kernel.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      9aa1af95
    • Muhammad Usama Anjum's avatar
      selftests: vm: add migration to the .gitignore · 3d3921ed
      Muhammad Usama Anjum authored
      Add newly added migration test object to .gitignore file.
      
      Link: https://lkml.kernel.org/r/20220521094313.166505-1-usama.anjum@collabora.com
      Fixes: 0c2d0872 ("mm: add selftests for migration entries")
      Signed-off-by: default avatarMuhammad Usama Anjum <usama.anjum@collabora.com>
      Reviewed-by: default avatarAlistair Popple <apopple@nvidia.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      3d3921ed
    • Julia Lawall's avatar
      selftests/vm/pkeys: fix typo in comment · 75c96cce
      Julia Lawall authored
      Spelling mistake (triple letters) in comment.  Detected with the help of
      Coccinelle.
      
      Link: https://lkml.kernel.org/r/20220521111145.81697-80-Julia.Lawall@inria.frSigned-off-by: default avatarJulia Lawall <Julia.Lawall@inria.fr>
      Reviewed-by: default avatarMuchun Song <songmuchun@bytedance.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      75c96cce
    • Julia Lawall's avatar
      ksm: fix typo in comment · 3413b2c8
      Julia Lawall authored
      Spelling mistake (triple letters) in comment.  Detected with the help of
      Coccinelle.
      
      Link: https://lkml.kernel.org/r/20220521111145.81697-94-Julia.Lawall@inria.frSigned-off-by: default avatarJulia Lawall <Julia.Lawall@inria.fr>
      Reviewed-by: default avatarMuchun Song <songmuchun@bytedance.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      3413b2c8
    • Suren Baghdasaryan's avatar
      selftests: vm: add process_mrelease tests · 33776141
      Suren Baghdasaryan authored
      Introduce process_mrelease syscall sanity tests which include tests
      which expect to fail:
      
      - process_mrelease with invalid pidfd and flags inputs
      - process_mrelease on a live process with no pending signals
      
      and valid process_mrelease usage which is expected to succeed.  Because
      process_mrelease has to be used against a process with a pending SIGKILL,
      it's possible that the process exits before process_mrelease gets called. 
      In such cases we retry the test with a victim that allocates twice more
      memory up to 1GB.  This would require the victim process to spend more
      time during exit and process_mrelease has a better chance of catching the
      process before it exits and succeeding.
      
      On success the test reports the amount of memory the child had to allocate
      for reaping to succeed.  Sample output:
      
      $ mrelease_test
      Success reaping a child with 1MB of memory allocations
      
      On failure the test reports the failure. Sample outputs:
      
      $ mrelease_test
      All process_mrelease attempts failed!
      
      $ mrelease_test
      process_mrelease: Invalid argument
      
      Link: https://lkml.kernel.org/r/20220518204316.13131-1-surenb@google.comSigned-off-by: default avatarSuren Baghdasaryan <surenb@google.com>
      Reviewed-by: default avatarShuah Khan <skhan@linuxfoundation.org>
      Acked-by: default avatarChristian Brauner (Microsoft) <brauner@kernel.org>
      Reviewed-by: default avatarMuhammad Usama Anjum <usama.anjum@collabora.com>
      Cc: Michal Hocko <mhocko@suse.com>
      Cc: David Rientjes <rientjes@google.com>
      Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
      Cc: Johannes Weiner <hannes@cmpxchg.org>
      Cc: Roman Gushchin <guro@fb.com>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: "Kirill A . Shutemov" <kirill@shutemov.name>
      Cc: Andrea Arcangeli <aarcange@redhat.com>
      Cc: Christoph Hellwig <hch@infradead.org>
      Cc: Oleg Nesterov <oleg@redhat.com>
      Cc: David Hildenbrand <david@redhat.com>
      Cc: Jann Horn <jannh@google.com>
      Cc: Shakeel Butt <shakeelb@google.com>
      Cc: Peter Xu <peterx@redhat.com>
      Cc: John Hubbard <jhubbard@nvidia.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      33776141
    • Johannes Weiner's avatar
      Revert "mm/vmscan: never demote for memcg reclaim" · 3f1509c5
      Johannes Weiner authored
      This reverts commit 3a235693.
      
      Its premise was that cgroup reclaim cares about freeing memory inside the
      cgroup, and demotion just moves them around within the cgroup limit. 
      Hence, pages from toptier nodes should be reclaimed directly.
      
      However, with NUMA balancing now doing tier promotions, demotion is part
      of the page aging process.  Global reclaim demotes the coldest toptier
      pages to secondary memory, where their life continues and from which they
      have a chance to get promoted back.  Essentially, tiered memory systems
      have an LRU order that spans multiple nodes.
      
      When cgroup reclaims pages coming off the toptier directly, there can be
      colder pages on lower tier nodes that were demoted by global reclaim. 
      This is an aging inversion, not unlike if cgroups were to reclaim directly
      from the active lists while there are inactive pages.
      
      Proactive reclaim is another factor.  The goal of that it is to offload
      colder pages from expensive RAM to cheaper storage.  When lower tier
      memory is available as an intermediate layer, we want offloading to take
      advantage of it instead of bypassing to storage.
      
      Revert the patch so that cgroups respect the LRU order spanning the memory
      hierarchy.
      
      Of note is a specific undercommit scenario, where all cgroup limits in the
      system add up to <= available toptier memory.  In that case, shuffling
      pages out to lower tiers first to reclaim them from there is inefficient. 
      This is something could be optimized/short-circuited later on (although
      care must be taken not to accidentally recreate the aging inversion). 
      Let's ensure correctness first.
      
      Link: https://lkml.kernel.org/r/20220518190911.82400-1-hannes@cmpxchg.orgSigned-off-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
      Acked-by: default avatarDave Hansen <dave.hansen@linux.intel.com>
      Reviewed-by: default avatarYang Shi <shy828301@gmail.com>
      Acked-by: default avatarRoman Gushchin <roman.gushchin@linux.dev>
      Reviewed-by: default avatar"Huang, Ying" <ying.huang@intel.com>
      Reviewed-by: default avatarMuchun Song <songmuchun@bytedance.com>
      Acked-by: default avatarMichal Hocko <mhocko@suse.com>
      Acked-by: default avatarShakeel Butt <shakeelb@google.com>
      Acked-by: default avatarTim Chen <tim.c.chen@linux.intel.com>
      Cc: Zi Yan <ziy@nvidia.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      3f1509c5
    • Jackie Liu's avatar
      mm/kfence: print disabling or re-enabling message · 83d7d04f
      Jackie Liu authored
      By printing information, we can friendly prompt the status change
      information of kfence by dmesg and record by syslog.
      
      Also, set kfence_enabled to false only when needed.
      
      Link: https://lkml.kernel.org/r/20220518073105.3160335-1-liu.yun@linux.devSigned-off-by: default avatarJackie Liu <liuyun01@kylinos.cn>
      Co-developed-by: default avatarMarco Elver <elver@google.com>
      Signed-off-by: default avatarMarco Elver <elver@google.com>
      Reviewed-by: default avatarMarco Elver <elver@google.com>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      83d7d04f
    • Vasily Averin's avatar
      include/trace/events/percpu.h: cleanup for "percpu: improve percpu_alloc_percpu event trace" · e5c3f619
      Vasily Averin authored
      Fix sparse warning about incorrect gfp_t cast.
      
      Link: https://lkml.kernel.org/r/001979f3-e978-0998-cbed-61a4a2ac87b8@openvz.org
      Fixes: f67bed13 ("percpu: improve percpu_alloc_percpu event trace")
      Signed-off-by: default avatarVasily Averin <vvs@openvz.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      e5c3f619
    • Vasily Averin's avatar
      include/trace/events/mmflags.h: cleanup for "tracing: incorrect gfp_t conversion" · 185194f1
      Vasily Averin authored
      Redefines __def_gfpflag_names array according to akpm@, willy@ and Joe
      Perches recommendations.
      
      Link: https://lkml.kernel.org/r/6f811e19-41c6-f3e8-fca6-23a19a62e313@openvz.org
      Fixes: fe573327 ("tracing: incorrect gfp_t conversion")
      Signed-off-by: default avatarVasily Averin <vvs@openvz.org>
      Cc: Matthew Wilcox <willy@infradead.org>
      Cc: Joe Perches <joe@perches.com>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      185194f1
    • Zi Yan's avatar
      mm: fix a potential infinite loop in start_isolate_page_range() · 88ee1343
      Zi Yan authored
      In isolate_single_pageblock() called by start_isolate_page_range(), there
      are some pageblock isolation issues causing a potential infinite loop when
      isolating a page range.  This is reported by Qian Cai.
      
      1. the pageblock was isolated by just changing pageblock migratetype
         without checking unmovable pages. Calling set_migratetype_isolate() to
         isolate pageblock properly.
      2. an off-by-one error caused migrating pages unnecessarily, since the page
         is not crossing pageblock boundary.
      3. migrating a compound page across pageblock boundary then splitting the
         free page later has a small race window that the free page might be
         allocated again, so that the code will try again, causing an potential
         infinite loop. Temporarily set the to-be-migrated page's pageblock to
         MIGRATE_ISOLATE to prevent that and bail out early if no free page is
         found after page migration.
      
      An additional fix to split_free_page() aims to avoid crashing in
      __free_one_page().  When the free page is split at the specified
      split_pfn_offset, free_page_order should check both the first bit of
      free_page_pfn and the last bit of split_pfn_offset and use the smaller
      one.  For example, if free_page_pfn=0x10000, split_pfn_offset=0xc000,
      free_page_order should first be 0x8000 then 0x4000, instead of 0x4000 then
      0x8000, which the original algorithm did.
      
      [akpm@linux-foundation.org: suppress min() warning]
      Link: https://lkml.kernel.org/r/20220524194756.1698351-1-zi.yan@sent.com
      Fixes: b2c9e2fb ("mm: make alloc_contig_range work at pageblock granularity")
      Signed-off-by: default avatarZi Yan <ziy@nvidia.com>
      Reported-by: default avatarQian Cai <quic_qiancai@quicinc.com>
      Cc: Christophe Leroy <christophe.leroy@csgroup.eu>
      Cc: David Hildenbrand <david@redhat.com>
      Cc: Eric Ren <renzhengeek@gmail.com>
      Cc: Mel Gorman <mgorman@techsingularity.net>
      Cc: Mike Rapoport <rppt@linux.ibm.com>
      Cc: Minchan Kim <minchan@kernel.org>
      Cc: Oscar Salvador <osalvador@suse.de>
      Cc: Vlastimil Babka <vbabka@suse.cz>
      Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
      88ee1343