1. 05 6月, 2021 3 次提交
    • J
      dm space maps: improve performance with inc/dec on ranges of blocks · be500ed7
      Joe Thornber 提交于
      When we break sharing on btree nodes we typically need to increment
      the reference counts to every value held in the node.  This can
      cause a lot of repeated calls to the space maps.  Fix this by changing
      the interface to the space map inc/dec methods to take ranges of
      adjacent blocks to be operated on.
      
      For installations that are using a lot of snapshots this will reduce
      cpu overhead of fundamental operations such as provisioning a new block,
      or deleting a snapshot, by as much as 10 times.
      Signed-off-by: NJoe Thornber <ejt@redhat.com>
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      be500ed7
    • J
      dm space maps: don't reset space map allocation cursor when committing · 5faafc77
      Joe Thornber 提交于
      Current commit code resets the place where the search for free blocks
      will begin back to the start of the metadata device.  There are a couple
      of repercussions to this:
      
      - The first allocation after the commit is likely to take longer than
        normal as it searches for a free block in an area that is likely to
        have very few free blocks (if any).
      
      - Any free blocks it finds will have been recently freed.  Reusing them
        means we have fewer old copies of the metadata to aid recovery from
        hardware error.
      
      Fix these issues by leaving the cursor alone, only resetting when the
      search hits the end of the metadata device.
      Signed-off-by: NJoe Thornber <ejt@redhat.com>
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      5faafc77
    • J
      dm btree: improve btree residency · 4eafdb15
      Joe Thornber 提交于
      This commit improves the residency of btrees built in the metadata for
      dm-thin and dm-cache.
      
      When inserting a new entry into a full btree node the current code
      splits the node into two.  This can result in very many half full nodes,
      particularly if the insertions are occurring in an ascending order (as
      happens in dm-thin with large writes).
      
      With this commit, when we insert into a full node we first try and move
      some entries to a neighbouring node that has space, failing that it
      tries to split two neighbouring nodes into three.
      
      Results are given below.  'Residency' is how full nodes are on average
      as a percentage.  Average instruction counts for the operations
      are given to show the extra processing has little overhead.
      
                               +--------------------------+--------------------------+
                               |         Before           |         After            |
      +------------+-----------+-----------+--------------+-----------+--------------+
      |    Test    |   Phase   | Residency | Instructions | Residency | Instructions |
      +------------+-----------+-----------+--------------+-----------+--------------+
      | Ascending  | insert    |        50 |         1876 |        96 |         1930 |
      |            | overwrite |        50 |         1789 |        96 |         1746 |
      |            | lookup    |        50 |          778 |        96 |          778 |
      | Descending | insert    |        50 |         3024 |        96 |         3181 |
      |            | overwrite |        50 |         1789 |        96 |         1746 |
      |            | lookup    |        50 |          778 |        96 |          778 |
      | Random     | insert    |        68 |         3800 |        84 |         3736 |
      |            | overwrite |        68 |         4254 |        84 |         3911 |
      |            | lookup    |        68 |          779 |        84 |          779 |
      | Runs       | insert    |        63 |         2546 |        82 |         2815 |
      |            | overwrite |        63 |         2013 |        82 |         1986 |
      |            | lookup    |        63 |          778 |        82 |          779 |
      +------------+-----------+-----------+--------------+-----------+--------------+
      
         Ascending - keys are inserted in ascending order.
         Descending - keys are inserted in descending order.
         Random - keys are inserted in random order.
         Runs - keys are split into ascending runs of ~20 length.  Then
                the runs are shuffled.
      Signed-off-by: NJoe Thornber <ejt@redhat.com>
      Signed-off-by: Colin Ian King <colin.king@canonical.com> # contains_key() fix
      Signed-off-by: NMike Snitzer <snitzer@redhat.com>
      4eafdb15
  2. 26 5月, 2021 3 次提交
  3. 24 5月, 2021 6 次提交
  4. 23 5月, 2021 15 次提交
  5. 22 5月, 2021 9 次提交
    • L
      Merge tag 'xfs-5.13-fixes-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · a3969ef4
      Linus Torvalds 提交于
      Pull xfs fixes from Darrick Wong:
      
       - Fix some math errors in the realtime allocator when extent size hints
         are applied.
      
       - Fix unnecessary short writes to realtime files when free space is
         fragmented.
      
       - Fix a crash when using scrub tracepoints.
      
       - Restore ioctl uapi definitions that were accidentally removed in
         5.13-rc1.
      
      * tag 'xfs-5.13-fixes-1' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        xfs: restore old ioctl definitions
        xfs: fix deadlock retry tracepoint arguments
        xfs: retry allocations when locality-based search fails
        xfs: adjust rt allocation minlen when extszhint > rtextsize
      a3969ef4
    • L
      Merge tag 'for-5.13-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 45af60e7
      Linus Torvalds 提交于
      Pull btrfs fixes from David Sterba:
       "A few more fixes:
      
         - fix unaligned compressed writes in zoned mode
      
         - fix false positive lockdep warning when cloning inline extent
      
         - remove wrong BUG_ON in tree-log error handling"
      
      * tag 'for-5.13-rc2-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        btrfs: zoned: fix parallel compressed writes
        btrfs: zoned: pass start block to btrfs_use_zone_append
        btrfs: do not BUG_ON in link_to_fixup_dir
        btrfs: release path before starting transaction when cloning inline extent
      45af60e7
    • L
      Merge tag '5.13-rc3-smb3' of git://git.samba.org/sfrench/cifs-2.6 · 8bb14ca1
      Linus Torvalds 提交于
      Pull cifs fixes from Steve French:
       "Seven smb3 fixes: one for stable, three others fix problems found in
        testing handle leases, and a compounded request fix"
      
      * tag '5.13-rc3-smb3' of git://git.samba.org/sfrench/cifs-2.6:
        Fix KASAN identified use-after-free issue.
        Defer close only when lease is enabled.
        Fix kernel oops when CONFIG_DEBUG_ATOMIC_SLEEP is enabled.
        cifs: Fix inconsistent indenting
        cifs: fix memory leak in smb2_copychunk_range
        SMB3: incorrect file id in requests compounded with open
        cifs: remove deadstore in cifs_close_all_deferred_files()
      8bb14ca1
    • L
      Merge tag 'gpio-fixes-for-v5.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux · e8085a07
      Linus Torvalds 提交于
      Pull gpio fixes from Bartosz Golaszewski:
      
       - add missing MODULE_DEVICE_TABLE in gpio-cadence
      
       - fix a kernel doc validator error in gpio-xilinx
      
       - don't set parent IRQ affinity in gpio-tegra186
      
      * tag 'gpio-fixes-for-v5.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux:
        gpio: tegra186: Don't set parent IRQ affinity
        gpio: xilinx: Correct kernel doc for xgpio_probe()
        gpio: cadence: Add missing MODULE_DEVICE_TABLE
      e8085a07
    • L
      Merge tag 'mmc-v5.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc · 011ff616
      Linus Torvalds 提交于
      Pull MMC host fixes from Ulf Hansson:
      
       - Fix SD-card detection on Intel NUC10i3FNK4 (GL9755)
      
       - Replace WARN_ONCE with dev_warn_once for scatterlist offsets
      
       - Extend check of scatterlist size alignment with SD_IO_RW_EXTENDED
      
      * tag 'mmc-v5.13-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/ulfh/mmc:
        mmc: sdhci-pci-gli: increase 1.8V regulator wait
        mmc: meson-gx: also check SD_IO_RW_EXTENDED for scatterlist size alignment
        mmc: meson-gx: make replace WARN_ONCE with dev_warn_once about scatterlist offset alignment
      011ff616
    • L
      Merge tag 'devicetree-fixes-for-5.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 5328bf8b
      Linus Torvalds 提交于
      Pull devicetree fixes from Rob Herring:
      
       - Another batch of removing unneeded type references in schemas
      
       - Fix some out of date filename references
      
       - Convert renesas,drif schema to use DT graph schema
      
      * tag 'devicetree-fixes-for-5.13-2' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
        dt-bindings: More removals of type references on common properties
        dt-bindings: media: renesas,drif: Use graph schema
        leds: Fix reference file name of documentation
        dt-bindings: phy: cadence-torrent: update reference file of docs
      5328bf8b
    • L
      Merge branch 'for-v5.13-rc3' of... · a0e31f3a
      Linus Torvalds 提交于
      Merge branch 'for-v5.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace
      
      Pull siginfo fix from Eric Biederman:
       "During the merge window an issue with si_perf and the siginfo ABI came
        up. The alpha and sparc siginfo structure layout had changed with the
        addition of SIGTRAP TRAP_PERF and the new field si_perf.
      
        The reason only alpha and sparc were affected is that they are the
        only architectures that use si_trapno.
      
        Looking deeper it was discovered that si_trapno is used for only a few
        select signals on alpha and sparc, and that none of the other
        _sigfault fields past si_addr are used at all. Which means technically
        no regression on alpha and sparc.
      
        While the alignment concerns might be dismissed the abuse of si_errno
        by SIGTRAP TRAP_PERF does have the potential to cause regressions in
        existing userspace.
      
        While we still have time before userspace starts using and depending
        on the new definition siginfo for SIGTRAP TRAP_PERF this set of
        changes cleans up siginfo_t.
      
         - The si_trapno field is demoted from magic alpha and sparc status
           and made an ordinary union member of the _sigfault member of
           siginfo_t. Without moving it of course.
      
         - si_perf is replaced with si_perf_data and si_perf_type ending the
           abuse of si_errno.
      
         - Unnecessary additions to signalfd_siginfo are removed"
      
      * 'for-v5.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace:
        signalfd: Remove SIL_PERF_EVENT fields from signalfd_siginfo
        signal: Deliver all of the siginfo perf data in _perf
        signal: Factor force_sig_perf out of perf_sigtrap
        signal: Implement SIL_FAULT_TRAPNO
        siginfo: Move si_trapno inside the union inside _si_fault
      a0e31f3a
    • L
      Merge tag 'modules-for-v5.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux · c1f47ebc
      Linus Torvalds 提交于
      Pull module fix from Jessica Yu:
       "When CONFIG_MODULE_UNLOAD=n, module exit sections get sorted into the
        init region of the module in order to satisfy the requirements of
        jump_labels and static_calls.
      
        Previously, the exit section check was done in module_init_section(),
        but the solution there is not completely arch-indepedent as ARM is a
        special case and supplies its own module_init_section() function.
      
        Instead of pushing this logic further to the arch-specific code,
        switch to an arch-independent solution to check for module exit
        sections in the core module loader code in layout_sections() instead"
      
      * tag 'modules-for-v5.13-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux:
        module: check for exit sections in layout_sections() instead of module_init_section()
      c1f47ebc
    • L
      Merge tag 'for-linus' of git://github.com/openrisc/linux · 93bb533a
      Linus Torvalds 提交于
      Pull OpenRISC fixes from Stafford Horne:
       "A few fixes that came in around the time of the merge window"
      
      * tag 'for-linus' of git://github.com/openrisc/linux:
        openrisc: Define memory barrier mb
        openrisc: mm/init.c: remove unused variable 'end' in paging_init()
        openrisc: mm/init.c: remove unused memblock_region variable in map_ram()
        openrisc: Fix a memory leak
      93bb533a
  6. 21 5月, 2021 4 次提交
    • J
      xen-pciback: reconfigure also from backend watch handler · c81d3d24
      Jan Beulich 提交于
      When multiple PCI devices get assigned to a guest right at boot, libxl
      incrementally populates the backend tree. The writes for the first of
      the devices trigger the backend watch. In turn xen_pcibk_setup_backend()
      will set the XenBus state to Initialised, at which point no further
      reconfigures would happen unless a device got hotplugged. Arrange for
      reconfigure to also get triggered from the backend watch handler.
      Signed-off-by: NJan Beulich <jbeulich@suse.com>
      Cc: stable@vger.kernel.org
      Reviewed-by: NBoris Ostrovsky <boris.ostrovsky@oracle.com>
      Link: https://lore.kernel.org/r/2337cbd6-94b9-4187-9862-c03ea12e0c61@suse.comSigned-off-by: NJuergen Gross <jgross@suse.com>
      c81d3d24
    • J
      xen-pciback: redo VF placement in the virtual topology · 4ba50e7c
      Jan Beulich 提交于
      The commit referenced below was incomplete: It merely affected what
      would get written to the vdev-<N> xenstore node. The guest would still
      find the function at the original function number as long as
      __xen_pcibk_get_pci_dev() wouldn't be in sync. The same goes for AER wrt
      __xen_pcibk_get_pcifront_dev().
      
      Undo overriding the function to zero and instead make sure that VFs at
      function zero remain alone in their slot. This has the added benefit of
      improving overall capacity, considering that there's only a total of 32
      slots available right now (PCI segment and bus can both only ever be
      zero at present).
      
      Fixes: 8a5248fe ("xen PV passthru: assign SR-IOV virtual functions to separate virtual slots")
      Signed-off-by: NJan Beulich <jbeulich@suse.com>
      Cc: stable@vger.kernel.org
      Reviewed-by: NBoris Ostrovsky <boris.ostrovsky@oracle.com>
      Link: https://lore.kernel.org/r/8def783b-404c-3452-196d-3f3fd4d72c9e@suse.comSigned-off-by: NJuergen Gross <jgross@suse.com>
      4ba50e7c
    • J
      x86/Xen: swap NX determination and GDT setup on BSP · ae897fda
      Jan Beulich 提交于
      xen_setup_gdt(), via xen_load_gdt_boot(), wants to adjust page tables.
      For this to work when NX is not available, x86_configure_nx() needs to
      be called first.
      
      [jgross] Note that this is a revert of 36104cb9 ("x86/xen:
      Delay get_cpu_cap until stack canary is established"), which is possible
      now that we no longer support running as PV guest in 32-bit mode.
      
      Cc: <stable.vger.kernel.org> # 5.9
      Fixes: 36104cb9 ("x86/xen: Delay get_cpu_cap until stack canary is established")
      Reported-by: NOlaf Hering <olaf@aepfle.de>
      Signed-off-by: NJan Beulich <jbeulich@suse.com>
      Reviewed-by: NJuergen Gross <jgross@suse.com>
      
      Link: https://lore.kernel.org/r/12a866b0-9e89-59f7-ebeb-a2a6cec0987a@suse.comSigned-off-by: NJuergen Gross <jgross@suse.com>
      ae897fda
    • L
      Merge tag 'drm-fixes-2021-05-21-1' of git://anongit.freedesktop.org/drm/drm · 79a106fc
      Linus Torvalds 提交于
      Pull drm fixes from Dave Airlie:
       "Usual collection, mostly amdgpu and some i915 regression fixes. I
        nearly managed to hose my build/sign machine this week, but I
        recovered it just in time, and I even got clang12 built.
      
        dma-buf:
         - WARN fix
      
        amdgpu:
         - Fix downscaling ratio on DCN3.x
         - Fix for non-4K pages
         - PCO/RV compute hang fix
         - Dongle fix
         - Aldebaran codec query support
         - Refcount leak fix
         - Use after free fix
         - Navi12 golden settings updates
         - GPU reset fixes
      
        radeon:
         - Fix for imported BO handling
      
        i915:
         - Pin the L-shape quirked object as unshrinkable to fix crashes
         - Disable HiZ Raw Stall Optimization on broken gen7 to fix glitches,
           gfx corruption
         - GVT: Move mdev attribute groups into kvmgt module to fix kconfig
           deps issue
      
        exynos:
         - Correct kerneldoc of fimd_shadow_protect_win function
         - Drop redundant error messages"
      
      * tag 'drm-fixes-2021-05-21-1' of git://anongit.freedesktop.org/drm/drm:
        dma-buf: fix unintended pin/unpin warnings
        drm/amdgpu: stop touching sched.ready in the backend
        drm/amd/amdgpu: fix a potential deadlock in gpu reset
        drm/amdgpu: update sdma golden setting for Navi12
        drm/amdgpu: update gc golden setting for Navi12
        drm/amdgpu: Fix a use-after-free
        drm/amdgpu: add video_codecs query support for aldebaran
        drm/amd/amdgpu: fix refcount leak
        drm/amd/display: Disconnect non-DP with no EDID
        drm/amdgpu: disable 3DCGCG on picasso/raven1 to avoid compute hang
        drm/amdgpu: Fix GPU TLB update error when PAGE_SIZE > AMDGPU_PAGE_SIZE
        drm/radeon: use the dummy page for GART if needed
        drm/amd/display: Use the correct max downscaling value for DCN3.x family
        drm/i915/gt: Disable HiZ Raw Stall Optimization on broken gen7
        drm/i915/gem: Pin the L-shape quirked object as unshrinkable
        drm/exynos/decon5433: Remove redundant error printing in exynos5433_decon_probe()
        drm/exynos: Remove redundant error printing in exynos_dsi_probe()
        drm/exynos: correct exynos_drm_fimd kerneldoc
        drm/i915/gvt: Move mdev attribute groups into kvmgt module
      79a106fc