1. 12 Aug, 2020 5 commits
    • Arnaldo Carvalho de Melo's avatar
      perf trace beauty: Use the autogenerated protocol family table · f3cf7fa9
      Arnaldo Carvalho de Melo authored
      That helps us not to lose new protocol families when they are
      introduced, replacing that hardcoded, dated family->string table.
      
      To recap what this allows us to do:
      
        # perf trace -e syscalls:sys_enter_socket/max-stack=10/ --filter=family==INET --max-events=1
           0.000 fetchmail/41097 syscalls:sys_enter_socket(family: INET, type: DGRAM|CLOEXEC|NONBLOCK, protocol: IP)
                                             __GI___socket (inlined)
                                             reopen (/usr/lib64/libresolv-2.31.so)
                                             send_dg (/usr/lib64/libresolv-2.31.so)
                                             __res_context_send (/usr/lib64/libresolv-2.31.so)
                                             __GI___res_context_query (inlined)
                                             __GI___res_context_search (inlined)
                                             _nss_dns_gethostbyname4_r (/usr/lib64/libnss_dns-2.31.so)
                                             gaih_inet.constprop.0 (/usr/lib64/libc-2.31.so)
                                             __GI_getaddrinfo (inlined)
                                             [0x15cb2] (/usr/bin/fetchmail)
        #
      
      More work is still needed to allow for the more natura strace-like
      syscall name usage instead of the trace event name:
      
        # perf trace -e socket/max-stack=10,family==INET/ --max-events=1
      
      I.e. to allow for modifiers to follow the syscall name and for logical
      expressions to be accepted as filters to use with that syscall, be it as
      trace event filters or BPF based ones.
      
      Using -v we can see how the trace event filter is built:
      
        # perf trace -v -e syscalls:sys_enter_socket/call-graph=dwarf/ --filter=family==INET --max-events=2
        <SNIP>
        New filter for syscalls:sys_enter_socket: (family==0x2) && (common_pid != 41384 && common_pid != 2836)
        <SNIP>
      
        $ tools/perf/trace/beauty/socket.sh | grep -w 2
      	[2] = "INET",
        $
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      f3cf7fa9
    • Arnaldo Carvalho de Melo's avatar
      perf trace beauty: Add script to autogenerate socket families table · 58277f50
      Arnaldo Carvalho de Melo authored
      To use with 'perf trace', to convert the protocol families to strings,
      e.g:
      
        $ tools/perf/trace/beauty/socket.sh
        static const char *socket_families[] = {
        	[0] = "UNSPEC",
        	[1] = "LOCAL",
        	[2] = "INET",
        	[3] = "AX25",
        	[4] = "IPX",
        	[5] = "APPLETALK",
        	[6] = "NETROM",
        	[7] = "BRIDGE",
        	[8] = "ATMPVC",
        	[9] = "X25",
        	[10] = "INET6",
        	[11] = "ROSE",
        	[12] = "DECnet",
        	[13] = "NETBEUI",
        	[14] = "SECURITY",
        	[15] = "KEY",
        	[16] = "NETLINK",
        	[17] = "PACKET",
        	[18] = "ASH",
        	[19] = "ECONET",
        	[20] = "ATMSVC",
        	[21] = "RDS",
        	[22] = "SNA",
        	[23] = "IRDA",
        	[24] = "PPPOX",
        	[25] = "WANPIPE",
        	[26] = "LLC",
        	[27] = "IB",
        	[28] = "MPLS",
        	[29] = "CAN",
        	[30] = "TIPC",
        	[31] = "BLUETOOTH",
        	[32] = "IUCV",
        	[33] = "RXRPC",
        	[34] = "ISDN",
        	[35] = "PHONET",
        	[36] = "IEEE802154",
        	[37] = "CAIF",
        	[38] = "ALG",
        	[39] = "NFC",
        	[40] = "VSOCK",
        	[41] = "KCM",
        	[42] = "QIPCRTR",
        	[43] = "SMC",
        	[44] = "XDP",
        };
        $
      
      This uses a copy of include/linux/socket.h that is kept in a directory
      to be used just for these table generation scripts and for checking if
      the kernel has a new file that maybe gets something new for these
      tables.
      
      This allows us to:
      
      - Avoid accessing files outside tools/, in the kernel sources, that may
        be changed in unexpected ways and thus break these scripts.
      
      - Notice when those files change and thus check if the changes don't
        break those scripts, update them to automatically get the new
        definitions, a new socket family, for instance.
      
      - Not add then to the tools/include/ where it may end up used while
        building the tools and end up requiring dragging yet more stuff from
        the kernel or plain break the build in some of the myriad environments
        where perf may be built.
      
      This will replace the previous static array in tools/perf/ that was
      dated and was already missing the AF_KCM, AF_QIPCRTR, AF_SMC and AF_XDP
      families.
      
      The next cset will wire this up to the perf build process.
      
      At some point this must be made into a library to be used in places such
      as libtraceevent, bpftrace, etc.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Jiri Olsa <jolsa@kernel.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Steven Rostedt <rostedt@goodmis.org>
      Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      58277f50
    • Linus Torvalds's avatar
      Merge tag 'tag-chrome-platform-for-v5.9' of... · fb893de3
      Linus Torvalds authored
      Merge tag 'tag-chrome-platform-for-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux
      
      Pull chrome platform updates from Benson Leung:
       "cros_ec_typec:
      
         - Add support for switch control and alternate modes to the Chrome EC
           Type C port driver
      
         - Add basic suspend/resume support
      
        sensorhub:
      
         - Fix timestamp overflow issue
      
         - Fix legacy timestamp spreading on Nami systems
      
        cros_ec_proto:
      
         - After removing all users of, stop exporting cros_ec_cmd_xfer
      
         - Check for missing EC_CMD_HOST_EVENT_GET_WAKE_MASK and ignore
           wakeups on old ECs
      
        misc:
      
         - Documentation warning cleanup
      
         - Fix double unlock issue in ishtp"
      
      * tag 'tag-chrome-platform-for-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux: (21 commits)
        platform/chrome: cros_ec_proto: check for missing EC_CMD_HOST_EVENT_GET_WAKE_MASK
        platform/chrome: cros_ec_proto: ignore unnecessary wakeups on old ECs
        platform/chrome: cros_ec_sensorhub: Simplify legacy timestamp spreading
        platform/chrome: cros_ec_proto: Do not export cros_ec_cmd_xfer()
        platform/chrome: cros_ec_typec: Unregister partner on error
        platform/chrome: cros_ec_sensorhub: Fix EC timestamp overflow
        platform/chrome: cros_ec_typec: Add PM support
        platform/chrome: cros_ec_typec: Use workqueue for port update
        platform/chrome: cros_ec_typec: Add a dependency on USB_ROLE_SWITCH
        platform/chrome: cros_ec_ishtp: Fix a double-unlock issue
        platform/chrome: cros_ec_rpmsg: Document missing struct parameters
        platform/chrome: cros_ec_spi: Document missing function parameters
        platform/chrome: cros_ec_typec: Add TBT compat support
        platform/chrome: cros_ec: Add TBT pd_ctrl fields
        platform/chrome: cros_ec_typec: Make configure_mux static
        platform/chrome: cros_ec_typec: Support DP alt mode
        platform/chrome: cros_ec_typec: Add USB mux control
        platform/chrome: cros_ec_typec: Register PD CTRL cmd v2
        platform/chrome: cros_ec: Update mux state bits
        platform/chrome: cros_ec_typec: Register Type C switches
        ...
      fb893de3
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.9-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux · d668e848
      Linus Torvalds authored
      Pull orangefs updates from Mike Marshall:
       "A fix and a cleanup...
      
        The fix: Al Viro pointed out that I had broken some acl functionality
        with one of my previous patches.
      
        And the cleanup: Jing Xiangfeng found and removed a needless variable
        assignment"
      
      * tag 'for-linus-5.9-ofs1' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux:
        orangefs: remove unnecessary assignment to variable ret
        orangefs: posix acl fix...
      d668e848
    • Linus Torvalds's avatar
      Merge tag 'zonefs-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/zonefs · 57d528bf
      Linus Torvalds authored
      Pull zonefs update from Damien Le Moal:
       "A single change for this cycle adding support for zone capacities
        smaller than the zone size, from Johannes"
      
      * tag 'zonefs-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/dlemoal/zonefs:
        zonefs: update documentation to reflect zone size vs capacity
        zonefs: add zone-capacity support
      57d528bf
  2. 11 Aug, 2020 17 commits
    • Linus Torvalds's avatar
      Merge tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux · bb5baaa9
      Linus Torvalds authored
      Pull arm64 fix from Catalin Marinas:
       "Fix recordmcount build failure on non-arm64 (caused by an arm64
        patch)"
      
      * tag 'arm64-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux:
        recordmcount: Fix build failure on non arm64
      bb5baaa9
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · 57b07793
      Linus Torvalds authored
      Pull virtio updates from Michael Tsirkin:
      
       - IRQ bypass support for vdpa and IFC
      
       - MLX5 vdpa driver
      
       - Endianness fixes for virtio drivers
      
       - Misc other fixes
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: (71 commits)
        vdpa/mlx5: fix up endian-ness for mtu
        vdpa: Fix pointer math bug in vdpasim_get_config()
        vdpa/mlx5: Fix pointer math in mlx5_vdpa_get_config()
        vdpa/mlx5: fix memory allocation failure checks
        vdpa/mlx5: Fix uninitialised variable in core/mr.c
        vdpa_sim: init iommu lock
        virtio_config: fix up warnings on parisc
        vdpa/mlx5: Add VDPA driver for supported mlx5 devices
        vdpa/mlx5: Add shared memory registration code
        vdpa/mlx5: Add support library for mlx5 VDPA implementation
        vdpa/mlx5: Add hardware descriptive header file
        vdpa: Modify get_vq_state() to return error code
        net/vdpa: Use struct for set/get vq state
        vdpa: remove hard coded virtq num
        vdpasim: support batch updating
        vhost-vdpa: support IOTLB batching hints
        vhost-vdpa: support get/set backend features
        vhost: generialize backend features setting/getting
        vhost-vdpa: refine ioctl pre-processing
        vDPA: dont change vq irq after DRIVER_OK
        ...
      57b07793
    • Linus Torvalds's avatar
      Merge tag 'for-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security · ce13266d
      Linus Torvalds authored
      Pull security subsystem updates from James Morris:
       "A couple of minor documentation updates only for this release"
      
      * tag 'for-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security:
        LSM: drop duplicated words in header file comments
        Replace HTTP links with HTTPS ones: security
      ce13266d
    • Linus Torvalds's avatar
      Merge tag 'iommu-updates-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu · 952ace79
      Linus Torvalds authored
      Pull iommu updates from Joerg Roedel:
      
       - Remove of the dev->archdata.iommu (or similar) pointers from most
         architectures. Only Sparc is left, but this is private to Sparc as
         their drivers don't use the IOMMU-API.
      
       - ARM-SMMU updates from Will Deacon:
      
           - Support for SMMU-500 implementation in Marvell Armada-AP806 SoC
      
           - Support for SMMU-500 implementation in NVIDIA Tegra194 SoC
      
           - DT compatible string updates
      
           - Remove unused IOMMU_SYS_CACHE_ONLY flag
      
           - Move ARM-SMMU drivers into their own subdirectory
      
       - Intel VT-d updates from Lu Baolu:
      
           - Misc tweaks and fixes for vSVA
      
           - Report/response page request events
      
           - Cleanups
      
       - Move the Kconfig and Makefile bits for the AMD and Intel drivers into
         their respective subdirectory.
      
       - MT6779 IOMMU Support
      
       - Support for new chipsets in the Renesas IOMMU driver
      
       - Other misc cleanups and fixes (e.g. to improve compile test coverage)
      
      * tag 'iommu-updates-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (77 commits)
        iommu/amd: Move Kconfig and Makefile bits down into amd directory
        iommu/vt-d: Move Kconfig and Makefile bits down into intel directory
        iommu/arm-smmu: Move Arm SMMU drivers into their own subdirectory
        iommu/vt-d: Skip TE disabling on quirky gfx dedicated iommu
        iommu: Add gfp parameter to io_pgtable_ops->map()
        iommu: Mark __iommu_map_sg() as static
        iommu/vt-d: Rename intel-pasid.h to pasid.h
        iommu/vt-d: Add page response ops support
        iommu/vt-d: Report page request faults for guest SVA
        iommu/vt-d: Add a helper to get svm and sdev for pasid
        iommu/vt-d: Refactor device_to_iommu() helper
        iommu/vt-d: Disable multiple GPASID-dev bind
        iommu/vt-d: Warn on out-of-range invalidation address
        iommu/vt-d: Fix devTLB flush for vSVA
        iommu/vt-d: Handle non-page aligned address
        iommu/vt-d: Fix PASID devTLB invalidation
        iommu/vt-d: Remove global page support in devTLB flush
        iommu/vt-d: Enforce PASID devTLB field mask
        iommu: Make some functions static
        iommu/amd: Remove double zero check
        ...
      952ace79
    • Linus Torvalds's avatar
      Merge tag 'backlight-next-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · 96f970fe
      Linus Torvalds authored
      Pull backlight updates from Lee Jones:
       "Core Framework:
         - Trivial: Code refactoring
         - New API backlight_is_blank()
         - New API backlight_get_brightness()
         - Additional/reworked documentation
         - Remove 'extern' labels from prototypes
         - Drop backlight_put()
         - Staticify of_find_backlight()
      
        Driver Removal:
         - Removal of unused OT200 driver
         - Removal of unused Generic Backlight driver
      
        Fix-ups
         - Bunch of W=1 warning fixes
         - Convert to GPIO descriptors; sky81452
         - Move platform data handling into driver; sky81452
         - Remove superfluous code; lms501kf03
         - Many instances of using new APIs"
      
      * tag 'backlight-next-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight: (34 commits)
        video: backlight: cr_bllcd: Remove unused variable 'intensity'
        backlight: backlight: Make of_find_backlight static
        backlight: backlight: Drop backlight_put()
        backlight: Use backlight_get_brightness() throughout
        backlight: jornada720_bl: Introduce backlight_is_blank()
        backlight: gpio_backlight: Simplify update_status()
        backlight: cr_bllcd: Introduce gpio-backlight semantics
        backlight: as3711_bl: Simplify update_status
        backlight: backlight: Introduce backlight_get_brightness()
        doc-rst: Wire-up Backlight kernel-doc documentation
        backlight: backlight: Add overview and update existing doc
        backlight: backlight: Drop extern from prototypes
        backlight: generic_bl: Remove this driver as it is unused
        backlight: backlight: Document enums in backlight.h
        backlight: backlight: Document inline functions in backlight.h
        backlight: backlight: Improve backlight_device documentation
        backlight: backlight: Improve backlight_properties documentation
        backlight: backlight: Improve backlight_ops documentation
        backlight: backlight: Add backlight_is_blank()
        backlight: backlight: Refactor fb_notifier_callback()
        ...
      96f970fe
    • Linus Torvalds's avatar
      Merge tag 'hwlock-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc · c636eef2
      Linus Torvalds authored
      Pull hwspinlock updates from Bjorn Andersson:
       "This introduces a new DT binding format to describe the Qualcomm
        hardware mutex block and deprecates the old, invalid, one.
      
        It also cleans up the Kconfig slightly"
      
      * tag 'hwlock-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc:
        dt-bindings: hwlock: qcom: Remove invalid binding
        hwspinlock: qcom: Allow mmio usage in addition to syscon
        dt-bindings: hwlock: qcom: Allow device on mmio bus
        dt-bindings: hwlock: qcom: Migrate binding to YAML
        hwspinlock: Simplify Kconfig
      c636eef2
    • Linus Torvalds's avatar
      Merge tag 'rproc-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc · 617e7481
      Linus Torvalds authored
      Pull remoteproc updates from Bjorn Andersson:
       "This introduces a new "detached" state for remote processors that are
        deemed to be running at the time Linux boots and the infrastructure
        for "attaching" to these. It then introduces the support for
        performing this operation for the STM32 platform.
      
        The coredump functionality is moved out from the core file and gains
        support for an optional mode where the recovery phase awaits the
        notification from devcoredump that the dump should be released. This
        allows userspace to grab the coredump in scenarios where vmalloc space
        is too low for creating a complete copy of the coredump before handing
        this to devcoredump.
      
        A new character device based interface is introduced to allow tying
        the stoppage of a remote processor to the termination of a user space
        process. This is useful in situations when such process provides
        crucial resources/operations for the firmware running on the remote
        processor.
      
        The Texas Instrument K3 driver gains support for the C66x and C71x
        DSPs.
      
        Qualcomm remoteprocs gains support for stashing relocation information
        in IMEM, to aid post mortem debugging and the crash notification
        mechanism is generalized to be reusable in cases where loosely coupled
        drivers needs to know about the status of a remote processor. One such
        example is the IPA hardware block, which is jointly owned with the
        modem and migrated to this improved interface.
      
        It also introduces a number of bug fixes and debug improvements for
        the Qualcomm modem remoteproc driver.
      
        And it cleans up the inconsistent interface for remoteproc drivers to
        implement power management"
      
      * tag 'rproc-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc: (56 commits)
        remoteproc: core: Register the character device interface
        remoteproc: Add remoteproc character device interface
        remoteproc: kill IPA notify code
        net: ipa: new notification infrastructure
        remoteproc: k3-dsp: Add support for C71x DSPs
        dt-bindings: remoteproc: k3-dsp: Update bindings for C71x DSPs
        remoteproc: k3-dsp: Add support for L2RAM loading on C66x DSPs
        remoteproc: k3-dsp: Add a remoteproc driver of K3 C66x DSPs
        dt-bindings: remoteproc: Add bindings for C66x DSPs on TI K3 SoCs
        remoteproc: k3: Add TI-SCI processor control helper functions
        remoteproc: Introduce rproc_of_parse_firmware() helper
        dt-bindings: arm: keystone: Add common TI SCI bindings
        remoteproc: qcom_q6v5_mss: Remove redundant running state
        remoteproc: qcom: q6v5: Update running state before requesting stop
        remoteproc: qcom_q6v5_mss: Add modem debug policy support
        remoteproc: qcom_q6v5_mss: Validate modem blob firmware size before load
        remoteproc: qcom_q6v5_mss: Validate MBA firmware size before load
        rpmsg: update documentation
        remoteproc: qcom_q6v5_mss: Add MBA log extraction support
        remoteproc: Add coredump debugfs entry
        ...
      617e7481
    • Linus Torvalds's avatar
      Merge tag 'rpmsg-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc · dded87af
      Linus Torvalds authored
      Pull rpmsg update from Bjorn Andersson:
       "This ensures that rpmsg uses little-endian, per the VirtIO 1.0
        specification"
      
      * tag 'rpmsg-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc:
        rpmsg: virtio: add endianness conversions
      dded87af
    • Linus Torvalds's avatar
      Merge tag 'libnvdimm-for-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 4bf5e361
      Linus Torvalds authored
      Pull libnvdimm updayes from Vishal Verma:
       "You'd normally receive this pull request from Dan Williams, but he's
        busy watching a newborn (Congrats Dan!), so I'm watching libnvdimm
        this cycle.
      
        This adds a new feature in libnvdimm - 'Runtime Firmware Activation',
        and a few small cleanups and fixes in libnvdimm and DAX. I'd
        originally intended to make separate topic-based pull requests - one
        for libnvdimm, and one for DAX, but some of the DAX material fell out
        since it wasn't quite ready.
      
        Summary:
      
         - add 'Runtime Firmware Activation' support for NVDIMMs that
           advertise the relevant capability
      
         - misc libnvdimm and DAX cleanups"
      
      * tag 'libnvdimm-for-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        libnvdimm/security: ensure sysfs poll thread woke up and fetch updated attr
        libnvdimm/security: the 'security' attr never show 'overwrite' state
        libnvdimm/security: fix a typo
        ACPI: NFIT: Fix ARS zero-sized allocation
        dax: Fix incorrect argument passed to xas_set_err()
        ACPI: NFIT: Add runtime firmware activate support
        PM, libnvdimm: Add runtime firmware activation support
        libnvdimm: Convert to DEVICE_ATTR_ADMIN_RO()
        drivers/dax: Expand lock scope to cover the use of addresses
        fs/dax: Remove unused size parameter
        dax: print error message by pr_info() in __generic_fsdax_supported()
        driver-core: Introduce DEVICE_ATTR_ADMIN_{RO,RW}
        tools/testing/nvdimm: Emulate firmware activation commands
        tools/testing/nvdimm: Prepare nfit_ctl_test() for ND_CMD_CALL emulation
        tools/testing/nvdimm: Add command debug messages
        tools/testing/nvdimm: Cleanup dimm index passing
        ACPI: NFIT: Define runtime firmware activation commands
        ACPI: NFIT: Move bus_dsm_mask out of generic nvdimm_bus_descriptor
        libnvdimm: Validate command family indices
      4bf5e361
    • Johannes Thumshirn's avatar
      zonefs: update documentation to reflect zone size vs capacity · 4c96870e
      Johannes Thumshirn authored
      Update the zonefs documentation to reflect the difference between a zone's
      size and it's capacity.
      
      The maximum file size in zonefs is the zones capacity, for ZBC and ZAC
      based devices, which do not have a separate zone capacity, the zone
      capacity is equal to the zone size.
      Signed-off-by: default avatarJohannes Thumshirn <johannes.thumshirn@wdc.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
      4c96870e
    • Johannes Thumshirn's avatar
      zonefs: add zone-capacity support · e3c3155b
      Johannes Thumshirn authored
      In the zoned storage model, the sectors within a zone are typically all
      writeable. With the introduction of the Zoned Namespace (ZNS) Command
      Set in the NVM Express organization, the model was extended to have a
      specific writeable capacity.
      
      This zone capacity can be less than the overall zone size for a NVMe ZNS
      device or null_blk in zoned-mode. For other ZBC/ZAC devices the zone
      capacity is always equal to the zone size.
      
      Use the zone capacity field instead from blk_zone for determining the
      maximum inode size and inode blocks in zonefs.
      Signed-off-by: default avatarJohannes Thumshirn <johannes.thumshirn@wdc.com>
      Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
      Signed-off-by: default avatarDamien Le Moal <damien.lemoal@wdc.com>
      e3c3155b
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-2020-08-10' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux · 00e4db51
      Linus Torvalds authored
      Pull perf tools updates from Arnaldo Carvalho de Melo:
       "New features:
      
         - Introduce controlling how 'perf stat' and 'perf record' works via a
           control file descriptor, allowing starting with events configured
           but disabled until commands are received via the control file
           descriptor. This allows, for instance for tools such as Intel VTune
           to make further use of perf as its Linux platform driver.
      
         - Improve 'perf record' to to register in a perf.data file header the
           clockid used to help later correlate things like syslog files and
           perf events recorded.
      
         - Add basic syscall and find_next_bit benchmarks to 'perf bench'.
      
         - Allow using computed metrics in calculating other metrics. For
           instance:
      
      	  {
      	    .metric_expr    = "l2_rqsts.demand_data_rd_hit + l2_rqsts.pf_hit + l2_rqsts.rfo_hit",
      	    .metric_name    = "DCache_L2_All_Hits",
      	  },
      	  {
      	    .metric_expr    = "max(l2_rqsts.all_demand_data_rd - l2_rqsts.demand_data_rd_hit, 0) + l2_rqsts.pf_miss + l2_rqsts.rfo_miss",
      	    .metric_name    = "DCache_L2_All_Miss",
      	  },
      	  {
      	     .metric_expr    = "dcache_l2_all_hits + dcache_l2_all_miss",
      	     .metric_name    = "DCache_L2_All",
      	  }
      
         - Add suport for 'd_ratio', '>' and '<' operators to the expression
           resolver used in calculating metrics in 'perf stat'.
      
        Support for new kernel features:
      
         - Support TEXT_POKE and KSYMBOL_TYPE_OOL perf metadata events to cope
           with things like ftrace, trampolines, i.e. changes in the kernel
           text that gets in the way of properly decoding Intel PT hardware
           traces, for instance.
      
        Intel PT:
      
         - Add various knobs to reduce the volume of Intel PT traces by
           reducing the level of details such as decoding just some types of
           packets (e.g., FUP/TIP, PSB+), also filtering by time range.
      
         - Add new itrace options (log flags to the 'd' option, error flags to
           the 'e' one, etc), controlling how Intel PT is transformed into
           perf events, document some missing options (e.g., how to synthesize
           callchains).
      
        BPF:
      
         - Properly report BPF errors when parsing events.
      
         - Do not setup side-band events if LIBBPF is not linked, fixing a
           segfault.
      
        Libraries:
      
         - Improvements to the libtraceevent plugin mechanism.
      
         - Improve libtracevent support for KVM trace events SVM exit reasons.
      
         - Add a libtracevent plugins for decoding syscalls/sys_enter_futex
           and for tlb_flush.
      
         - Ensure sample_period is set libpfm4 events in 'perf test'.
      
         - Fixup libperf namespacing, to make sure what is in libperf has the
           perf_ namespace while what is now only in tools/perf/ doesn't use
           that prefix.
      
        Arch specific:
      
         - Improve the testing of vendor events and metrics in 'perf test'.
      
         - Allow no ARM CoreSight hardware tracer sink to be specified on
           command line.
      
         - Fix arm_spe_x recording when mixed with other perf events.
      
         - Add s390 idle functions 'psw_idle' and 'psw_idle_exit' to list of
           idle symbols.
      
         - List kernel supplied event aliases for arm64 in 'perf list'.
      
         - Add support for extended register capability in PowerPC 9 and 10.
      
         - Added nest IMC power9 metric events.
      
        Miscellaneous:
      
         - No need to setup sample_regs_intr/sample_regs_user for dummy
           events.
      
         - Update various copies of kernel headers, some causing perf to
           handle new syscalls, MSRs, etc.
      
         - Improve usage of flex and yacc, enabling warnings and addressing
           the fallout.
      
         - Add missing '--output' option to 'perf kmem' so that it can pass it
           along to 'perf record'.
      
         - 'perf probe' fixes related to adding multiple probes on the same
           address for the same event.
      
         - Make 'perf probe' warn if the target function is a GNU indirect
           function.
      
         - Remove //anon mmap events from 'perf inject jit' to fix supporting
           both using ELF files for generated functions and the perf-PID.map
           approaches"
      
      * tag 'perf-tools-2020-08-10' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (144 commits)
        perf record: Skip side-band event setup if HAVE_LIBBPF_SUPPORT is not set
        perf tools powerpc: Add support for extended regs in power10
        perf tools powerpc: Add support for extended register capability
        tools headers UAPI: Sync drm/i915_drm.h with the kernel sources
        tools arch x86: Sync asm/cpufeatures.h with the kernel sources
        tools arch x86: Sync the msr-index.h copy with the kernel sources
        tools headers UAPI: update linux/in.h copy
        tools headers API: Update close_range affected files
        perf script: Add 'tod' field to display time of day
        perf script: Change the 'enum perf_output_field' enumerators to be 64 bits
        perf data: Add support to store time of day in CTF data conversion
        perf tools: Move clockid_res_ns under clock struct
        perf header: Store clock references for -k/--clockid option
        perf tools: Add clockid_name function
        perf clockid: Move parse_clockid() to new clockid object
        tools lib traceevent: Handle possible strdup() error in tep_add_plugin_path() API
        libtraceevent: Fixed description of tep_add_plugin_path() API
        libtraceevent: Fixed type in PRINT_FMT_STING
        libtraceevent: Fixed broken indentation in parse_ip4_print_args()
        libtraceevent: Improve error handling of tep_plugin_add_option() API
        ...
      00e4db51
    • Linus Torvalds's avatar
      Merge tag 'ktest-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest · ed3854ff
      Linus Torvalds authored
      Pull ktest updates from Steven Rostedt:
      
       - Have config-bisect save the good/bad configs at each step.
      
       - Show log file location even on success
      
       - Add PRE_TEST_DIE to kill test if the PRE_TEST fails
      
       - Add a NOT operator for conditionals in config file
      
       - Add the log output of the last test when emailing on failure.
      
       - Other minor clean ups and small fixes.
      
      * tag 'ktest-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest:
        ktest.pl: Fix spelling mistake "Cant" -> "Can't"
        ktest.pl: Change the logic to control the size of the log file emailed
        ktest.pl: Add MAIL_MAX_SIZE to limit the amount of log emailed
        ktest.pl: Add the log of last test in email on failure
        ktest.pl: Turn off buffering to the log file
        ktest.pl: Just open up the log file once
        ktest.pl: Add a NOT operator
        ktest.pl: Define PRE_TEST_DIE to kill the test if the PRE_TEST fails
        ktest.pl: Always show log file location if defined even on success
        ktest.pl: Have config-bisect save each config used in the bisect
      ed3854ff
    • Linus Torvalds's avatar
      Merge tag 'locking-urgent-2020-08-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 97d052ea
      Linus Torvalds authored
      Pull locking updates from Thomas Gleixner:
       "A set of locking fixes and updates:
      
         - Untangle the header spaghetti which causes build failures in
           various situations caused by the lockdep additions to seqcount to
           validate that the write side critical sections are non-preemptible.
      
         - The seqcount associated lock debug addons which were blocked by the
           above fallout.
      
           seqcount writers contrary to seqlock writers must be externally
           serialized, which usually happens via locking - except for strict
           per CPU seqcounts. As the lock is not part of the seqcount, lockdep
           cannot validate that the lock is held.
      
           This new debug mechanism adds the concept of associated locks.
           sequence count has now lock type variants and corresponding
           initializers which take a pointer to the associated lock used for
           writer serialization. If lockdep is enabled the pointer is stored
           and write_seqcount_begin() has a lockdep assertion to validate that
           the lock is held.
      
           Aside of the type and the initializer no other code changes are
           required at the seqcount usage sites. The rest of the seqcount API
           is unchanged and determines the type at compile time with the help
           of _Generic which is possible now that the minimal GCC version has
           been moved up.
      
           Adding this lockdep coverage unearthed a handful of seqcount bugs
           which have been addressed already independent of this.
      
           While generally useful this comes with a Trojan Horse twist: On RT
           kernels the write side critical section can become preemtible if
           the writers are serialized by an associated lock, which leads to
           the well known reader preempts writer livelock. RT prevents this by
           storing the associated lock pointer independent of lockdep in the
           seqcount and changing the reader side to block on the lock when a
           reader detects that a writer is in the write side critical section.
      
         - Conversion of seqcount usage sites to associated types and
           initializers"
      
      * tag 'locking-urgent-2020-08-10' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (25 commits)
        locking/seqlock, headers: Untangle the spaghetti monster
        locking, arch/ia64: Reduce <asm/smp.h> header dependencies by moving XTP bits into the new <asm/xtp.h> header
        x86/headers: Remove APIC headers from <asm/smp.h>
        seqcount: More consistent seqprop names
        seqcount: Compress SEQCNT_LOCKNAME_ZERO()
        seqlock: Fold seqcount_LOCKNAME_init() definition
        seqlock: Fold seqcount_LOCKNAME_t definition
        seqlock: s/__SEQ_LOCKDEP/__SEQ_LOCK/g
        hrtimer: Use sequence counter with associated raw spinlock
        kvm/eventfd: Use sequence counter with associated spinlock
        userfaultfd: Use sequence counter with associated spinlock
        NFSv4: Use sequence counter with associated spinlock
        iocost: Use sequence counter with associated spinlock
        raid5: Use sequence counter with associated spinlock
        vfs: Use sequence counter with associated spinlock
        timekeeping: Use sequence counter with associated raw spinlock
        xfrm: policy: Use sequence counters with associated lock
        netfilter: nft_set_rbtree: Use sequence counter with associated rwlock
        netfilter: conntrack: Use sequence counter with associated spinlock
        sched: tasks: Use sequence counter with associated spinlock
        ...
      97d052ea
    • Linus Torvalds's avatar
      Merge tag 'f2fs-for-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · 086ba2ec
      Linus Torvalds authored
      Pull f2fs updates from Jaegeuk Kim:
       "In this round, we've added two small interfaces: (a) GC_URGENT_LOW
        mode for performance and (b) F2FS_IOC_SEC_TRIM_FILE ioctl for
        security.
      
        The new GC mode allows Android to run some lower priority GCs in
        background, while new ioctl discards user information without race
        condition when the account is removed.
      
        In addition, some patches were merged to address latency-related
        issues. We've fixed some compression-related bug fixes as well as edge
        race conditions.
      
        Enhancements:
         - add GC_URGENT_LOW mode in gc_urgent
         - introduce F2FS_IOC_SEC_TRIM_FILE ioctl
         - bypass racy readahead to improve read latencies
         - shrink node_write lock coverage to avoid long latency
      
        Bug fixes:
         - fix missing compression flag control, i_size, and mount option
         - fix deadlock between quota writes and checkpoint
         - remove inode eviction path in synchronous path to avoid deadlock
         - fix to wait GCed compressed page writeback
         - fix a kernel panic in f2fs_is_compressed_page
         - check page dirty status before writeback
         - wait page writeback before update in node page write flow
         - fix a race condition between f2fs_write_end_io and f2fs_del_fsync_node_entry
      
        We've added some minor sanity checks and refactored trivial code
        blocks for better readability and debugging information"
      
      * tag 'f2fs-for-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (52 commits)
        f2fs: prepare a waiter before entering io_schedule
        f2fs: update_sit_entry: Make the judgment condition of f2fs_bug_on more intuitive
        f2fs: replace test_and_set/clear_bit() with set/clear_bit()
        f2fs: make file immutable even if releasing zero compression block
        f2fs: compress: disable compression mount option if compression is off
        f2fs: compress: add sanity check during compressed cluster read
        f2fs: use macro instead of f2fs verity version
        f2fs: fix deadlock between quota writes and checkpoint
        f2fs: correct comment of f2fs_exist_written_data
        f2fs: compress: delay temp page allocation
        f2fs: compress: fix to update isize when overwriting compressed file
        f2fs: space related cleanup
        f2fs: fix use-after-free issue
        f2fs: Change the type of f2fs_flush_inline_data() to void
        f2fs: add F2FS_IOC_SEC_TRIM_FILE ioctl
        f2fs: should avoid inode eviction in synchronous path
        f2fs: segment.h: delete a duplicated word
        f2fs: compress: fix to avoid memory leak on cc->cpages
        f2fs: use generic names for generic ioctls
        f2fs: don't keep meta inode pages used for compressed block migration
        ...
      086ba2ec
    • Linus Torvalds's avatar
      Merge tag 'gfs2-for-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2 · 8c2618a6
      Linus Torvalds authored
      Pull gfs2 updates from Andreas Gruenbacher:
      
       - Make sure transactions won't be started recursively in
         gfs2_block_zero_range (bug introduced in 5.4 when switching to
         iomap_zero_range)
      
       - Fix a glock holder refcount leak introduced in the iopen glock
         locking scheme rework merged in 5.8.
      
       - A few other small improvements (debugging, stack usage, comment
         fixes).
      
      * tag 'gfs2-for-5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/gfs2/linux-gfs2:
        gfs2: When gfs2_dirty_inode gets a glock error, dump the glock
        gfs2: Never call gfs2_block_zero_range with an open transaction
        gfs2: print details on transactions that aren't properly ended
        gfs2: Fix inaccurate comment
        fs: Fix typo in comment
        gfs2: Fix refcount leak in gfs2_glock_poke
        gfs2: Pass glock holder to gfs2_file_direct_{read,write}
        gfs2: Add some flags missing from glock output
      8c2618a6
    • Linus Torvalds's avatar
      Merge tag 'for-linus-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/ubifs · 163c3e3d
      Linus Torvalds authored
      Pull JFFS2, UBI and UBIFS updates from Richard Weinberger:
       "JFFS2:
         - Fix for a corner case while mounting
         - Fix for an use-after-free issue
      
        UBI:
         - Fix for a memory load while attaching
         - Don't produce an anchor PEB with fastmap being disabled
      
        UBIFS:
         - Fix for orphan inode logic
         - Spelling fixes
         - New mount option to specify filesystem version"
      
      * tag 'for-linus-5.9-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rw/ubifs:
        jffs2: fix UAF problem
        jffs2: fix jffs2 mounting failure
        ubifs: Fix wrong orphan node deletion in ubifs_jnl_update|rename
        ubi: fastmap: Free fastmap next anchor peb during detach
        ubi: fastmap: Don't produce the initial next anchor PEB when fastmap is disabled
        ubifs: misc.h: delete a duplicated word
        ubifs: add option to specify version for new file systems
      163c3e3d
  3. 10 Aug, 2020 15 commits
  4. 09 Aug, 2020 3 commits
    • Linus Torvalds's avatar
      Merge tag 'kbuild-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild · fc80c51f
      Linus Torvalds authored
      Pull Kbuild updates from Masahiro Yamada:
      
       - run the checker (e.g. sparse) after the compiler
      
       - remove unneeded cc-option tests for old compiler flags
      
       - fix tar-pkg to install dtbs
      
       - introduce ccflags-remove-y and asflags-remove-y syntax
      
       - allow to trace functions in sub-directories of lib/
      
       - introduce hostprogs-always-y and userprogs-always-y syntax
      
       - various Makefile cleanups
      
      * tag 'kbuild-v5.9' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
        kbuild: stop filtering out $(GCC_PLUGINS_CFLAGS) from cc-option base
        kbuild: include scripts/Makefile.* only when relevant CONFIG is enabled
        kbuild: introduce hostprogs-always-y and userprogs-always-y
        kbuild: sort hostprogs before passing it to ifneq
        kbuild: move host .so build rules to scripts/gcc-plugins/Makefile
        kbuild: Replace HTTP links with HTTPS ones
        kbuild: trace functions in subdirectories of lib/
        kbuild: introduce ccflags-remove-y and asflags-remove-y
        kbuild: do not export LDFLAGS_vmlinux
        kbuild: always create directories of targets
        powerpc/boot: add DTB to 'targets'
        kbuild: buildtar: add dtbs support
        kbuild: remove cc-option test of -ffreestanding
        kbuild: remove cc-option test of -fno-stack-protector
        Revert "kbuild: Create directory for target DTB"
        kbuild: run the checker after the compiler
      fc80c51f
    • Linus Torvalds's avatar
      Merge tag 'nfsd-5.9' of git://git.linux-nfs.org/projects/cel/cel-2.6 · 7a6b6044
      Linus Torvalds authored
      Pull NFS server updates from Chuck Lever:
       "Highlights:
         - Support for user extended attributes on NFS (RFC 8276)
         - Further reduce unnecessary NFSv4 delegation recalls
      
        Notable fixes:
         - Fix recent krb5p regression
         - Address a few resource leaks and a rare NULL dereference
      
        Other:
         - De-duplicate RPC/RDMA error handling and other utility functions
         - Replace storage and display of kernel memory addresses by tracepoints"
      
      * tag 'nfsd-5.9' of git://git.linux-nfs.org/projects/cel/cel-2.6: (38 commits)
        svcrdma: CM event handler clean up
        svcrdma: Remove transport reference counting
        svcrdma: Fix another Receive buffer leak
        SUNRPC: Refresh the show_rqstp_flags() macro
        nfsd: netns.h: delete a duplicated word
        SUNRPC: Fix ("SUNRPC: Add "@len" parameter to gss_unwrap()")
        nfsd: avoid a NULL dereference in __cld_pipe_upcall()
        nfsd4: a client's own opens needn't prevent delegations
        nfsd: Use seq_putc() in two functions
        svcrdma: Display chunk completion ID when posting a rw_ctxt
        svcrdma: Record send_ctxt completion ID in trace_svcrdma_post_send()
        svcrdma: Introduce Send completion IDs
        svcrdma: Record Receive completion ID in svc_rdma_decode_rqst
        svcrdma: Introduce Receive completion IDs
        svcrdma: Introduce infrastructure to support completion IDs
        svcrdma: Add common XDR encoders for RDMA and Read segments
        svcrdma: Add common XDR decoders for RDMA and Read segments
        SUNRPC: Add helpers for decoding list discriminators symbolically
        svcrdma: Remove declarations for functions long removed
        svcrdma: Clean up trace_svcrdma_send_failed() tracepoint
        ...
      7a6b6044
    • Linus Torvalds's avatar
      Merge branch 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 8d3e09b4
      Linus Torvalds authored
      Pull regset conversion fix from Al Viro:
       "Fix a regression from an unnoticed bisect hazard in the regset series.
      
        A bunch of old (aout, originally) primitives used by coredumps became
        dead code after fdpic conversion to regsets. Removal of that dead code
        had been the first commit in the followups to regset series;
        unfortunately, it happened to hide the bisect hazard on sh (extern for
        fpregs_get() had not been updated in the main series when it should
        have been; followup simply made fpregs_get() static). And without that
        followup commit this bisect hazard became breakage in the mainline"
      Tested-by: default avatarJohn Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>
      
      * 'fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        kill unused dump_fpu() instances
      8d3e09b4