1. 03 Oct, 2022 6 commits
    • Linus Torvalds's avatar
      Merge tag 'rcu.2022.09.30a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · 890f2420
      Linus Torvalds authored
      Pull RCU updates from Paul McKenney:
      
       - Documentation updates.
      
         This is the first in a series from an ongoing review of the RCU
         documentation. "Why are people thinking -that- about RCU? Oh. Because
         that is an entirely reasonable interpretation of its documentation."
      
       - Miscellaneous fixes.
      
       - Improved memory allocation and heuristics.
      
       - Improve rcu_nocbs diagnostic output.
      
       - Add full-sized polled RCU grace period state values.
      
         These are the same size as an rcu_head structure, which is double
         that of the traditional unsigned long state values that may still be
         obtained from et_state_synchronize_rcu(). The added size avoids
         missing overlapping grace periods. This benefit is that call_rcu()
         can be replaced by polling, which can be attractive in situations
         where RCU-protected data is aged out of memory.
      
         Early in the series, the size of this state value is three unsigned
         longs. Later in the series, the fastpaths in synchronize_rcu() and
         synchronize_rcu_expedited() are reworked to permit the full state to
         be represented by only two unsigned longs. This reworking slows these
         two functions down in SMP kernels running either on single-CPU
         systems or on systems with all but one CPU offlined, but this should
         not be a significant problem. And if it somehow becomes a problem in
         some yet-as-unforeseen situations, three-value state values can be
         provided for only those situations.
      
         Finally, a pair of functions named same_state_synchronize_rcu() and
         same_state_synchronize_rcu_full() allow grace-period state values to
         be compared for equality. This permits users to maintain lists of
         data structures having the same state value, removing the need for
         per-data-structure grace-period state values, thus decreasing memory
         footprint.
      
       - Polled SRCU grace-period updates, including adding tests to
         rcutorture and reducing the incidence of Tiny SRCU grace-period-state
         counter wrap.
      
       - Improve Tasks RCU diagnostics and quiescent-state detection.
      
      * tag 'rcu.2022.09.30a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu: (55 commits)
        rcutorture: Use the barrier operation specified by cur_ops
        rcu-tasks: Make RCU Tasks Trace check for userspace execution
        rcu-tasks: Ensure RCU Tasks Trace loops have quiescent states
        rcu-tasks: Convert RCU_LOCKDEP_WARN() to WARN_ONCE()
        srcu: Make Tiny SRCU use full-sized grace-period counters
        srcu: Make Tiny SRCU poll_state_synchronize_srcu() more precise
        srcu: Add GP and maximum requested GP to Tiny SRCU rcutorture output
        rcutorture: Make "srcud" option also test polled grace-period API
        rcutorture: Limit read-side polling-API testing
        rcu: Add functions to compare grace-period state values
        rcutorture: Expand rcu_torture_write_types() first "if" statement
        rcutorture: Use 1-suffixed variable in rcu_torture_write_types() check
        rcu: Make synchronize_rcu() fastpath update only boot-CPU counters
        rcutorture: Adjust rcu_poll_need_2gp() for rcu_gp_oldstate field removal
        rcu: Remove ->rgos_polled field from rcu_gp_oldstate structure
        rcu: Make synchronize_rcu_expedited() fast path update .expedited_sequence
        rcu: Remove expedited grace-period fast-path forward-progress helper
        rcu: Make synchronize_rcu() fast path update ->gp_seq counters
        rcu-tasks: Remove grace-period fast-path rcu-tasks helper
        rcu: Set rcu_data structures' initial ->gpwrap value to true
        ...
      890f2420
    • Linus Torvalds's avatar
      Merge tag 'lkmm.2022.09.30a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · b8fb65e1
      Linus Torvalds authored
      Pull LKMM (Linux Kernel Memory Model) updates from Paul McKenney:
       "Several documentation updates"
      
      * tag 'lkmm.2022.09.30a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:
        tools/memory-model: Clarify LKMM's limitations in litmus-tests.txt
        docs/memory-barriers.txt: Fixup long lines
        docs/memory-barriers.txt: Fix confusing name of 'data dependency barrier'
      b8fb65e1
    • Linus Torvalds's avatar
      Merge tag 'nolibc.2022.09.30a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · dda0ba40
      Linus Torvalds authored
      Pull nolibc updates from Paul McKenney:
       "Most notably greatly improved testing. These tests are located in
        tools/testing/selftests/nolibc. The output of "make help" is as
        follows:
      
          Supported targets under selftests/nolibc:
            all          call the "run" target below
            help         this help
            sysroot      create the nolibc sysroot here (uses $ARCH)
            nolibc-test  build the executable (uses $CC and $CROSS_COMPILE)
            initramfs    prepare the initramfs with nolibc-test
            defconfig    create a fresh new default config (uses $ARCH)
            kernel       (re)build the kernel with the initramfs (uses $ARCH)
            run          runs the kernel in QEMU after building it (uses $ARCH, $TEST)
            rerun        runs a previously prebuilt kernel in QEMU (uses $ARCH, $TEST)
            clean        clean the sysroot, initramfs, build and output files
      
          The output file is "run.out". Test ranges may be passed using $TEST.
      
          Currently using the following variables:
            ARCH          = x86
            CROSS_COMPILE =
            CC            = gcc
            OUTPUT        = /home/git/linux-rcu/tools/testing/selftests/nolibc/
            TEST          =
            QEMU_ARCH     = x86_64 [determined from $ARCH]
            IMAGE_NAME    = bzImage [determined from $ARCH]
      
        The output of a successful x86 "make run" is currently as follows,
        with kernel build output omitted:
      
          $ make run
          71 test(s) passed."
      
      * tag 'nolibc.2022.09.30a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:
        selftests/nolibc: Avoid generated files being committed
        selftests/nolibc: add a "help" target
        selftests/nolibc: "sysroot" target installs a local copy of the sysroot
        selftests/nolibc: add a "run" target to start the kernel in QEMU
        selftests/nolibc: add a "defconfig" target
        selftests/nolibc: add a "kernel" target to build the kernel with the initramfs
        selftests/nolibc: support glibc as well
        selftests/nolibc: condition some tests on /proc existence
        selftests/nolibc: recreate and populate /dev and /proc if missing
        selftests/nolibc: on x86, support exiting with isa-debug-exit
        selftests/nolibc: exit with poweroff on success when getpid() == 1
        selftests/nolibc: add a few tests for some libc functions
        selftests/nolibc: implement a few tests for various syscalls
        selftests/nolibc: support a test definition format
        selftests/nolibc: add basic infrastructure to ease creation of nolibc tests
        tools/nolibc: make sys_mmap() automatically use the right __NR_mmap definition
        tools/nolibc: fix build warning in sys_mmap() when my_syscall6 is not defined
        tools/nolibc: make argc 32-bit in riscv startup code
      dda0ba40
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm · 03823964
      Linus Torvalds authored
      Pull ARM fixes from Russell King:
       "Three fixes for ARM:
      
         - unbreak the RiscPC build
      
         - fix wrong pg_level in page table dumper
      
         - make MT_MEMORY_RO really read-only with LPAE"
      
      * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
        ARM: 9247/1: mm: set readonly for MT_MEMORY_RO with ARM_LPAE
        ARM: 9244/1: dump: Fix wrong pg_level in walk_pmd()
        ARM: 9243/1: riscpc: Unbreak the build
      03823964
    • Linus Torvalds's avatar
      Merge tag 'm68k-for-v6.1-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k · 75003fa7
      Linus Torvalds authored
      Pull m68k updates from Geert Uytterhoeven:
      
       - Fix forward secrecy of RNG seed boot record handling
      
       - Make RNG seed boot record handling generic for all m68k platforms
         using bootinfo
      
       - defconfig updates
      
       - Minor fixes and improvements
      
      * tag 'm68k-for-v6.1-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k:
        m68k: Rework BI_VIRT_RNG_SEED as BI_RNG_SEED
        m68k: Process bootinfo records before saving them
        m68k: defconfig: Update defconfigs for v6.0-rc2
        m68k: Allow kexec on M68KCLASSIC with MMU enabled only
        m68k: Move from strlcpy with unused retval to strscpy
      75003fa7
    • Linus Torvalds's avatar
      Merge tag 'mips_6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux · fb443f36
      Linus Torvalds authored
      Pull MIPS updates from Thomas Bogendoerfer:
      
       - mainly cleanups
      
       - fix enabling interrupts on second VPE for Lantiq platform
      
       - switch to use gpiod API
      
       - allow firmware passing RND seed
      
      * tag 'mips_6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/mips/linux: (29 commits)
        MIPS: pci: lantiq: switch to using gpiod API
        mips: allow firmware to pass RNG seed to kernel
        MIPS: Simplify __bswapdi2() and __bswapsi2()
        MIPS: Silence missing prototype warning
        mips: update config files
        MIPS: Lantiq: vmmc: fix compile break introduced by gpiod patch
        MIPS: IRQ: remove orphan allocate_irqno() declaration
        MIPS: remove orphan sb1250_time_init() declaration
        MIPS: Lantiq: switch vmmc to use gpiod API
        MIPS: lantiq: enable all hardware interrupts on second VPE
        MIPS: BCM47XX: Cast memcmp() of function to (void *)
        mips: ralink: convert to DEFINE_SHOW_ATTRIBUTE
        mips: kernel: convert to DEFINE_SHOW_ATTRIBUTE
        mips: cavium: convert to DEFINE_SHOW_ATTRIBUTE
        MIPS: AR7: remove orphan declarations from arch/mips/include/asm/mach-ar7/ar7.h
        MIPS: remove orphan sni_cpu_time_init() declaration
        MIPS: IRQ: remove orphan declarations from arch/mips/include/asm/irq.h
        MIPS: Octeon: remove orphan octeon_hal_setup_reserved32() declaration
        MIPS: Octeon: remove orphan cvmx_fpa_setup_pool() declaration
        MIPS: Octeon: remove orphan octeon_swiotlb declaration
        ...
      fb443f36
  2. 02 Oct, 2022 4 commits
  3. 01 Oct, 2022 11 commits
  4. 30 Sep, 2022 19 commits