Skip to content
Permalink
Jan-Kara/fs-Ho…
Switch branches/tags

Commits on May 12, 2021

  1. cifs: Fix race between hole punch and page fault

    Cifs has a following race between hole punching and page fault:
    
    CPU1                                            CPU2
    smb3_fallocate()
      smb3_punch_hole()
        truncate_pagecache_range()
                                                    filemap_fault()
                                                      - loads old data into the
                                                        page cache
        SMB2_ioctl(..., FSCTL_SET_ZERO_DATA, ...)
    
    And now we have stale data in the page cache. Fix the problem by locking
    out faults (as well as reads) using mapping->invalidate_lock while hole
    punch is running.
    
    CC: Steve French <sfrench@samba.org>
    CC: linux-cifs@vger.kernel.org
    Signed-off-by: Jan Kara <jack@suse.cz>
    jankara authored and intel-lab-lkp committed May 12, 2021
  2. ceph: Fix race between hole punch and page fault

    Ceph has a following race between hole punching and page fault:
    
    CPU1                                  CPU2
    ceph_fallocate()
      ...
      ceph_zero_pagecache_range()
                                          ceph_filemap_fault()
                                            faults in page in the range being
                                            punched
      ceph_zero_objects()
    
    And now we have a page in punched range with invalid data. Fix the
    problem by using mapping->invalidate_lock similarly to other
    filesystems. Note that using invalidate_lock also fixes a similar race
    wrt ->readpage().
    
    CC: Jeff Layton <jlayton@kernel.org>
    CC: ceph-devel@vger.kernel.org
    Signed-off-by: Jan Kara <jack@suse.cz>
    jankara authored and intel-lab-lkp committed May 12, 2021
  3. fuse: Convert to using invalidate_lock

    Use invalidate_lock instead of fuse's private i_mmap_sem. The intended
    purpose is exactly the same. By this conversion we fix a long standing
    race between hole punching and read(2) / readahead(2) paths that can
    lead to stale page cache contents.
    
    CC: Miklos Szeredi <miklos@szeredi.hu>
    Signed-off-by: Jan Kara <jack@suse.cz>
    jankara authored and intel-lab-lkp committed May 12, 2021
  4. f2fs: Convert to using invalidate_lock

    Use invalidate_lock instead of f2fs' private i_mmap_sem. The intended
    purpose is exactly the same. By this conversion we fix a long standing
    race between hole punching and read(2) / readahead(2) paths that can
    lead to stale page cache contents.
    
    CC: Jaegeuk Kim <jaegeuk@kernel.org>
    CC: Chao Yu <yuchao0@huawei.com>
    CC: linux-f2fs-devel@lists.sourceforge.net
    Signed-off-by: Jan Kara <jack@suse.cz>
    jankara authored and intel-lab-lkp committed May 12, 2021
  5. zonefs: Convert to using invalidate_lock

    Use invalidate_lock instead of zonefs' private i_mmap_sem. The intended
    purpose is exactly the same.
    
    CC: Damien Le Moal <damien.lemoal@wdc.com>
    CC: Johannes Thumshirn <jth@kernel.org>
    CC: <linux-fsdevel@vger.kernel.org>
    Signed-off-by: Jan Kara <jack@suse.cz>
    jankara authored and intel-lab-lkp committed May 12, 2021
  6. xfs: Convert to use invalidate_lock

    Use invalidate_lock instead of XFS internal i_mmap_lock. The intended
    purpose of invalidate_lock is exactly the same. Note that the locking in
    __xfs_filemap_fault() slightly changes as filemap_fault() already takes
    invalidate_lock.
    
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    CC: <linux-xfs@vger.kernel.org>
    CC: "Darrick J. Wong" <darrick.wong@oracle.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    jankara authored and intel-lab-lkp committed May 12, 2021
  7. ext2: Convert to using invalidate_lock

    Ext2 has its private dax_sem used for synchronizing page faults and
    truncation. Use mapping->invalidate_lock instead as it is meant for this
    purpose.
    
    CC: <linux-ext4@vger.kernel.org>
    Signed-off-by: Jan Kara <jack@suse.cz>
    jankara authored and intel-lab-lkp committed May 12, 2021
  8. ext4: Convert to use mapping->invalidate_lock

    Convert ext4 to use mapping->invalidate_lock instead of its private
    EXT4_I(inode)->i_mmap_sem. This is mostly search-and-replace. By this
    conversion we fix a long standing race between hole punching and read(2)
    / readahead(2) paths that can lead to stale page cache contents.
    
    CC: <linux-ext4@vger.kernel.org>
    CC: Ted Tso <tytso@mit.edu>
    Signed-off-by: Jan Kara <jack@suse.cz>
    jankara authored and intel-lab-lkp committed May 12, 2021
  9. mm: Protect operations adding pages to page cache with invalidate_lock

    Currently, serializing operations such as page fault, read, or readahead
    against hole punching is rather difficult. The basic race scheme is
    like:
    
    fallocate(FALLOC_FL_PUNCH_HOLE)			read / fault / ..
      truncate_inode_pages_range()
    						  <create pages in page
    						   cache here>
      <update fs block mapping and free blocks>
    
    Now the problem is in this way read / page fault / readahead can
    instantiate pages in page cache with potentially stale data (if blocks
    get quickly reused). Avoiding this race is not simple - page locks do
    not work because we want to make sure there are *no* pages in given
    range. inode->i_rwsem does not work because page fault happens under
    mmap_sem which ranks below inode->i_rwsem. Also using it for reads makes
    the performance for mixed read-write workloads suffer.
    
    So create a new rw_semaphore in the address_space - invalidate_lock -
    that protects adding of pages to page cache for page faults / reads /
    readahead.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    jankara authored and intel-lab-lkp committed May 12, 2021
  10. documentation: Sync file_operations members with reality

    Sync listing of struct file_operations members with the real one in
    fs.h.
    
    Signed-off-by: Jan Kara <jack@suse.cz>
    jankara authored and intel-lab-lkp committed May 12, 2021
  11. mm: Fix comments mentioning i_mutex

    inode->i_mutex has been replaced with inode->i_rwsem long ago. Fix
    comments still mentioning i_mutex.
    
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Acked-by: Hugh Dickins <hughd@google.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    jankara authored and intel-lab-lkp committed May 12, 2021

Commits on May 11, 2021

  1. Merge tag 'for-5.13-rc1-part2-tag' of git://git.kernel.org/pub/scm/li…

    …nux/kernel/git/kdave/linux
    
    Pull btrfs fix from David Sterba:
     "Handle transaction start error in btrfs_fileattr_set()
    
      This is fix for code introduced by the new fileattr merge"
    
    * tag 'for-5.13-rc1-part2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
      btrfs: handle transaction start error in btrfs_fileattr_set
    torvalds committed May 11, 2021
  2. btrfs: handle transaction start error in btrfs_fileattr_set

    Add error handling in btrfs_fileattr_set in case of an error while
    starting a transaction. This fixes btrfs/232 which otherwise used to
    fail with below signature on Power.
    
      btrfs/232 [ 1119.474650] run fstests btrfs/232 at 2021-04-21 02:21:22
      <...>
      [ 1366.638585] BUG: Unable to handle kernel data access on read at 0xffffffffffffff86
      [ 1366.638768] Faulting instruction address: 0xc0000000009a5c88
      cpu 0x0: Vector: 380 (Data SLB Access) at [c000000014f177b0]
          pc: c0000000009a5c88: btrfs_update_root_times+0x58/0xc0
          lr: c0000000009a5c84: btrfs_update_root_times+0x54/0xc0
          <...>
          pid   = 24881, comm = fsstress
    	   btrfs_update_inode+0xa0/0x140
    	   btrfs_fileattr_set+0x5d0/0x6f0
    	   vfs_fileattr_set+0x2a8/0x390
    	   do_vfs_ioctl+0x1290/0x1ac0
    	   sys_ioctl+0x6c/0x120
    	   system_call_exception+0x3d4/0x410
    	   system_call_common+0xec/0x278
    
    Fixes: 97fc297 ("btrfs: convert to fileattr")
    Signed-off-by: Ritesh Harjani <riteshh@linux.ibm.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    riteshharjani authored and kdave committed May 11, 2021

Commits on May 10, 2021

  1. Merge tag 'perf-tools-fixes-for-v5.13-2021-05-10' of git://git.kernel…

    ….org/pub/scm/linux/kernel/git/acme/linux
    
    Pull perf tools fixes from Arnaldo Carvalho de Melo:
    
     - Fix swapping of cpu_map and stat_config records.
    
     - Fix dynamic libbpf linking.
    
     - Disallow -c and -F option at the same time in 'perf record'.
    
     - Update headers with the kernel originals.
    
     - Silence warning for JSON ArchStd files.
    
     - Fix a build error on arm64 with clang.
    
    * tag 'perf-tools-fixes-for-v5.13-2021-05-10' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux:
      tools headers UAPI: Sync perf_event.h with the kernel sources
      tools headers cpufeatures: Sync with the kernel sources
      tools include UAPI powerpc: Sync errno.h with the kernel headers
      tools arch: Update arch/x86/lib/mem{cpy,set}_64.S copies used in 'perf bench mem memcpy'
      tools headers UAPI: Sync linux/prctl.h with the kernel sources
      tools headers UAPI: Sync files changed by landlock, quotactl_path and mount_settattr new syscalls
      perf tools: Fix a build error on arm64 with clang
      tools headers kvm: Sync kvm headers with the kernel sources
      tools headers UAPI: Sync linux/kvm.h with the kernel sources
      perf tools: Fix dynamic libbpf link
      perf session: Fix swapping of cpu_map and stat_config records
      perf jevents: Silence warning for ArchStd files
      perf record: Disallow -c and -F option at the same time
      tools arch x86: Sync the msr-index.h copy with the kernel sources
      tools headers UAPI: Sync drm/i915_drm.h with the kernel sources
      tools headers UAPI: Update tools's copy of drm.h headers
    torvalds committed May 10, 2021
  2. Merge tag 'for-5.13-rc1-tag' of git://git.kernel.org/pub/scm/linux/ke…

    …rnel/git/kdave/linux
    
    Pull btrfs fixes from David Sterba:
     "First batch of various fixes, here's a list of notable ones:
    
       - fix unmountable seed device after fstrim
    
       - fix silent data loss in zoned mode due to ordered extent splitting
    
       - fix race leading to unpersisted data and metadata on fsync
    
       - fix deadlock when cloning inline extents and using qgroups"
    
    * tag 'for-5.13-rc1-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
      btrfs: initialize return variable in cleanup_free_space_cache_v1
      btrfs: zoned: sanity check zone type
      btrfs: fix unmountable seed device after fstrim
      btrfs: fix deadlock when cloning inline extents and using qgroups
      btrfs: fix race leading to unpersisted data and metadata on fsync
      btrfs: do not consider send context as valid when trying to flush qgroups
      btrfs: zoned: fix silent data loss after failure splitting ordered extent
    torvalds committed May 10, 2021
  3. Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm

    Pull kvm fixes from Paolo Bonzini:
    
     - Lots of bug fixes.
    
     - Fix virtualization of RDPID
    
     - Virtualization of DR6_BUS_LOCK, which on bare metal is new to this
       release
    
     - More nested virtualization migration fixes (nSVM and eVMCS)
    
     - Fix for KVM guest hibernation
    
     - Fix for warning in SEV-ES SRCU usage
    
     - Block KVM from loading on AMD machines with 5-level page tables, due
       to the APM not mentioning how host CR4.LA57 exactly impacts the
       guest.
    
    * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (48 commits)
      KVM: SVM: Move GHCB unmapping to fix RCU warning
      KVM: SVM: Invert user pointer casting in SEV {en,de}crypt helpers
      kvm: Cap halt polling at kvm->max_halt_poll_ns
      tools/kvm_stat: Fix documentation typo
      KVM: x86: Prevent deadlock against tk_core.seq
      KVM: x86: Cancel pvclock_gtod_work on module removal
      KVM: x86: Prevent KVM SVM from loading on kernels with 5-level paging
      KVM: X86: Expose bus lock debug exception to guest
      KVM: X86: Add support for the emulation of DR6_BUS_LOCK bit
      KVM: PPC: Book3S HV: Fix conversion to gfn-based MMU notifier callbacks
      KVM: x86: Hide RDTSCP and RDPID if MSR_TSC_AUX probing failed
      KVM: x86: Tie Intel and AMD behavior for MSR_TSC_AUX to guest CPU model
      KVM: x86: Move uret MSR slot management to common x86
      KVM: x86: Export the number of uret MSRs to vendor modules
      KVM: VMX: Disable loading of TSX_CTRL MSR the more conventional way
      KVM: VMX: Use common x86's uret MSR list as the one true list
      KVM: VMX: Use flag to indicate "active" uret MSRs instead of sorting list
      KVM: VMX: Configure list of user return MSRs at module init
      KVM: x86: Add support for RDPID without RDTSCP
      KVM: SVM: Probe and load MSR_TSC_AUX regardless of RDTSCP support in host
      ...
    torvalds committed May 10, 2021
  4. tools headers UAPI: Sync perf_event.h with the kernel sources

    To pick up the changes in:
    
      2b26f0a ("perf: Support only inheriting events if cloned with CLONE_THREAD")
      2e498d0 ("perf: Add support for event removal on exec")
      547b609 ("perf: aux: Add flags for the buffer format")
      55bcf6e ("perf: Extend PERF_TYPE_HARDWARE and PERF_TYPE_HW_CACHE")
      7dde517 ("perf: aux: Add CoreSight PMU buffer formats")
      97ba62b ("perf: Add support for SIGTRAP on perf events")
      d0d1dd6 ("perf core: Add PERF_COUNT_SW_CGROUP_SWITCHES event")
    
    Also change the expected sizeof(struct perf_event_attr) from 120 to 128 due to
    fields being added for the SIGTRAP changes.
    
    Addressing this perf build warning:
    
      Warning: Kernel ABI header at 'tools/include/uapi/linux/perf_event.h' differs from latest version at 'include/uapi/linux/perf_event.h'
      diff -u tools/include/uapi/linux/perf_event.h include/uapi/linux/perf_event.h
    
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Marco Elver <elver@google.com>
    Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Suzuki K Poulose <suzuki.poulose@arm.com>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo committed May 10, 2021
  5. tools headers cpufeatures: Sync with the kernel sources

    To pick the changes from:
    
      4e62921 ("x86/paravirt: Add new features for paravirt patching")
      a161545 ("x86/cpufeatures: Enumerate Intel Hybrid Technology feature bit")
      a89dfde ("x86: Remove dynamic NOP selection")
      b8921dc ("x86/cpufeatures: Add SGX1 and SGX2 sub-features")
      f21d4d3 ("x86/cpufeatures: Enumerate #DB for bus lock detection")
      f333374 ("x86/cpufeatures: Add the Virtual SPEC_CTRL feature")
    
    This only causes these perf files to be rebuilt:
    
      CC       /tmp/build/perf/bench/mem-memcpy-x86-64-asm.o
      CC       /tmp/build/perf/bench/mem-memset-x86-64-asm.o
    
    And addresses this perf build warning:
    
      Warning: Kernel ABI header at 'tools/arch/x86/include/asm/cpufeatures.h' differs from latest version at 'arch/x86/include/asm/cpufeatures.h'
      diff -u tools/arch/x86/include/asm/cpufeatures.h arch/x86/include/asm/cpufeatures.h
    
    Cc: Babu Moger <babu.moger@amd.com>
    Cc: Borislav Petkov <bp@suse.de>
    Cc: Fenghua Yu <fenghua.yu@intel.com>
    Cc: Juergen Gross <jgross@suse.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Ricardo Neri <ricardo.neri-calderon@linux.intel.com>
    Cc: Sean Christopherson <seanjc@google.com>
    Cc: Thomas Gleixner <tglx@linutronix.de>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo committed May 10, 2021
  6. tools include UAPI powerpc: Sync errno.h with the kernel headers

    To pick the change in:
    
      7de21e6 ("powerpc: fix EDEADLOCK redefinition error in uapi/asm/errno.h")
    
    That will make the errno number -> string tables to pick this change on powerpc.
    
    Silencing this perf build warning:
    
      Warning: Kernel ABI header at 'tools/arch/powerpc/include/uapi/asm/errno.h' differs from latest version at 'arch/powerpc/include/uapi/asm/errno.h'
      diff -u tools/arch/powerpc/include/uapi/asm/errno.h arch/powerpc/include/uapi/asm/errno.h
    
    Cc: Michael Ellerman <mpe@ellerman.id.au>
    Cc: Tony Ambardar <tony.ambardar@gmail.com>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo committed May 10, 2021
  7. tools arch: Update arch/x86/lib/mem{cpy,set}_64.S copies used in 'per…

    …f bench mem memcpy'
    
    To bring in the change made in this cset:
    
     5e21a3e ("x86/alternative: Merge include files")
    
    This just silences these perf tools build warnings, no change in the tools:
    
      Warning: Kernel ABI header at 'tools/arch/x86/lib/memcpy_64.S' differs from latest version at 'arch/x86/lib/memcpy_64.S'
      diff -u tools/arch/x86/lib/memcpy_64.S arch/x86/lib/memcpy_64.S
      Warning: Kernel ABI header at 'tools/arch/x86/lib/memset_64.S' differs from latest version at 'arch/x86/lib/memset_64.S'
      diff -u tools/arch/x86/lib/memset_64.S arch/x86/lib/memset_64.S
    
    Cc: Borislav Petkov <bp@suse.de>
    Cc: Juergen Gross <jgross@suse.com>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo committed May 10, 2021
  8. tools headers UAPI: Sync linux/prctl.h with the kernel sources

    To pick a new prctl introduced in:
    
      2016986 ("arm64: Introduce prctl(PR_PAC_{SET,GET}_ENABLED_KEYS)")
    
    That results in
    
      $ grep prctl tools/perf/trace/beauty/*.sh
      tools/perf/trace/beauty/prctl_option.sh:printf "static const char *prctl_options[] = {\n"
      tools/perf/trace/beauty/prctl_option.sh:egrep $regex ${header_dir}/prctl.h | grep -v PR_SET_PTRACER | \
      tools/perf/trace/beauty/prctl_option.sh:printf "static const char *prctl_set_mm_options[] = {\n"
      tools/perf/trace/beauty/prctl_option.sh:egrep $regex ${header_dir}/prctl.h | \
      tools/perf/trace/beauty/x86_arch_prctl.sh:prctl_arch_header=${x86_header_dir}/prctl.h
      tools/perf/trace/beauty/x86_arch_prctl.sh:	printf "#define x86_arch_prctl_codes_%d_offset %s\n" $idx $first_entry
      tools/perf/trace/beauty/x86_arch_prctl.sh:	printf "static const char *x86_arch_prctl_codes_%d[] = {\n" $idx
      tools/perf/trace/beauty/x86_arch_prctl.sh:	egrep -q $regex ${prctl_arch_header} && \
      tools/perf/trace/beauty/x86_arch_prctl.sh:	(egrep $regex ${prctl_arch_header} | \
      $ tools/perf/trace/beauty/prctl_option.sh > before
      $ cp include/uapi/linux/prctl.h tools/include/uapi/linux/prctl.h
      $ tools/perf/trace/beauty/prctl_option.sh > after
      $ diff -u before after
      --- before	2021-05-09 10:06:10.064559675 -0300
      +++ after	2021-05-09 10:06:21.319791396 -0300
      @@ -54,6 +54,8 @@
       	[57] = "SET_IO_FLUSHER",
       	[58] = "GET_IO_FLUSHER",
       	[59] = "SET_SYSCALL_USER_DISPATCH",
      +	[60] = "PAC_SET_ENABLED_KEYS",
      +	[61] = "PAC_GET_ENABLED_KEYS",
       };
       static const char *prctl_set_mm_options[] = {
       	[1] = "START_CODE",
      $
    
    Now users can do:
    
      # perf trace -e syscalls:sys_enter_prctl --filter "option==PAC_GET_ENABLED_KEYS"
    ^C#
      # trace -v -e syscalls:sys_enter_prctl --filter "option==PAC_GET_ENABLED_KEYS"
      New filter for syscalls:sys_enter_prctl: (option==0x3d) && (common_pid != 5519 && common_pid != 3404)
    ^C#
    
    And also when prctl appears in a session, its options will be
    translated to the string.
    
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Peter Collingbourne <pcc@google.com>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo committed May 10, 2021
  9. tools headers UAPI: Sync files changed by landlock, quotactl_path and…

    … mount_settattr new syscalls
    
    To pick the changes in these csets:
    
      a49f4f8 ("arch: Wire up Landlock syscalls")
      2a18672 ("fs: add mount_setattr()")
      fa8b900 ("quota: wire up quotactl_path")
    
    That silences these perf build warnings and add support for those new
    syscalls in tools such as 'perf trace'.
    
    For instance, this is now possible:
    
      # ~acme/bin/perf trace -v -e landlock*
      event qualifier tracepoint filter: (common_pid != 129365 && common_pid != 3502) && (id == 444 || id == 445 || id == 446)
      ^C#
    
    That is tha filter expression attached to the raw_syscalls:sys_{enter,exit}
    tracepoints.
    
      $ grep landlock tools/perf/arch/x86/entry/syscalls/syscall_64.tbl
      444	common	landlock_create_ruleset	sys_landlock_create_ruleset
      445	common	landlock_add_rule	sys_landlock_add_rule
      446	common	landlock_restrict_self	sys_landlock_restrict_self
      $
    
    This addresses these perf build warnings:
    
      Warning: Kernel ABI header at 'tools/include/uapi/asm-generic/unistd.h' differs from latest version at 'include/uapi/asm-generic/unistd.h'
      diff -u tools/include/uapi/asm-generic/unistd.h include/uapi/asm-generic/unistd.h
      Warning: Kernel ABI header at 'tools/perf/arch/x86/entry/syscalls/syscall_64.tbl' differs from latest version at 'arch/x86/entry/syscalls/syscall_64.tbl'
      diff -u tools/perf/arch/x86/entry/syscalls/syscall_64.tbl arch/x86/entry/syscalls/syscall_64.tbl
      Warning: Kernel ABI header at 'tools/perf/arch/powerpc/entry/syscalls/syscall.tbl' differs from latest version at 'arch/powerpc/kernel/syscalls/syscall.tbl'
      diff -u tools/perf/arch/powerpc/entry/syscalls/syscall.tbl arch/powerpc/kernel/syscalls/syscall.tbl
      Warning: Kernel ABI header at 'tools/perf/arch/s390/entry/syscalls/syscall.tbl' differs from latest version at 'arch/s390/kernel/syscalls/syscall.tbl'
      diff -u tools/perf/arch/s390/entry/syscalls/syscall.tbl arch/s390/kernel/syscalls/syscall.tbl
      Warning: Kernel ABI header at 'tools/perf/arch/mips/entry/syscalls/syscall_n64.tbl' differs from latest version at 'arch/mips/kernel/syscalls/syscall_n64.tbl'
      diff -u tools/perf/arch/mips/entry/syscalls/syscall_n64.tbl arch/mips/kernel/syscalls/syscall_n64.tbl
    
    Cc: Christian Brauner <christian.brauner@ubuntu.com>
    Cc: James Morris <jamorris@linux.microsoft.com>
    Cc: Jan Kara <jack@suse.cz>
    Cc: Mickaël Salaün <mic@linux.microsoft.com>
    Cc: Sascha Hauer <s.hauer@pengutronix.de>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo committed May 10, 2021
  10. perf tools: Fix a build error on arm64 with clang

    Since clang's -Wmissing-field-initializers warns if a data
    structure is initialized with a signle NULL as below,
    
     ----
     tools/perf $ make CC=clang LLVM=1
     ...
     arch/arm64/util/kvm-stat.c:74:9: error: missing field 'ops' initializer [-Werror,-Wmissing-field-initializers]
             { NULL },
                    ^
     1 error generated.
     ----
    
    add another field initializer expressly as same as other
    arch's kvm-stat.c code.
    
    Signed-off-by: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Anders Roxell <anders.roxell@linaro.org>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
    Link: http://lore.kernel.org/lkml/162037767540.94840.15758657049033010518.stgit@devnote2
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    mhiramat authored and Arnaldo Carvalho de Melo committed May 10, 2021
  11. tools headers kvm: Sync kvm headers with the kernel sources

    To pick the changes in:
    
      3c0c2ad ("KVM: VMX: Add basic handling of VM-Exit from SGX enclave")
    
    None of them trigger any changes in tooling, this time this is just to silence
    these perf build warnings:
    
      Warning: Kernel ABI header at 'tools/arch/x86/include/uapi/asm/vmx.h' differs from latest version at 'arch/x86/include/uapi/asm/vmx.h'
      diff -u tools/arch/x86/include/uapi/asm/vmx.h arch/x86/include/uapi/asm/vmx.h
    
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Sean Christopherson <seanjc@google.com>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo committed May 10, 2021
  12. tools headers UAPI: Sync linux/kvm.h with the kernel sources

    To pick the changes in:
    
      15fb7de ("KVM: SVM: Add KVM_SEV_RECEIVE_UPDATE_DATA command")
      3bf7256 ("KVM: arm64: Add support for the KVM PTP service")
      4cfdd47 ("KVM: SVM: Add KVM_SEV SEND_START command")
      54526d1 ("KVM: x86: Support KVM VMs sharing SEV context")
      5569e2e ("KVM: SVM: Add support for KVM_SEV_SEND_CANCEL command")
      8b13c36 ("KVM: introduce KVM_CAP_SET_GUEST_DEBUG2")
      af43cbb ("KVM: SVM: Add support for KVM_SEV_RECEIVE_START command")
      d3d1af8 ("KVM: SVM: Add KVM_SEND_UPDATE_DATA command")
      fe7e948 ("KVM: x86: Add capability to grant VM access to privileged SGX attribute")
    
    That don't cause any change in tooling as it doesn't introduce any new
    ioctl.
    
      $ grep kvm tools/perf/trace/beauty/*.sh
      tools/perf/trace/beauty/kvm_ioctl.sh:printf "static const char *kvm_ioctl_cmds[] = {\n"
      tools/perf/trace/beauty/kvm_ioctl.sh:egrep $regex ${header_dir}/kvm.h	| \
      $
      $ tools/perf/trace/beauty/kvm_ioctl.sh > before
      $ cp include/uapi/linux/kvm.h tools/include/uapi/linux/kvm.h
      $ tools/perf/trace/beauty/kvm_ioctl.sh > after
      $ diff -u before after
      $
    
    This silences this perf build warning:
    
      Warning: Kernel ABI header at 'tools/include/uapi/linux/kvm.h' differs from latest version at 'include/uapi/linux/kvm.h'
      diff -u tools/include/uapi/linux/kvm.h include/uapi/linux/kvm.h
    
    Cc: Brijesh Singh <brijesh.singh@amd.com>
    Cc: Jianyong Wu <jianyong.wu@arm.com>
    Cc: Marc Zyngier <maz@kernel.org>
    Cc: Nathan Tempelman <natet@google.com>
    Cc: Paolo Bonzini <pbonzini@redhat.com>
    Cc: Sean Christopherson <seanjc@google.com>
    Cc: Steve Rutherford <srutherford@google.com>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo committed May 10, 2021
  13. perf tools: Fix dynamic libbpf link

    Justin reported broken build with LIBBPF_DYNAMIC=1.
    
    When linking libbpf dynamically we need to use perf's
    hashmap object, because it's not exported in libbpf.so
    (only in libbpf.a).
    
    Following build is now passing:
    
      $ make LIBBPF_DYNAMIC=1
        BUILD:   Doing 'make -j8' parallel build
        ...
      $ ldd perf | grep libbpf
            libbpf.so.0 => /lib64/libbpf.so.0 (0x00007fa7630db000)
    
    Fixes: eee1950 ("perf tools: Grab a copy of libbpf's hashmap")
    Reported-by: Justin M. Forbes <jforbes@redhat.com>
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Michael Petlan <mpetlan@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lore.kernel.org/lkml/20210508205020.617984-1-jolsa@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    olsajiri authored and Arnaldo Carvalho de Melo committed May 10, 2021
  14. perf session: Fix swapping of cpu_map and stat_config records

    'data' field in perf_record_cpu_map_data struct is 16-bit
    wide and so should be swapped using bswap_16().
    
    'nr' field in perf_record_stat_config struct should be
    swapped before being used for size calculation.
    
    Signed-off-by: Dmitry Koshelev <karaghiozis@gmail.com>
    Acked-by: Jiri Olsa <jolsa@redhat.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Leo Yan <leo.yan@linaro.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lore.kernel.org/lkml/20210506131244.13328-1-karaghiozis@gmail.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    dmitry-koshelev authored and Arnaldo Carvalho de Melo committed May 10, 2021
  15. perf jevents: Silence warning for ArchStd files

    JSON files in the level 1 directory are used for ArchStd events (see
    preprocess_arch_std_files), as such they shouldn't be warned about.
    
    Signed-off-by: Ian Rogers <irogers@google.com>
    Reviewed-by: John Garry <john.garry@huawei.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Joakim Zhang <qiangqing.zhang@nxp.com>
    Cc: Kajol Jain <kjain@linux.ibm.com>
    Cc: Kim Phillips <kim.phillips@amd.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lore.kernel.org/lkml/20210506225640.1461000-1-irogers@google.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    captain5050 authored and Arnaldo Carvalho de Melo committed May 10, 2021
  16. perf record: Disallow -c and -F option at the same time

    It's confusing which one is effective when the both options are given.
    The current code happens to use -c in this case but users might not be
    aware of it.  We can change it to complain about that instead of relying
    on the implicit priority.
    
    Before:
    
      $ perf record -c 111111 -F 99 true
      [ perf record: Woken up 1 times to write data ]
      [ perf record: Captured and wrote 0.031 MB perf.data (8 samples) ]
    
      $ perf evlist -F
      cycles: sample_period=111111
      $
    
    After:
      $ perf record -c 111111 -F 99 true
      cannot set frequency and period at the same time
      $
    
    So this change can break existing usages, but I think it's rare to have
    both options and it'd be better changing them.
    
    Suggested-by: Alexey Alexandrov <aalexand@google.com>
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Link: http://lore.kernel.org/lkml/20210402094020.28164-1-namhyung@kernel.org
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    namhyung authored and Arnaldo Carvalho de Melo committed May 10, 2021
  17. tools arch x86: Sync the msr-index.h copy with the kernel sources

    To pick up the changes from these csets:
    
      d0946a8 ("perf/x86/intel: Hybrid PMU support for perf capabilities")
    
    That cause no changes to tooling as it isn't adding any new MSR, just
    some capabilities for a pre-existing one:
    
      $ tools/perf/trace/beauty/tracepoints/x86_msr.sh > before
      $ cp arch/x86/include/asm/msr-index.h tools/arch/x86/include/asm/msr-index.h
      $ tools/perf/trace/beauty/tracepoints/x86_msr.sh > after
      $ diff -u before after
      $
    
    Just silences this perf build warning:
    
      Warning: Kernel ABI header at 'tools/arch/x86/include/asm/msr-index.h' differs from latest version at 'arch/x86/include/asm/msr-index.h'
      diff -u tools/arch/x86/include/asm/msr-index.h arch/x86/include/asm/msr-index.h
    
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo committed May 10, 2021
  18. tools headers UAPI: Sync drm/i915_drm.h with the kernel sources

    To pick the changes in:
    
      b5b6f6a ("drm/i915/gem: Drop legacy execbuffer support (v2)")
    
    That don't result in any change in tooling as this is just adding a
    comment.
    
    Only silences this perf build warning:
    
      Warning: Kernel ABI header at 'tools/include/uapi/drm/i915_drm.h' differs from latest version at 'include/uapi/drm/i915_drm.h'
      diff -u tools/include/uapi/drm/i915_drm.h include/uapi/drm/i915_drm.h
    
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Cc: Jason Ekstrand <jason@jlekstrand.net>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo committed May 10, 2021
  19. tools headers UAPI: Update tools's copy of drm.h headers

    Picking the changes from:
    
      b603e81 ("drm/uapi: document kernel capabilities")
    
    Doesn't result in any tooling changes:
    
      $ tools/perf/trace/beauty/drm_ioctl.sh  > before
      $ cp include/uapi/drm/drm.h tools/include/uapi/drm/drm.h
      $ tools/perf/trace/beauty/drm_ioctl.sh  > after
      $ diff -u before after
    
    Silencing these perf build warnings:
    
      Warning: Kernel ABI header at 'tools/include/uapi/drm/drm.h' differs from latest version at 'include/uapi/drm/drm.h'
      diff -u tools/include/uapi/drm/drm.h include/uapi/drm/drm.h
    
    Cc: Simon Ser <contact@emersion.fr>
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Arnaldo Carvalho de Melo committed May 10, 2021

Commits on May 9, 2021

  1. Linux 5.13-rc1

    torvalds committed May 9, 2021
  2. fbmem: fix horribly incorrect placement of __maybe_unused

    Commit b9d79e4 ("fbmem: Mark proc_fb_seq_ops as __maybe_unused")
    places the '__maybe_unused' in an entirely incorrect location between
    the "struct" keyword and the structure name.
    
    It's a wonder that gcc accepts that silently, but clang quite reasonably
    warns about it:
    
        drivers/video/fbdev/core/fbmem.c:736:21: warning: attribute declaration must precede definition [-Wignored-attributes]
        static const struct __maybe_unused seq_operations proc_fb_seq_ops = {
                            ^
    
    Fix it.
    
    Cc: Guenter Roeck <linux@roeck-us.net>
    Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    torvalds committed May 9, 2021
  3. Merge tag 'drm-next-2021-05-10' of git://anongit.freedesktop.org/drm/drm

    Pull drm fixes from Dave Airlie:
     "Bit later than usual, I queued them all up on Friday then promptly
      forgot to write the pull request email. This is mainly amdgpu fixes,
      with some radeon/msm/fbdev and one i915 gvt fix thrown in.
    
      amdgpu:
       - MPO hang workaround
       - Fix for concurrent VM flushes on vega/navi
       - dcefclk is not adjustable on navi1x and newer
       - MST HPD debugfs fix
       - Suspend/resumes fixes
       - Register VGA clients late in case driver fails to load
       - Fix GEM leak in user framebuffer create
       - Add support for polaris12 with 32 bit memory interface
       - Fix duplicate cursor issue when using overlay
       - Fix corruption with tiled surfaces on VCN3
       - Add BO size and stride check to fix BO size verification
    
      radeon:
       - Fix off-by-one in power state parsing
       - Fix possible memory leak in power state parsing
    
      msm:
       - NULL ptr dereference fix
    
      fbdev:
       - procfs disabled warning fix
    
      i915:
       - gvt: Fix a possible division by zero in vgpu display rate
         calculation"
    
    * tag 'drm-next-2021-05-10' of git://anongit.freedesktop.org/drm/drm:
      drm/amdgpu: Use device specific BO size & stride check.
      drm/amdgpu: Init GFX10_ADDR_CONFIG for VCN v3 in DPG mode.
      drm/amd/pm: initialize variable
      drm/radeon: Avoid power table parsing memory leaks
      drm/radeon: Fix off-by-one power_state index heap overwrite
      drm/amd/display: Fix two cursor duplication when using overlay
      drm/amdgpu: add new MC firmware for Polaris12 32bit ASIC
      fbmem: Mark proc_fb_seq_ops as __maybe_unused
      drm/msm/dpu: Delete bonkers code
      drm/i915/gvt: Prevent divided by zero when calculating refresh rate
      amdgpu: fix GEM obj leak in amdgpu_display_user_framebuffer_create
      drm/amdgpu: Register VGA clients after init can no longer fail
      drm/amdgpu: Handling of amdgpu_device_resume return value for graceful teardown
      drm/amdgpu: fix r initial values
      drm/amd/display: fix wrong statement in mst hpd debugfs
      amdgpu/pm: set pp_dpm_dcefclk to readonly on NAVI10 and newer gpus
      amdgpu/pm: Prevent force of DCEFCLK on NAVI10 and SIENNA_CICHLID
      drm/amdgpu: fix concurrent VM flushes on Vega/Navi v2
      drm/amd/display: Reject non-zero src_y and src_x for video planes
    torvalds committed May 9, 2021
Older