1. 23 May, 2022 12 commits
    • Linus Torvalds's avatar
      Merge tag 'for-5.19/block-2022-05-22' of git://git.kernel.dk/linux-block · 115cd471
      Linus Torvalds authored
      Pull block updates from Jens Axboe:
       "Here are the core block changes for 5.19. This contains:
      
         - blk-throttle accounting fix (Laibin)
      
         - Series removing redundant assignments (Michal)
      
         - Expose bio cache via the bio_set, so that DM can use it (Mike)
      
         - Finish off the bio allocation interface cleanups by dealing with
           the weirdest member of the family. bio_kmalloc combines a kmalloc
           for the bio and bio_vecs with a hidden bio_init call and magic
           cleanup semantics (Christoph)
      
         - Clean up the block layer API so that APIs consumed by file systems
           are (almost) only struct block_device based, so that file systems
           don't have to poke into block layer internals like the
           request_queue (Christoph)
      
         - Clean up the blk_execute_rq* API (Christoph)
      
         - Clean up various lose end in the blk-cgroup code to make it easier
           to follow in preparation of reworking the blkcg assignment for bios
           (Christoph)
      
         - Fix use-after-free issues in BFQ when processes with merged queues
           get moved to different cgroups (Jan)
      
         - BFQ fixes (Jan)
      
         - Various fixes and cleanups (Bart, Chengming, Fanjun, Julia, Ming,
           Wolfgang, me)"
      
      * tag 'for-5.19/block-2022-05-22' of git://git.kernel.dk/linux-block: (83 commits)
        blk-mq: fix typo in comment
        bfq: Remove bfq_requeue_request_body()
        bfq: Remove superfluous conversion from RQ_BIC()
        bfq: Allow current waker to defend against a tentative one
        bfq: Relax waker detection for shared queues
        blk-cgroup: delete rcu_read_lock_held() WARN_ON_ONCE()
        blk-throttle: Set BIO_THROTTLED when bio has been throttled
        blk-cgroup: Remove unnecessary rcu_read_lock/unlock()
        blk-cgroup: always terminate io.stat lines
        block, bfq: make bfq_has_work() more accurate
        block, bfq: protect 'bfqd->queued' by 'bfqd->lock'
        block: cleanup the VM accounting in submit_bio
        block: Fix the bio.bi_opf comment
        block: reorder the REQ_ flags
        blk-iocost: combine local_stat and desc_stat to stat
        block: improve the error message from bio_check_eod
        block: allow passing a NULL bdev to bio_alloc_clone/bio_init_clone
        block: remove superfluous calls to blkcg_bio_issue_init
        kthread: unexport kthread_blkcg
        blk-cgroup: cleanup blkcg_maybe_throttle_current
        ...
      115cd471
    • Linus Torvalds's avatar
      Merge tag 'for-5.19/cdrom-2022-05-22' of git://git.kernel.dk/linux-block · f6792c87
      Linus Torvalds authored
      Pull cdrom updates from Jens Axboe:
       "Removal of unused code and documentation updates"
      
      * tag 'for-5.19/cdrom-2022-05-22' of git://git.kernel.dk/linux-block:
        cdrom: remove obsolete TODO list
        block: remove last remaining traces of IDE documentation
        cdrom: mark CDROMGETSPINDOWN/CDROMSETSPINDOWN obsolete
        cdrom: remove the unused driver specific disc change ioctl
        cdrom: make EXPORT_SYMBOL follow exported function
      f6792c87
    • Linus Torvalds's avatar
      Merge tag 'for-5.19/writeback-2022-05-22' of git://git.kernel.dk/linux-block · df1c5d73
      Linus Torvalds authored
      Pull writeback fix from Jens Axboe:
       "A single writeback fix that didn't belong in any other branch,
        correcting the number of skipped pages"
      
      * tag 'for-5.19/writeback-2022-05-22' of git://git.kernel.dk/linux-block:
        fs-writeback: writeback_sb_inodes:Recalculate 'wrote' according skipped pages
      df1c5d73
    • Linus Torvalds's avatar
      Merge tag 'for-5.19/io_uring-passthrough-2022-05-22' of git://git.kernel.dk/linux-block · 9836e93c
      Linus Torvalds authored
      Pull io_uring NVMe command passthrough from Jens Axboe:
       "On top of everything else, this adds support for passthrough for
        io_uring.
      
        The initial feature for this is NVMe passthrough support, which allows
        non-filesystem based IO commands and admin commands.
      
        To support this, io_uring grows support for SQE and CQE members that
        are twice as big, allowing to pass in a full NVMe command without
        having to copy data around. And to complete with more than just a
        single 32-bit value as the output"
      
      * tag 'for-5.19/io_uring-passthrough-2022-05-22' of git://git.kernel.dk/linux-block: (22 commits)
        io_uring: cleanup handling of the two task_work lists
        nvme: enable uring-passthrough for admin commands
        nvme: helper for uring-passthrough checks
        blk-mq: fix passthrough plugging
        nvme: add vectored-io support for uring-cmd
        nvme: wire-up uring-cmd support for io-passthru on char-device.
        nvme: refactor nvme_submit_user_cmd()
        block: wire-up support for passthrough plugging
        fs,io_uring: add infrastructure for uring-cmd
        io_uring: support CQE32 for nop operation
        io_uring: enable CQE32
        io_uring: support CQE32 in /proc info
        io_uring: add tracing for additional CQE32 fields
        io_uring: overflow processing for CQE32
        io_uring: flush completions for CQE32
        io_uring: modify io_get_cqe for CQE32
        io_uring: add CQE32 completion processing
        io_uring: add CQE32 setup processing
        io_uring: change ring size calculation for CQE32
        io_uring: store add. return values for CQE32
        ...
      9836e93c
    • Linus Torvalds's avatar
      Merge tag 'for-5.19/io_uring-net-2022-05-22' of git://git.kernel.dk/linux-block · e1a8fde7
      Linus Torvalds authored
      Pull io_uring 'more data in socket' support from Jens Axboe:
       "To be able to fully utilize the 'poll first' support in the core
        io_uring branch, it's advantageous knowing if the socket was empty
        after a receive. This adds support for that"
      
      * tag 'for-5.19/io_uring-net-2022-05-22' of git://git.kernel.dk/linux-block:
        io_uring: return hint on whether more data is available after receive
        tcp: pass back data left in socket after receive
      e1a8fde7
    • Linus Torvalds's avatar
      Merge tag 'for-5.19/io_uring-socket-2022-05-22' of git://git.kernel.dk/linux-block · 368da430
      Linus Torvalds authored
      Pull io_uring socket() support from Jens Axboe:
       "This adds support for socket(2) for io_uring. This is handy when using
        direct / registered file descriptors with io_uring.
      
        Outside of those two patches, a small series from Dylan on top that
        improves the tracing by providing a text representation of the opcode
        rather than needing to decode this by reading the header file every
        time.
      
        That sits in this branch as it was the last opcode added (until it
        wasn't...)"
      
      * tag 'for-5.19/io_uring-socket-2022-05-22' of git://git.kernel.dk/linux-block:
        io_uring: use the text representation of ops in trace
        io_uring: rename op -> opcode
        io_uring: add io_uring_get_opcode
        io_uring: add type to op enum
        io_uring: add socket(2) support
        net: add __sys_socket_file()
      368da430
    • Linus Torvalds's avatar
      Merge tag 'for-5.19/io_uring-xattr-2022-05-22' of git://git.kernel.dk/linux-block · 09beaff7
      Linus Torvalds authored
      Pull io_uring xattr support from Jens Axboe:
       "Support for the xattr variants"
      
      * tag 'for-5.19/io_uring-xattr-2022-05-22' of git://git.kernel.dk/linux-block:
        io_uring: cleanup error-handling around io_req_complete
        io_uring: fix trace for reduced sqe padding
        io_uring: add fgetxattr and getxattr support
        io_uring: add fsetxattr and setxattr support
        fs: split off do_getxattr from getxattr
        fs: split off setxattr_copy and do_setxattr function from setxattr
      09beaff7
    • Linus Torvalds's avatar
      Merge tag 'for-5.19/io_uring-2022-05-22' of git://git.kernel.dk/linux-block · 3a166bdb
      Linus Torvalds authored
      Pull io_uring updates from Jens Axboe:
       "Here are the main io_uring changes for 5.19. This contains:
      
         - Fixes for sparse type warnings (Christoph, Vasily)
      
         - Support for multi-shot accept (Hao)
      
         - Support for io_uring managed fixed files, rather than always
           needing the applicationt o manage the indices (me)
      
         - Fix for a spurious poll wakeup (Dylan)
      
         - CQE overflow fixes (Dylan)
      
         - Support more types of cancelations (me)
      
         - Support for co-operative task_work signaling, rather than always
           forcing an IPI (me)
      
         - Support for doing poll first when appropriate, rather than always
           attempting a transfer first (me)
      
         - Provided buffer cleanups and support for mapped buffers (me)
      
         - Improve how io_uring handles inflight SCM files (Pavel)
      
         - Speedups for registered files (Pavel, me)
      
         - Organize the completion data in a struct in io_kiocb rather than
           keep it in separate spots (Pavel)
      
         - task_work improvements (Pavel)
      
         - Cleanup and optimize the submission path, in general and for
           handling links (Pavel)
      
         - Speedups for registered resource handling (Pavel)
      
         - Support sparse buffers and file maps (Pavel, me)
      
         - Various fixes and cleanups (Almog, Pavel, me)"
      
      * tag 'for-5.19/io_uring-2022-05-22' of git://git.kernel.dk/linux-block: (111 commits)
        io_uring: fix incorrect __kernel_rwf_t cast
        io_uring: disallow mixed provided buffer group registrations
        io_uring: initialize io_buffer_list head when shared ring is unregistered
        io_uring: add fully sparse buffer registration
        io_uring: use rcu_dereference in io_close
        io_uring: consistently use the EPOLL* defines
        io_uring: make apoll_events a __poll_t
        io_uring: drop a spurious inline on a forward declaration
        io_uring: don't use ERR_PTR for user pointers
        io_uring: use a rwf_t for io_rw.flags
        io_uring: add support for ring mapped supplied buffers
        io_uring: add io_pin_pages() helper
        io_uring: add buffer selection support to IORING_OP_NOP
        io_uring: fix locking state for empty buffer group
        io_uring: implement multishot mode for accept
        io_uring: let fast poll support multishot
        io_uring: add REQ_F_APOLL_MULTISHOT for requests
        io_uring: add IORING_ACCEPT_MULTISHOT for accept
        io_uring: only wake when the correct events are set
        io_uring: avoid io-wq -EAGAIN looping for !IOPOLL
        ...
      3a166bdb
    • Linus Torvalds's avatar
      Merge tag 'rcu.2022.05.19a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · 1e57930e
      Linus Torvalds authored
      Pull RCU update from Paul McKenney:
      
       - Documentation updates
      
       - Miscellaneous fixes
      
       - Callback-offloading updates, mainly simplifications
      
       - RCU-tasks updates, including some -rt fixups, handling of systems
         with sparse CPU numbering, and a fix for a boot-time race-condition
         failure
      
       - Put SRCU on a memory diet in order to reduce the size of the
         srcu_struct structure
      
       - Torture-test updates fixing some bugs in tests and closing some
         testing holes
      
       - Torture-test updates for the RCU tasks flavors, most notably ensuring
         that building rcutorture and friends does not change the
         RCU-tasks-related Kconfig options
      
       - Torture-test scripting updates
      
       - Expedited grace-period updates, most notably providing
         milliseconds-scale (not all that) soft real-time response from
         synchronize_rcu_expedited().
      
         This is also the first time in almost 30 years of RCU that someone
         other than me has pushed for a reduction in the RCU CPU stall-warning
         timeout, in this case by more than three orders of magnitude from 21
         seconds to 20 milliseconds. This tighter timeout applies only to
         expedited grace periods
      
      * tag 'rcu.2022.05.19a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu: (80 commits)
        rcu: Move expedited grace period (GP) work to RT kthread_worker
        rcu: Introduce CONFIG_RCU_EXP_CPU_STALL_TIMEOUT
        srcu: Drop needless initialization of sdp in srcu_gp_start()
        srcu: Prevent expedited GPs and blocking readers from consuming CPU
        srcu: Add contention check to call_srcu() srcu_data ->lock acquisition
        srcu: Automatically determine size-transition strategy at boot
        rcutorture: Make torture.sh allow for --kasan
        rcutorture: Make torture.sh refscale and rcuscale specify Tasks Trace RCU
        rcutorture: Make kvm.sh allow more memory for --kasan runs
        torture: Save "make allmodconfig" .config file
        scftorture: Remove extraneous "scf" from per_version_boot_params
        rcutorture: Adjust scenarios' Kconfig options for CONFIG_PREEMPT_DYNAMIC
        torture: Enable CSD-lock stall reports for scftorture
        torture: Skip vmlinux check for kvm-again.sh runs
        scftorture: Adjust for TASKS_RCU Kconfig option being selected
        rcuscale: Allow rcuscale without RCU Tasks Rude/Trace
        rcuscale: Allow rcuscale without RCU Tasks
        refscale: Allow refscale without RCU Tasks Rude/Trace
        refscale: Allow refscale without RCU Tasks
        rcutorture: Allow specifying per-scenario stat_interval
        ...
      1e57930e
    • Linus Torvalds's avatar
      Merge tag 'lkmm.2022.05.20a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · b2f02e9c
      Linus Torvalds authored
      Pull LKMM update from Paul McKenney:
       "This updates the klitmus7 compatibility table to indicate that
        herdtools7 7.56.1 or better is required for Linux kernel v5.17 or
        later"
      
      * tag 'lkmm.2022.05.20a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu:
        tools/memory-model/README: Update klitmus7 compat table
      b2f02e9c
    • Linus Torvalds's avatar
      Merge tag 'nolibc.2022.05.20a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu · f814957b
      Linus Torvalds authored
      Pull nolibc library updates from Paul McKenney:
       "This adds a number of library functions and splits this library into
        multiple files"
      
      * tag 'nolibc.2022.05.20a' of git://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu: (61 commits)
        tools/nolibc/string: Implement `strdup()` and `strndup()`
        tools/nolibc/string: Implement `strnlen()`
        tools/nolibc/stdlib: Implement `malloc()`, `calloc()`, `realloc()` and `free()`
        tools/nolibc/types: Implement `offsetof()` and `container_of()` macro
        tools/nolibc/sys: Implement `mmap()` and `munmap()`
        tools/nolibc: i386: Implement syscall with 6 arguments
        tools/nolibc: Remove .global _start from the entry point code
        tools/nolibc: Replace `asm` with `__asm__`
        tools/nolibc: x86-64: Update System V ABI document link
        tools/nolibc/stdlib: only reference the external environ when inlined
        tools/nolibc/string: do not use __builtin_strlen() at -O0
        tools/nolibc: add the nolibc subdir to the common Makefile
        tools/nolibc: add a makefile to install headers
        tools/nolibc/types: add poll() and waitpid() flag definitions
        tools/nolibc/sys: add syscall definition for getppid()
        tools/nolibc/string: add strcmp() and strncmp()
        tools/nolibc/stdio: add support for '%p' to vfprintf()
        tools/nolibc/stdlib: add a simple getenv() implementation
        tools/nolibc/stdio: make printf(%s) accept NULL
        tools/nolibc/stdlib: implement abort()
        ...
      f814957b
    • Linus Torvalds's avatar
      Merge tag 'efi-next-for-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi · bf243102
      Linus Torvalds authored
      Pull EFI updates from Ard Biesheuvel:
      
       - Allow runtime services to be re-enabled at boot on RT kernels.
      
       - Provide access to secrets injected into the boot image by CoCo
         hypervisors (COnfidential COmputing)
      
       - Use DXE services on x86 to make the boot image executable after
         relocation, if needed.
      
       - Prefer mirrored memory for randomized allocations.
      
       - Only randomize the placement of the kernel image on arm64 if the
         loader has not already done so.
      
       - Add support for obtaining the boot hartid from EFI on RISC-V.
      
      * tag 'efi-next-for-v5.19' of git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi:
        riscv/efi_stub: Add support for RISCV_EFI_BOOT_PROTOCOL
        efi: stub: prefer mirrored memory for randomized allocations
        efi/arm64: libstub: run image in place if randomized by the loader
        efi: libstub: pass image handle to handle_kernel_image()
        efi: x86: Set the NX-compatibility flag in the PE header
        efi: libstub: ensure allocated memory to be executable
        efi: libstub: declare DXE services table
        efi: Add missing prototype for efi_capsule_setup_info
        docs: security: Add secrets/coco documentation
        efi: Register efi_secret platform device if EFI secret area is declared
        virt: Add efi_secret module to expose confidential computing secrets
        efi: Save location of EFI confidential computing area
        efi: Allow to enable EFI runtime services by default on RT
      bf243102
  2. 22 May, 2022 4 commits
    • Linus Torvalds's avatar
      Linux 5.18 · 4b0986a3
      Linus Torvalds authored
      4b0986a3
    • David Howells's avatar
      afs: Fix afs_getattr() to refetch file status if callback break occurred · 2aeb8c86
      David Howells authored
      If a callback break occurs (change notification), afs_getattr() needs to
      issue an FS.FetchStatus RPC operation to update the status of the file
      being examined by the stat-family of system calls.
      
      Fix afs_getattr() to do this if AFS_VNODE_CB_PROMISED has been cleared
      on a vnode by a callback break.  Skip this if AT_STATX_DONT_SYNC is set.
      
      This can be tested by appending to a file on one AFS client and then
      using "stat -L" to examine its length on a machine running kafs.  This
      can also be watched through tracing on the kafs machine.  The callback
      break is seen:
      
           kworker/1:1-46      [001] .....   978.910812: afs_cb_call: c=0000005f YFSCB.CallBack
           kworker/1:1-46      [001] ...1.   978.910829: afs_cb_break: 100058:23b4c:242d2c2 b=2 s=1 break-cb
           kworker/1:1-46      [001] .....   978.911062: afs_call_done:    c=0000005f ret=0 ab=0 [0000000082994ead]
      
      And then the stat command generated no traffic if unpatched, but with
      this change a call to fetch the status can be observed:
      
                  stat-4471    [000] .....   986.744122: afs_make_fs_call: c=000000ab 100058:023b4c:242d2c2 YFS.FetchStatus
                  stat-4471    [000] .....   986.745578: afs_call_done:    c=000000ab ret=0 ab=0 [0000000087fc8c84]
      
      Fixes: 08e0e7c8 ("[AF_RXRPC]: Make the in-kernel AFS filesystem use AF_RXRPC.")
      Reported-by: default avatarMarkus Suvanto <markus.suvanto@gmail.com>
      Signed-off-by: default avatarDavid Howells <dhowells@redhat.com>
      cc: Marc Dionne <marc.dionne@auristor.com>
      cc: linux-afs@lists.infradead.org
      Tested-by: default avatarMarkus Suvanto <markus.suvanto@gmail.com>
      Tested-by: kafs-testing+fedora34_64checkkafs-build-496@auristor.com
      Link: https://bugzilla.kernel.org/show_bug.cgi?id=216010
      Link: https://lore.kernel.org/r/165308359800.162686.14122417881564420962.stgit@warthog.procyon.org.uk/ # v1
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      2aeb8c86
    • Linus Torvalds's avatar
      Merge branch 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux · 978df3e1
      Linus Torvalds authored
      Pull i2c fixes from Wolfram Sang:
       "Some I2C driver bugfixes for 5.18. Nothing spectacular but worth
        fixing"
      
      * 'i2c/for-current' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux:
        drivers: i2c: thunderx: Allow driver to work with ACPI defined TWSI controllers
        i2c: ismt: Provide a DMA buffer for Interrupt Cause Logging
        i2c: mt7621: fix missing clk_disable_unprepare() on error in mtk_i2c_probe()
      978df3e1
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-fixes-for-v5.18-2022-05-21' of... · eaea45fc
      Linus Torvalds authored
      Merge tag 'perf-tools-fixes-for-v5.18-2022-05-21' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux
      
      Pull perf tools fixes from Arnaldo Carvalho de Melo:
      
       - Fix and validate CPU map inputs in synthetic PERF_RECORD_STAT events
         in 'perf stat'.
      
       - Fix x86's arch__intr_reg_mask() for the hybrid platform.
      
       - Address 'perf bench numa' compiler error on s390.
      
       - Fix check for btf__load_from_kernel_by_id() in libbpf.
      
       - Fix "all PMU test" 'perf test' to skip hv_24x7/hv_gpci tests on
         powerpc.
      
       - Fix session topology test to skip the test in guest environment.
      
       - Skip BPF 'perf test' if clang is not present.
      
       - Avoid shell test description infinite loop in 'perf test'.
      
       - Fix Intel LBR callstack entries and nr print message.
      
      * tag 'perf-tools-fixes-for-v5.18-2022-05-21' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux:
        perf session: Fix Intel LBR callstack entries and nr print message
        perf test bpf: Skip test if clang is not present
        perf test session topology: Fix test to skip the test in guest environment
        perf bench numa: Address compiler error on s390
        perf test: Avoid shell test description infinite loop
        perf regs x86: Fix arch__intr_reg_mask() for the hybrid platform
        perf test: Fix "all PMU test" to skip hv_24x7/hv_gpci tests on powerpc
        perf stat: Fix and validate CPU map inputs in synthetic PERF_RECORD_STAT events
        perf build: Fix check for btf__load_from_kernel_by_id() in libbpf
      eaea45fc
  3. 21 May, 2022 17 commits
    • Linus Torvalds's avatar
      Merge tag 'input-for-v5.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input · 4c493b1a
      Linus Torvalds authored
      Pull input fixes from Dmitry Torokhov:
       "A small fixup to ili210x touchscreen driver, and updated maintainer
        entry for the device tree binding of Mediatek 6779 keypad:
      
         - fix reset timing of Ilitek touchscreens
      
         - update maintainer entry of DT binding of Mediatek 6779 keypad"
      
      * tag 'input-for-v5.18-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input:
        Input: ili210x - use one common reset implementation
        Input: ili210x - fix reset timing
        dt-bindings: input: mediatek,mt6779-keypad: update maintainer
      4c493b1a
    • Linus Torvalds's avatar
      Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 36ed2da7
      Linus Torvalds authored
      Pull SCSI fixes from James Bottomley:
       "Two patches, both in drivers.
      
        The iscsi one is fixing the cpumask issue you commented on and the ufs
        one is a late arriving fix for conditions that can occur in Host
        Performance Booster reads"
      
      * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
        scsi: ufs: core: Fix referencing invalid rsp field
        scsi: target: Fix incorrect use of cpumask_t
      36ed2da7
    • Chengdong Li's avatar
      perf session: Fix Intel LBR callstack entries and nr print message · 51d0bf99
      Chengdong Li authored
      When generating callstack information from branch_stack(Intel LBR), the
      actual number of callstack entry should be bigger than the number of
      branch_stack, for example:
      
      	branch_stack records:
      		B() -> C()
      		A() -> B()
      	converted callstack records should be:
      		C()
      		B()
      		A()
      though, the number of callstack equals
      to the number of branch stack plus 1.
      
      This patch fixes above issue in branch_stack__printf(). For example,
      
      	# echo 'scale=2000; 4*a(1)' > cmd
      	# perf record --call-graph lbr bc -l < cmd
      
      Before applying this patch, `perf script -D` output:
      
      	1220022677386876 0x2a40 [0xd8]: PERF_RECORD_SAMPLE(IP, 0x4002): 17990/17990: 0x40a6d6 period: 894172 addr: 0
      	... LBR call chain: nr:8
      	.....  0: fffffffffffffe00
      	.....  1: 000000000040a410
      	.....  2: 000000000040573c
      	.....  3: 0000000000408650
      	.....  4: 00000000004022f2
      	.....  5: 00000000004015f5
      	.....  6: 00007f5ed6dcb553
      	.....  7: 0000000000401698
      	... FP chain: nr:2
      	.....  0: fffffffffffffe00
      	.....  1: 000000000040a6d8
      	... branch callstack: nr:6    # which is not consistent with LBR records.
      	.....  0: 000000000040a410
      	.....  1: 0000000000408650    # ditto
      	.....  2: 00000000004022f2
      	.....  3: 00000000004015f5
      	.....  4: 00007f5ed6dcb553
      	.....  5: 0000000000401698
      	 ... thread: bc:17990
      	 ...... dso: /usr/bin/bc
      	bc 17990 1220022.677386:     894172 cycles:
      			  40a410 [unknown] (/usr/bin/bc)
      			  40573c [unknown] (/usr/bin/bc)
      			  408650 [unknown] (/usr/bin/bc)
      			  4022f2 [unknown] (/usr/bin/bc)
      			  4015f5 [unknown] (/usr/bin/bc)
      		    7f5ed6dcb553 __libc_start_main+0xf3 (/usr/lib64/libc-2.17.so)
      			  401698 [unknown] (/usr/bin/bc)
      
      After applied:
      
      	1220022677386876 0x2a40 [0xd8]: PERF_RECORD_SAMPLE(IP, 0x4002): 17990/17990: 0x40a6d6 period: 894172 addr: 0
      	... LBR call chain: nr:8
      	.....  0: fffffffffffffe00
      	.....  1: 000000000040a410
      	.....  2: 000000000040573c
      	.....  3: 0000000000408650
      	.....  4: 00000000004022f2
      	.....  5: 00000000004015f5
      	.....  6: 00007f5ed6dcb553
      	.....  7: 0000000000401698
      	... FP chain: nr:2
      	.....  0: fffffffffffffe00
      	.....  1: 000000000040a6d8
      	... branch callstack: nr:7
      	.....  0: 000000000040a410
      	.....  1: 000000000040573c
      	.....  2: 0000000000408650
      	.....  3: 00000000004022f2
      	.....  4: 00000000004015f5
      	.....  5: 00007f5ed6dcb553
      	.....  6: 0000000000401698
      	 ... thread: bc:17990
      	 ...... dso: /usr/bin/bc
      	bc 17990 1220022.677386:     894172 cycles:
      			  40a410 [unknown] (/usr/bin/bc)
      			  40573c [unknown] (/usr/bin/bc)
      			  408650 [unknown] (/usr/bin/bc)
      			  4022f2 [unknown] (/usr/bin/bc)
      			  4015f5 [unknown] (/usr/bin/bc)
      		    7f5ed6dcb553 __libc_start_main+0xf3 (/usr/lib64/libc-2.17.so)
      			  401698 [unknown] (/usr/bin/bc)
      
      Change from v1:
      	- refined code style according to Jiri's review comments.
      Signed-off-by: default avatarChengdong Li <chengdongli@tencent.com>
      Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Alexey Bayduraev <alexey.v.bayduraev@linux.intel.com>
      Cc: Andi Kleen <ak@linux.intel.com>
      Cc: German Gomez <german.gomez@arm.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Riccardo Mancini <rickyman7@gmail.com>
      Cc: likexu@tencent.com
      Link: https://lore.kernel.org/r/20220517015726.96131-1-chengdongli@tencent.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      51d0bf99
    • Athira Rajeev's avatar
      perf test bpf: Skip test if clang is not present · 8994e97b
      Athira Rajeev authored
      Perf BPF filter test fails in environment where "clang" is not
      installed.
      
      Test failure logs:
      
      <<>>
       42: BPF filter                    :
       42.1: Basic BPF filtering         : Skip
       42.2: BPF pinning                 : FAILED!
       42.3: BPF prologue generation     : FAILED!
      <<>>
      
      Enabling verbose option provided debug logs which says clang/llvm needs
      to be installed. Snippet of verbose logs:
      
      <<>>
       42.2: BPF pinning                  :
       --- start ---
      test child forked, pid 61423
      ERROR:	unable to find clang.
      Hint:	Try to install latest clang/llvm to support BPF.
              Check your $PATH
      
      <<logs_here>>
      
      Failed to compile test case: 'Basic BPF llvm compile'
      Unable to get BPF object, fix kbuild first
      test child finished with -1
       ---- end ----
      BPF filter subtest 2: FAILED!
      <<>>
      
      Here subtests, "BPF pinning" and "BPF prologue generation" failed and
      logs shows clang/llvm is needed. After installing clang, testcase
      passes.
      
      Reason on why subtest failure happens though logs has proper debug
      information:
      
      Main function __test__bpf calls test_llvm__fetch_bpf_obj by
      passing 4th argument as true ( 4th arguments maps to parameter
      "force" in test_llvm__fetch_bpf_obj ). But this will cause
      test_llvm__fetch_bpf_obj to skip the check for clang/llvm.
      
      Snippet of code part which checks for clang based on
      parameter "force" in test_llvm__fetch_bpf_obj:
      
      <<>>
      if (!force && (!llvm_param.user_set_param &&
      <<>>
      
      Since force is set to "false", test won't get skipped and fails to
      compile test case. The BPF code compilation needs clang, So pass the
      fourth argument as "false" and also skip the test if reason for return
      is "TEST_SKIP"
      
      After the patch:
      
      <<>>
       42: BPF filter                    :
       42.1: Basic BPF filtering         : Skip
       42.2: BPF pinning                 : Skip
       42.3: BPF prologue generation     : Skip
      <<>>
      
      Fixes: ba1fae43 ("perf test: Add 'perf test BPF'")
      Reviewed-by: default avatarKajol Jain <kjain@linux.ibm.com>
      Signed-off-by: default avatarAthira Jajeev <atrajeev@linux.vnet.ibm.com>
      Acked-by: default avatarIan Rogers <irogers@google.com>
      Cc: Disha Goel <disgoel@linux.vnet.ibm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: linuxppc-dev@lists.ozlabs.org
      Cc: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Nageswara R Sastry <rnsastry@linux.ibm.com>
      Cc: Wang Nan <wangnan0@huawei.com>
      Link: https://lore.kernel.org/r/20220511115438.84032-1-atrajeev@linux.vnet.ibm.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      8994e97b
    • Athira Rajeev's avatar
      perf test session topology: Fix test to skip the test in guest environment · cfd7092c
      Athira Rajeev authored
      The session topology test fails in powerpc pSeries platform.
      
      Test logs:
      
        <<>>
        Session topology : FAILED!
        <<>>
      
      This testcases tests cpu topology by checking the core_id and socket_id
      stored in perf_env from perf session. The data from perf session is
      compared with the cpu topology information from
      "/sys/devices/system/cpu/cpuX/topology" like core_id,
      physical_package_id.
      
      In case of virtual environment, detail like physical_package_id is
      restricted to be exposed. Hence physical_package_id is set to -1. The
      testcase fails on such platforms since socket_id can't be fetched from
      topology info.
      
      Skip the testcase in powerpc if physical_package_id returns -1.
      Reviewed-by: default avatarKajol Jain <kjain@linux.ibm.com>
      Signed-off-by: Athira Rajeev <atrajeev@linux.vnet.ibm.com>---
      Tested-by: default avatarDisha Goel <disgoel@linux.vnet.ibm.com>
      Acked-by: default avatarIan Rogers <irogers@google.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Nageswara R Sastry <rnsastry@linux.ibm.com>
      Cc: linuxppc-dev@lists.ozlabs.org
      Link: https://lore.kernel.org/r/20220511114959.84002-1-atrajeev@linux.vnet.ibm.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      cfd7092c
    • Thomas Richter's avatar
      perf bench numa: Address compiler error on s390 · f8ac1c47
      Thomas Richter authored
      The compilation on s390 results in this error:
      
        # make DEBUG=y bench/numa.o
        ...
        bench/numa.c: In function ‘__bench_numa’:
        bench/numa.c:1749:81: error: ‘%d’ directive output may be truncated
                    writing between 1 and 11 bytes into a region of size between
                    10 and 20 [-Werror=format-truncation=]
        1749 |        snprintf(tname, sizeof(tname), "process%d:thread%d", p, t);
                                                                     ^~
        ...
        bench/numa.c:1749:64: note: directive argument in the range
                       [-2147483647, 2147483646]
        ...
        #
      
      The maximum length of the %d replacement is 11 characters because of the
      negative sign.  Therefore extend the array by two more characters.
      
      Output after:
      
        # make  DEBUG=y bench/numa.o > /dev/null 2>&1; ll bench/numa.o
        -rw-r--r-- 1 root root 418320 May 19 09:11 bench/numa.o
        #
      
      Fixes: 3aff8ba0 ("perf bench numa: Avoid possible truncation when using snprintf()")
      Suggested-by: default avatarNamhyung Kim <namhyung@gmail.com>
      Signed-off-by: default avatarThomas Richter <tmricht@linux.ibm.com>
      Cc: Heiko Carstens <hca@linux.ibm.com>
      Cc: Sumanth Korikkar <sumanthk@linux.ibm.com>
      Cc: Sven Schnelle <svens@linux.ibm.com>
      Cc: Vasily Gorbik <gor@linux.ibm.com>
      Link: https://lore.kernel.org/r/20220520081158.2990006-1-tmricht@linux.ibm.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      f8ac1c47
    • Ian Rogers's avatar
      perf test: Avoid shell test description infinite loop · caaaa554
      Ian Rogers authored
      for_each_shell_test() is already strict in expecting tests to be files
      and executable. It is sometimes possible when it iterates over all files
      that it finds one that is executable and lacks a newline character. When
      this happens the loop never terminates as it doesn't check for EOF.
      
      Add the EOF check to make this loop at least bounded by the file size.
      
      If the description is returned as NULL then also skip the test.
      Signed-off-by: default avatarIan Rogers <irogers@google.com>
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Marco Elver <elver@google.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Riccardo Mancini <rickyman7@gmail.com>
      Cc: Sohaib Mohamed <sohaib.amhmd@gmail.com>
      Cc: Stephane Eranian <eranian@google.com>
      Link: https://lore.kernel.org/r/20220517204144.645913-1-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      caaaa554
    • Kan Liang's avatar
      perf regs x86: Fix arch__intr_reg_mask() for the hybrid platform · 01b28e4a
      Kan Liang authored
      The X86 specific arch__intr_reg_mask() is to check whether the kernel
      and hardware can collect XMM registers. But it doesn't work on some
      hybrid platform.
      
      Without the patch on ADL-N:
      
        $ perf record -I?
        available registers: AX BX CX DX SI DI BP SP IP FLAGS CS SS R8 R9 R10
        R11 R12 R13 R14 R15
      
      The config of the test event doesn't contain the PMU information. The
      kernel may fail to initialize it on the correct hybrid PMU and return
      the wrong non-supported information.
      
      Add the PMU information into the config for the hybrid platform. The
      same register set is supported among different hybrid PMUs. Checking
      the first available one is good enough.
      
      With the patch on ADL-N:
      
        $ perf record -I?
        available registers: AX BX CX DX SI DI BP SP IP FLAGS CS SS R8 R9 R10
        R11 R12 R13 R14 R15 XMM0 XMM1 XMM2 XMM3 XMM4 XMM5 XMM6 XMM7 XMM8 XMM9
        XMM10 XMM11 XMM12 XMM13 XMM14 XMM15
      
      Fixes: 6466ec14 ("perf regs x86: Add X86 specific arch__intr_reg_mask()")
      Reported-by: default avatarAmmy Yi <ammy.yi@intel.com>
      Signed-off-by: default avatarKan Liang <kan.liang@linux.intel.com>
      Acked-by: default avatarIan Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kan Liang <kan.liang@linux.intel.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
      Link: https://lore.kernel.org/r/20220518145125.1494156-1-kan.liang@linux.intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      01b28e4a
    • Athira Rajeev's avatar
      perf test: Fix "all PMU test" to skip hv_24x7/hv_gpci tests on powerpc · 451ed805
      Athira Rajeev authored
      "perf all PMU test" picks the input events from "perf list --raw-dump
      pmu" list and runs "perf stat -e" for each of the event in the list. In
      case of powerpc, the PowerVM environment supports events from hv_24x7
      and hv_gpci PMU which is of example format like below:
      
      - hv_24x7/CPM_ADJUNCT_INST,domain=?,core=?/
      - hv_gpci/event,partition_id=?/
      
      The value for "?" needs to be filled in depending on system and
      respective event. CPM_ADJUNCT_INST needs have core value and domain
      value. hv_gpci event needs partition_id.  Similarly, there are other
      events for hv_24x7 and hv_gpci having "?" in event format. Hence skip
      these events on powerpc platform since values like partition_id, domain
      is specific to system and event.
      
      Fixes: 3d5ac9ef ("perf test: Workload test of all PMUs")
      Signed-off-by: default avatarAthira Jajeev <atrajeev@linux.vnet.ibm.com>
      Acked-by: default avatarIan Rogers <irogers@google.com>
      Cc: Disha Goel <disgoel@linux.vnet.ibm.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Kajol Jain <kjain@linux.ibm.com>
      Cc: linuxppc-dev@lists.ozlabs.org
      Cc: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: Nageswara R Sastry <rnsastry@linux.ibm.com>
      Link: https://lore.kernel.org/r/20220520101236.17249-1-atrajeev@linux.vnet.ibm.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      451ed805
    • Jens Axboe's avatar
      io_uring: cleanup handling of the two task_work lists · 3fe07bcd
      Jens Axboe authored
      Rather than pass in a bool for whether or not this work item needs to go
      into the priority list or not, provide separate helpers for it. For most
      use cases, this also then gets rid of the branch for non-priority task
      work.
      
      While at it, rename the prior_task_list to prio_task_list. Prior is
      a confusing name for it, as it would seem to indicate that this is the
      previous task_work list. prio makes it clear that this is a priority
      task_work list.
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      3fe07bcd
    • Julia Lawall's avatar
      blk-mq: fix typo in comment · 2aaf5160
      Julia Lawall authored
      Spelling mistake (triple letters) in comment.
      Detected with the help of Coccinelle.
      Signed-off-by: default avatarJulia Lawall <Julia.Lawall@inria.fr>
      Link: https://lore.kernel.org/r/20220521111145.81697-29-Julia.Lawall@inria.frSigned-off-by: default avatarJens Axboe <axboe@kernel.dk>
      2aaf5160
    • Piyush Malgujar's avatar
      drivers: i2c: thunderx: Allow driver to work with ACPI defined TWSI controllers · 03a35bc8
      Piyush Malgujar authored
      Due to i2c->adap.dev.fwnode not being set, ACPI_COMPANION() wasn't properly
      found for TWSI controllers.
      Signed-off-by: default avatarSzymon Balcerak <sbalcerak@marvell.com>
      Signed-off-by: default avatarPiyush Malgujar <pmalgujar@marvell.com>
      Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
      03a35bc8
    • Mika Westerberg's avatar
      i2c: ismt: Provide a DMA buffer for Interrupt Cause Logging · 17a0f3ac
      Mika Westerberg authored
      Before sending a MSI the hardware writes information pertinent to the
      interrupt cause to a memory location pointed by SMTICL register. This
      memory holds three double words where the least significant bit tells
      whether the interrupt cause of master/target/error is valid. The driver
      does not use this but we need to set it up because otherwise it will
      perform DMA write to the default address (0) and this will cause an
      IOMMU fault such as below:
      
        DMAR: DRHD: handling fault status reg 2
        DMAR: [DMA Write] Request device [00:12.0] PASID ffffffff fault addr 0
              [fault reason 05] PTE Write access is not set
      
      To prevent this from happening, provide a proper DMA buffer for this
      that then gets mapped by the IOMMU accordingly.
      Signed-off-by: default avatarMika Westerberg <mika.westerberg@linux.intel.com>
      Reviewed-by: default avatarFrom: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
      Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
      17a0f3ac
    • Yang Yingliang's avatar
      i2c: mt7621: fix missing clk_disable_unprepare() on error in mtk_i2c_probe() · a2537c98
      Yang Yingliang authored
      Fix the missing clk_disable_unprepare() before return
      from mtk_i2c_probe() in the error handling case.
      
      Fixes: d04913ec ("i2c: mt7621: Add MediaTek MT7621/7628/7688 I2C driver")
      Signed-off-by: default avatarYang Yingliang <yangyingliang@huawei.com>
      Reviewed-by: default avatarStefan Roese <sr@denx.de>
      Signed-off-by: default avatarWolfram Sang <wsa@kernel.org>
      a2537c98
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 6c3f5bec
      Linus Torvalds authored
      Pull kvm fixes from Paolo Bonzini:
       "ARM:
      
         - Correctly expose GICv3 support even if no irqchip is created so
           that userspace doesn't observe it changing pointlessly (fixing a
           regression with QEMU)
      
         - Don't issue a hypercall to set the id-mapped vectors when protected
           mode is enabled (fix for pKVM in combination with CPUs affected by
           Spectre-v3a)
      
        x86 (five oneliners, of which the most interesting two are):
      
         - a NULL pointer dereference on INVPCID executed with paging
           disabled, but only if KVM is using shadow paging
      
         - an incorrect bsearch comparison function which could truncate the
           result and apply PMU event filtering incorrectly. This one comes
           with a selftests update too"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm:
        KVM: x86/mmu: fix NULL pointer dereference on guest INVPCID
        KVM: x86: hyper-v: fix type of valid_bank_mask
        KVM: Free new dirty bitmap if creating a new memslot fails
        KVM: eventfd: Fix false positive RCU usage warning
        selftests: kvm/x86: Verify the pmu event filter matches the correct event
        selftests: kvm/x86: Add the helper function create_pmu_event_filter
        kvm: x86/pmu: Fix the compare function used by the pmu event filter
        KVM: arm64: Don't hypercall before EL2 init
        KVM: arm64: vgic-v3: Consistently populate ID_AA64PFR0_EL1.GIC
        KVM: x86/mmu: Update number of zapped pages even if page list is stable
      6c3f5bec
    • Linus Torvalds's avatar
      Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux · b3454ce0
      Linus Torvalds authored
      Pull clk fixes from Stephen Boyd:
       "Three clk driver fixes to close out the release
      
         - Fix a divider calculation breaking boot on Broadcom bcm2835
      
         - Fix HDMI output on Tanix TX6 mini board by reverting a patch
      
         - Fix clk_set_rate_range() calls on at91 by considering the range
           while calculating the divisor"
      
      * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux:
        clk: at91: generated: consider range when calculating best rate
        Revert "clk: sunxi-ng: sun6i-rtc: Add support for H6"
        clk: bcm2835: fix bcm2835_clock_choose_div
      b3454ce0
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2022-05-21' of git://anongit.freedesktop.org/drm/drm · 93413c84
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Few final fixes for 5.18, one amdgpu, core dp mst leak fix, dma-buf
        two fixes, and i915 has a few fixes, one for a regression on older
        GM45 chipsets,
      
        dma-buf:
         - ioctl userspace use fix
         - fix dma-buf sysfs name generation
      
        core:
         - dp/mst leak fix
      
        amdgpu:
         - suspend/resume regression fix
      
        i915:
         - fix for #5806: GPU hangs and display artifacts on Intel GM45
         - reject DMC with out-of-spec MMIO
         - correctly mark guilty contexts on GuC reset"
      
      * tag 'drm-fixes-2022-05-21' of git://anongit.freedesktop.org/drm/drm:
        drm/i915: Use i915_gem_object_ggtt_pin_ww for reloc_iomap
        drm/amd: Don't reset dGPUs if the system is going to s2idle
        drm/dp/mst: fix a possible memory leak in fetch_monitor_name()
        dma-buf: fix use of DMA_BUF_SET_NAME_{A,B} in userspace
        i915/guc/reset: Make __guc_reset_context aware of guilty engines
        drm/i915/dmc: Add MMIO range restrictions
        dma-buf: ensure unique directory name for dmabuf stats
      93413c84
  4. 20 May, 2022 7 commits