1. 26 3月, 2021 17 次提交
    • D
      xfs: type verification is expensive · ec08c14b
      Dave Chinner 提交于
      From a concurrent rm -rf workload:
      
        41.04%  [kernel]  [k] xfs_dir3_leaf_check_int
         9.85%  [kernel]  [k] __xfs_dir3_data_check
         5.60%  [kernel]  [k] xfs_verify_ino
         5.32%  [kernel]  [k] xfs_agino_range
         4.21%  [kernel]  [k] memcpy
         3.06%  [kernel]  [k] xfs_errortag_test
         2.57%  [kernel]  [k] xfs_dir_ino_validate
         1.66%  [kernel]  [k] xfs_dir2_data_get_ftype
         1.17%  [kernel]  [k] do_raw_spin_lock
         1.11%  [kernel]  [k] xfs_verify_dir_ino
         0.84%  [kernel]  [k] __raw_callee_save___pv_queued_spin_unlock
         0.83%  [kernel]  [k] xfs_buf_find
         0.64%  [kernel]  [k] xfs_log_commit_cil
      
      THere's an awful lot of overhead in just range checking inode
      numbers in that, but each inode number check is not a lot of code.
      The total is a bit over 14.5% of the CPU time is spent validating
      inode numbers.
      
      The problem is that they deeply nested global scope functions so the
      overhead here is all in function call marshalling.
      
         text	   data	    bss	    dec	    hex	filename
         2077	      0	      0	   2077	    81d fs/xfs/libxfs/xfs_types.o.orig
         2197	      0	      0	   2197	    895	fs/xfs/libxfs/xfs_types.o
      
      There's a small increase in binary size by inlining all the local
      nested calls in the verifier functions, but the same workload now
      profiles as:
      
        40.69%  [kernel]  [k] xfs_dir3_leaf_check_int
        10.52%  [kernel]  [k] __xfs_dir3_data_check
         6.68%  [kernel]  [k] xfs_verify_dir_ino
         4.22%  [kernel]  [k] xfs_errortag_test
         4.15%  [kernel]  [k] memcpy
         3.53%  [kernel]  [k] xfs_dir_ino_validate
         1.87%  [kernel]  [k] xfs_dir2_data_get_ftype
         1.37%  [kernel]  [k] do_raw_spin_lock
         0.98%  [kernel]  [k] xfs_buf_find
         0.94%  [kernel]  [k] __raw_callee_save___pv_queued_spin_unlock
         0.73%  [kernel]  [k] xfs_log_commit_cil
      
      Now we only spend just over 10% of the time validing inode numbers
      for the same workload. Hence a few "inline" keyworks is good enough
      to reduce the validation overhead by 30%...
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Reviewed-by: NDarrick J. Wong <djwong@kernel.org>
      Signed-off-by: NDarrick J. Wong <djwong@kernel.org>
      ec08c14b
    • D
      xfs: optimise xfs_buf_item_size/format for contiguous regions · 929f8b0d
      Dave Chinner 提交于
      We process the buf_log_item bitmap one set bit at a time with
      xfs_next_bit() so we can detect if a region crosses a memcpy
      discontinuity in the buffer data address. This has massive overhead
      on large buffers (e.g. 64k directory blocks) because we do a lot of
      unnecessary checks and xfs_buf_offset() calls.
      
      For example, 16-way concurrent create workload on debug kernel
      running CPU bound has this at the top of the profile at ~120k
      create/s on 64kb directory block size:
      
        20.66%  [kernel]  [k] xfs_dir3_leaf_check_int
         7.10%  [kernel]  [k] memcpy
         6.22%  [kernel]  [k] xfs_next_bit
         3.55%  [kernel]  [k] xfs_buf_offset
         3.53%  [kernel]  [k] xfs_buf_item_format
         3.34%  [kernel]  [k] __pv_queued_spin_lock_slowpath
         3.04%  [kernel]  [k] do_raw_spin_lock
         2.84%  [kernel]  [k] xfs_buf_item_size_segment.isra.0
         2.31%  [kernel]  [k] __raw_callee_save___pv_queued_spin_unlock
         1.36%  [kernel]  [k] xfs_log_commit_cil
      
      (debug checks hurt large blocks)
      
      The only buffers with discontinuities in the data address are
      unmapped buffers, and they are only used for inode cluster buffers
      and only for logging unlinked pointers. IOWs, it is -rare- that we
      even need to detect a discontinuity in the buffer item formatting
      code.
      
      Optimise all this by using xfs_contig_bits() to find the size of
      the contiguous regions, then test for a discontiunity inside it. If
      we find one, do the slow "bit at a time" method we do now. If we
      don't, then just copy the entire contiguous range in one go.
      
      Profile now looks like:
      
        25.26%  [kernel]  [k] xfs_dir3_leaf_check_int
         9.25%  [kernel]  [k] memcpy
         5.01%  [kernel]  [k] __pv_queued_spin_lock_slowpath
         2.84%  [kernel]  [k] do_raw_spin_lock
         2.22%  [kernel]  [k] __raw_callee_save___pv_queued_spin_unlock
         1.88%  [kernel]  [k] xfs_buf_find
         1.53%  [kernel]  [k] memmove
         1.47%  [kernel]  [k] xfs_log_commit_cil
      ....
         0.34%  [kernel]  [k] xfs_buf_item_format
      ....
         0.21%  [kernel]  [k] xfs_buf_offset
      ....
         0.16%  [kernel]  [k] xfs_contig_bits
      ....
         0.13%  [kernel]  [k] xfs_buf_item_size_segment.isra.0
      
      So the bit scanning over for the dirty region tracking for the
      buffer log items is basically gone. Debug overhead hurts even more
      now...
      
      Perf comparison
      
      		dir block	 creates		unlink
      		size (kb)	time	rate		time
      
      Original	 4		4m08s	220k		 5m13s
      Original	64		7m21s	115k		13m25s
      Patched		 4		3m59s	230k		 5m03s
      Patched		64		6m23s	143k		12m33s
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Reviewed-by: NDarrick J. Wong <djwong@kernel.org>
      Reviewed-by: NBrian Foster <bfoster@redhat.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NDarrick J. Wong <djwong@kernel.org>
      929f8b0d
    • D
      xfs: xfs_buf_item_size_segment() needs to pass segment offset · c81ea11e
      Dave Chinner 提交于
      Otherwise it doesn't correctly calculate the number of vectors
      in a logged buffer that has a contiguous map that gets split into
      multiple regions because the range spans discontigous memory.
      
      Probably never been hit in practice - we don't log contiguous ranges
      on unmapped buffers (inode clusters).
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Reviewed-by: NDarrick J. Wong <djwong@kernel.org>
      Reviewed-by: NBrian Foster <bfoster@redhat.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NDarrick J. Wong <djwong@kernel.org>
      c81ea11e
    • D
      xfs: reduce buffer log item shadow allocations · accc661b
      Dave Chinner 提交于
      When we modify btrees repeatedly, we regularly increase the size of
      the logged region by a single chunk at a time (per transaction
      commit). This results in the CIL formatting code having to
      reallocate the log vector buffer every time the buffer dirty region
      grows. Hence over a typical 4kB btree buffer, we might grow the log
      vector 4096/128 = 32x over a short period where we repeatedly add
      or remove records to/from the buffer over a series of running
      transaction. This means we are doing 32 memory allocations and frees
      over this time during a performance critical path in the journal.
      
      The amount of space tracked in the CIL for the object is calculated
      during the ->iop_format() call for the buffer log item, but the
      buffer memory allocated for it is calculated by the ->iop_size()
      call. The size callout determines the size of the buffer, the format
      call determines the space used in the buffer.
      
      Hence we can oversize the buffer space required in the size
      calculation without impacting the amount of space used and accounted
      to the CIL for the changes being logged. This allows us to reduce
      the number of allocations by rounding up the buffer size to allow
      for future growth. This can safe a substantial amount of CPU time in
      this path:
      
      -   46.52%     2.02%  [kernel]                  [k] xfs_log_commit_cil
         - 44.49% xfs_log_commit_cil
            - 30.78% _raw_spin_lock
               - 30.75% do_raw_spin_lock
                    30.27% __pv_queued_spin_lock_slowpath
      
      (oh, ouch!)
      ....
            - 1.05% kmem_alloc_large
               - 1.02% kmem_alloc
                    0.94% __kmalloc
      
      This overhead here us what this patch is aimed at. After:
      
            - 0.76% kmem_alloc_large
               - 0.75% kmem_alloc
                    0.70% __kmalloc
      
      The size of 512 bytes is based on the bitmap chunk size being 128
      bytes and that random directory entry updates almost never require
      more than 3-4 128 byte regions to be logged in the directory block.
      
      The other observation is for per-ag btrees. When we are inserting
      into a new btree block, we'll pack it from the front. Hence the
      first few records land in the first 128 bytes so we log only 128
      bytes, the next 8-16 records land in the second region so now we log
      256 bytes. And so on.  If we are doing random updates, it will only
      allocate every 4 random 128 byte regions that are dirtied instead of
      every single one.
      
      Any larger than 512 bytes and I noticed an increase in memory
      footprint in my scalability workloads. Any less than this and I
      didn't really see any significant benefit to CPU usage.
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Reviewed-by: NChandan Babu R <chandanrlinux@gmail.com>
      Reviewed-by: NDarrick J. Wong <djwong@kernel.org>
      Reviewed-by: NBrian Foster <bfoster@redhat.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NDarrick J. Wong <djwong@kernel.org>
      Reviewed-by: NGao Xiang <hsiangkao@redhat.com>
      accc661b
    • D
      xfs: initialise attr fork on inode create · e6a688c3
      Dave Chinner 提交于
      When we allocate a new inode, we often need to add an attribute to
      the inode as part of the create. This can happen as a result of
      needing to add default ACLs or security labels before the inode is
      made visible to userspace.
      
      This is highly inefficient right now. We do the create transaction
      to allocate the inode, then we do an "add attr fork" transaction to
      modify the just created empty inode to set the inode fork offset to
      allow attributes to be stored, then we go and do the attribute
      creation.
      
      This means 3 transactions instead of 1 to allocate an inode, and
      this greatly increases the load on the CIL commit code, resulting in
      excessive contention on the CIL spin locks and performance
      degradation:
      
       18.99%  [kernel]                [k] __pv_queued_spin_lock_slowpath
        3.57%  [kernel]                [k] do_raw_spin_lock
        2.51%  [kernel]                [k] __raw_callee_save___pv_queued_spin_unlock
        2.48%  [kernel]                [k] memcpy
        2.34%  [kernel]                [k] xfs_log_commit_cil
      
      The typical profile resulting from running fsmark on a selinux enabled
      filesytem is adds this overhead to the create path:
      
        - 15.30% xfs_init_security
           - 15.23% security_inode_init_security
      	- 13.05% xfs_initxattrs
      	   - 12.94% xfs_attr_set
      	      - 6.75% xfs_bmap_add_attrfork
      		 - 5.51% xfs_trans_commit
      		    - 5.48% __xfs_trans_commit
      		       - 5.35% xfs_log_commit_cil
      			  - 3.86% _raw_spin_lock
      			     - do_raw_spin_lock
      				  __pv_queued_spin_lock_slowpath
      		 - 0.70% xfs_trans_alloc
      		      0.52% xfs_trans_reserve
      	      - 5.41% xfs_attr_set_args
      		 - 5.39% xfs_attr_set_shortform.constprop.0
      		    - 4.46% xfs_trans_commit
      		       - 4.46% __xfs_trans_commit
      			  - 4.33% xfs_log_commit_cil
      			     - 2.74% _raw_spin_lock
      				- do_raw_spin_lock
      				     __pv_queued_spin_lock_slowpath
      			       0.60% xfs_inode_item_format
      		      0.90% xfs_attr_try_sf_addname
      	- 1.99% selinux_inode_init_security
      	   - 1.02% security_sid_to_context_force
      	      - 1.00% security_sid_to_context_core
      		 - 0.92% sidtab_entry_to_string
      		    - 0.90% sidtab_sid2str_get
      			 0.59% sidtab_sid2str_put.part.0
      	   - 0.82% selinux_determine_inode_label
      	      - 0.77% security_transition_sid
      		   0.70% security_compute_sid.part.0
      
      And fsmark creation rate performance drops by ~25%. The key point to
      note here is that half the additional overhead comes from adding the
      attribute fork to the newly created inode. That's crazy, considering
      we can do this same thing at inode create time with a couple of
      lines of code and no extra overhead.
      
      So, if we know we are going to add an attribute immediately after
      creating the inode, let's just initialise the attribute fork inside
      the create transaction and chop that whole chunk of code out of
      the create fast path. This completely removes the performance
      drop caused by enabling SELinux, and the profile looks like:
      
           - 8.99% xfs_init_security
               - 9.00% security_inode_init_security
                  - 6.43% xfs_initxattrs
                     - 6.37% xfs_attr_set
                        - 5.45% xfs_attr_set_args
                           - 5.42% xfs_attr_set_shortform.constprop.0
                              - 4.51% xfs_trans_commit
                                 - 4.54% __xfs_trans_commit
                                    - 4.59% xfs_log_commit_cil
                                       - 2.67% _raw_spin_lock
                                          - 3.28% do_raw_spin_lock
                                               3.08% __pv_queued_spin_lock_slowpath
                                         0.66% xfs_inode_item_format
                              - 0.90% xfs_attr_try_sf_addname
                        - 0.60% xfs_trans_alloc
                  - 2.35% selinux_inode_init_security
                     - 1.25% security_sid_to_context_force
                        - 1.21% security_sid_to_context_core
                           - 1.19% sidtab_entry_to_string
                              - 1.20% sidtab_sid2str_get
                                 - 0.86% sidtab_sid2str_put.part.0
                                    - 0.62% _raw_spin_lock_irqsave
                                       - 0.77% do_raw_spin_lock
                                            __pv_queued_spin_lock_slowpath
                     - 0.84% selinux_determine_inode_label
                        - 0.83% security_transition_sid
                             0.86% security_compute_sid.part.0
      
      Which indicates the XFS overhead of creating the selinux xattr has
      been halved. This doesn't fix the CIL lock contention problem, just
      means it's not a limiting factor for this workload. Lock contention
      in the security subsystems is going to be an issue soon, though...
      Signed-off-by: NDave Chinner <dchinner@redhat.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      [djwong: fix compilation error when CONFIG_SECURITY=n]
      Reviewed-by: NDarrick J. Wong <djwong@kernel.org>
      Signed-off-by: NDarrick J. Wong <djwong@kernel.org>
      Reviewed-by: NGao Xiang <hsiangkao@redhat.com>
      e6a688c3
    • G
      xfs: ensure xfs_errortag_random_default matches XFS_ERRTAG_MAX · b2c2974b
      Gao Xiang 提交于
      Add the BUILD_BUG_ON to xfs_errortag_add() in order to make sure that
      the length of xfs_errortag_random_default matches XFS_ERRTAG_MAX when
      building.
      Signed-off-by: NGao Xiang <hsiangkao@redhat.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Reviewed-by: NDarrick J. Wong <djwong@kernel.org>
      Signed-off-by: NDarrick J. Wong <djwong@kernel.org>
      b2c2974b
    • P
      xfs: Skip repetitive warnings about mount options · 92cf7d36
      Pavel Reichl 提交于
      Skip the warnings about mount option being deprecated if we are
      remounting and deprecated option state is not changing.
      
      Bug: https://bugzilla.kernel.org/show_bug.cgi?id=211605Fix-suggested-by: NEric Sandeen <sandeen@redhat.com>
      Signed-off-by: NPavel Reichl <preichl@redhat.com>
      Reviewed-by: NDarrick J. Wong <djwong@kernel.org>
      Reviewed-by: NCarlos Maiolino <cmaiolino@redhat.com>
      Signed-off-by: NDarrick J. Wong <djwong@kernel.org>
      92cf7d36
    • P
      xfs: rename variable mp to parsing_mp · 0f98b4ec
      Pavel Reichl 提交于
      Rename mp variable to parsisng_mp so it is easy to distinguish
      between current mount point handle and handle for mount point
      which mount options are being parsed.
      Suggested-by: NEric Sandeen <sandeen@redhat.com>
      Signed-off-by: NPavel Reichl <preichl@redhat.com>
      Reviewed-by: NDarrick J. Wong <djwong@kernel.org>
      Reviewed-by: NCarlos Maiolino <cmaiolino@redhat.com>
      Signed-off-by: NDarrick J. Wong <djwong@kernel.org>
      0f98b4ec
    • D
      xfs: rename the blockgc workqueue · 3fef46fc
      Darrick J. Wong 提交于
      Since we're about to start using the blockgc workqueue to dispose of
      inactivated inodes, strip the "block" prefix from the name; now it's
      merely the general garbage collection (gc) workqueue.
      Signed-off-by: NDarrick J. Wong <djwong@kernel.org>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      3fef46fc
    • D
      xfs: prevent metadata files from being inactivated · 383e32b0
      Darrick J. Wong 提交于
      Files containing metadata (quota records, rt bitmap and summary info)
      are fully managed by the filesystem, which means that all resource
      cleanup must be explicit, not automatic.  This means that they should
      never be subjected automatic to post-eof truncation, nor should they be
      freed automatically even if the link count drops to zero.
      
      In other words, xfs_inactive() should leave these files alone.  Add the
      necessary predicate functions to make this happen.  This adds a second
      layer of prevention for the kinds of fs corruption that was fixed by
      commit f4c32e87.  If we ever decide to support removing metadata
      files, we should make all those metadata updates explicit.
      
      Rearrange the order of #includes to fix compiler errors, since
      xfs_mount.h is supposed to be included before xfs_inode.h
      
      Followup-to: f4c32e87 ("xfs: fix realtime bitmap/summary file truncation when growing rt volume")
      Signed-off-by: NDarrick J. Wong <djwong@kernel.org>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      383e32b0
    • D
      xfs: validate ag btree levels using the precomputed values · 973975b7
      Darrick J. Wong 提交于
      Use the AG btree height limits that we precomputed into the xfs_mount to
      validate the AG headers instead of using XFS_BTREE_MAXLEVELS.
      Signed-off-by: NDarrick J. Wong <djwong@kernel.org>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      973975b7
    • D
      xfs: remove return value from xchk_ag_btcur_init · f53acfac
      Darrick J. Wong 提交于
      Functions called by this function cannot fail, so get rid of the return
      and error checking.
      Signed-off-by: NDarrick J. Wong <djwong@kernel.org>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      f53acfac
    • D
      xfs: set the scrub AG number in xchk_ag_read_headers · de9d2a78
      Darrick J. Wong 提交于
      Since xchk_ag_read_headers initializes fields in struct xchk_ag, we
      might as well set the AG number and save the callers the trouble.
      Signed-off-by: NDarrick J. Wong <djwong@kernel.org>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      de9d2a78
    • D
      xfs: mark a data structure sick if there are cross-referencing errors · 9de4b514
      Darrick J. Wong 提交于
      If scrub observes cross-referencing errors while scanning a data
      structure, mark the data structure sick.  There's /something/
      inconsistent, even if we can't really tell what it is.
      
      Fixes: 4860a05d ("xfs: scrub/repair should update filesystem metadata health")
      Signed-off-by: NDarrick J. Wong <djwong@kernel.org>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      9de4b514
    • D
      xfs: bail out of scrub immediately if scan incomplete · 7716ee54
      Darrick J. Wong 提交于
      If a scrubber cannot complete its check and signals an incomplete check,
      we must bail out immediately without updating health status, trying a
      repair, etc. because our scan is incomplete and we therefore do not know
      much more.
      Signed-off-by: NDarrick J. Wong <djwong@kernel.org>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      7716ee54
    • D
      xfs: fix dquot scrub loop cancellation · 05237032
      Darrick J. Wong 提交于
      When xchk_quota_item figures out that it needs to terminate the scrub
      operation, it needs to return some error code to abort the loop, but
      instead it returns zero and the loop keeps running.  Fix this by making
      it use ECANCELED, and fix the other loop bailout condition check at the
      bottom too.
      Signed-off-by: NDarrick J. Wong <djwong@kernel.org>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      05237032
    • D
      xfs: fix uninitialized variables in xrep_calc_ag_resblks · 1aa26707
      Darrick J. Wong 提交于
      If we can't read the AGF header, we never actually set a value for
      freelen and usedlen.  These two variables are used to make the worst
      case estimate of btree size, so it's safe to set them to the AG size as
      a fallback.
      Signed-off-by: NDarrick J. Wong <djwong@kernel.org>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      1aa26707
  2. 25 3月, 2021 1 次提交
  3. 22 3月, 2021 11 次提交
    • L
      Linux 5.12-rc4 · 0d02ec6b
      Linus Torvalds 提交于
      0d02ec6b
    • L
      Merge tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · d7f5f1bd
      Linus Torvalds 提交于
      Pull ext4 fixes from Ted Ts'o:
       "Miscellaneous ext4 bug fixes for v5.12"
      
      * tag 'ext4_for_linus_stable' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4:
        ext4: initialize ret to suppress smatch warning
        ext4: stop inode update before return
        ext4: fix rename whiteout with fast commit
        ext4: fix timer use-after-free on failed mount
        ext4: fix potential error in ext4_do_update_inode
        ext4: do not try to set xattr into ea_inode if value is empty
        ext4: do not iput inode under running transaction in ext4_rename()
        ext4: find old entry again if failed to rename whiteout
        ext4: fix error handling in ext4_end_enable_verity()
        ext4: fix bh ref count on error paths
        fs/ext4: fix integer overflow in s_log_groups_per_flex
        ext4: add reclaim checks to xattr code
        ext4: shrink race window in ext4_should_retry_alloc()
      d7f5f1bd
    • L
      Merge tag 'io_uring-5.12-2021-03-21' of git://git.kernel.dk/linux-block · 2c41fab1
      Linus Torvalds 提交于
      Pull io_uring followup fixes from Jens Axboe:
      
       - The SIGSTOP change from Eric, so we properly ignore that for
         PF_IO_WORKER threads.
      
       - Disallow sending signals to PF_IO_WORKER threads in general, we're
         not interested in having them funnel back to the io_uring owning
         task.
      
       - Stable fix from Stefan, ensuring we properly break links for short
         send/sendmsg recv/recvmsg if MSG_WAITALL is set.
      
       - Catch and loop when needing to run task_work before a PF_IO_WORKER
         threads goes to sleep.
      
      * tag 'io_uring-5.12-2021-03-21' of git://git.kernel.dk/linux-block:
        io_uring: call req_set_fail_links() on short send[msg]()/recv[msg]() with MSG_WAITALL
        io-wq: ensure task is running before processing task_work
        signal: don't allow STOP on PF_IO_WORKER threads
        signal: don't allow sending any signals to PF_IO_WORKER threads
      2c41fab1
    • L
      Merge tag 'staging-5.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 1d4345eb
      Linus Torvalds 提交于
      Pull staging and IIO driver fixes from Greg KH:
       "Some small staging and IIO driver fixes:
      
         - MAINTAINERS changes for the move of the staging mailing list
      
         - comedi driver fixes to get request_irq() to work correctly
      
         - counter driver fixes for reported issues with iio devices
      
         - tiny iio driver fixes for reported issues.
      
        All of these have been in linux-next with no reported problems"
      
      * tag 'staging-5.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging:
        staging: vt665x: fix alignment constraints
        staging: comedi: cb_pcidas64: fix request_irq() warn
        staging: comedi: cb_pcidas: fix request_irq() warn
        MAINTAINERS: move the staging subsystem to lists.linux.dev
        MAINTAINERS: move some real subsystems off of the staging mailing list
        iio: gyro: mpu3050: Fix error handling in mpu3050_trigger_handler
        iio: hid-sensor-temperature: Fix issues of timestamp channel
        iio: hid-sensor-humidity: Fix alignment issue of timestamp channel
        counter: stm32-timer-cnt: fix ceiling miss-alignment with reload register
        counter: stm32-timer-cnt: fix ceiling write max value
        counter: stm32-timer-cnt: Report count function when SLAVE_MODE_DISABLED
        iio: adc: ab8500-gpadc: Fix off by 10 to 3
        iio:adc:stm32-adc: Add HAS_IOMEM dependency
        iio: adis16400: Fix an error code in adis16400_initial_setup()
        iio: adc: adi-axi-adc: add proper Kconfig dependencies
        iio: adc: ad7949: fix wrong ADC result due to incorrect bit mask
        iio: hid-sensor-prox: Fix scale not correct issue
        iio:adc:qcom-spmi-vadc: add default scale to LR_MUX2_BAT_ID channel
      1d4345eb
    • L
      Merge tag 'usb-5.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 3001c355
      Linus Torvalds 提交于
      Pull USB and Thunderbolt driver fixes from Greg KH:
       "Here are some small Thunderbolt and USB driver fixes for some reported
        issues:
      
         - thunderbolt fixes for minor problems
      
         - typec fixes for power issues
      
         - usb-storage quirk addition
      
         - usbip bugfix
      
         - dwc3 bugfix when stopping transfers
      
         - cdnsp bugfix for isoc transfers
      
         - gadget use-after-free fix
      
        All have been in linux-next this week with no reported issues"
      
      * tag 'usb-5.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb:
        usb: typec: tcpm: Skip sink_cap query only when VDM sm is busy
        usb: dwc3: gadget: Prevent EP queuing while stopping transfers
        usb: typec: tcpm: Invoke power_supply_changed for tcpm-source-psy-
        usb: typec: Remove vdo[3] part of tps6598x_rx_identity_reg struct
        usb-storage: Add quirk to defeat Kindle's automatic unload
        usb: gadget: configfs: Fix KASAN use-after-free
        usbip: Fix incorrect double assignment to udc->ud.tcp_rx
        usb: cdnsp: Fixes incorrect value in ISOC TRB
        thunderbolt: Increase runtime PM reference count on DP tunnel discovery
        thunderbolt: Initialize HopID IDAs in tb_switch_alloc()
      3001c355
    • L
      Merge tag 'irq-urgent-2021-03-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5ee96fa9
      Linus Torvalds 提交于
      Pull irq fix from Ingo Molnar:
       "A change to robustify force-threaded IRQ handlers to always disable
        interrupts, plus a DocBook fix.
      
        The force-threaded IRQ handler change has been accelerated from the
        normal schedule of such a change to keep the bad pattern/workaround of
        spin_lock_irqsave() in handlers or IRQF_NOTHREAD as a kludge from
        spreading"
      
      * tag 'irq-urgent-2021-03-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        genirq: Disable interrupts for force threaded handlers
        genirq/irq_sim: Fix typos in kernel doc (fnode -> fwnode)
      5ee96fa9
    • L
      Merge tag 'perf-urgent-2021-03-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 1c74516c
      Linus Torvalds 提交于
      Pull perf fixes from Ingo Molnar:
       "Boundary condition fixes for bugs unearthed by the perf fuzzer"
      
      * tag 'perf-urgent-2021-03-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/intel: Fix unchecked MSR access error caused by VLBR_EVENT
        perf/x86/intel: Fix a crash caused by zero PEBS status
      1c74516c
    • L
      Merge tag 'locking-urgent-2021-03-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5ba33b48
      Linus Torvalds 提交于
      Pull locking fixes from Ingo Molnar:
      
       - Get static calls & modules right. Hopefully.
      
       - WW mutex fixes
      
      * tag 'locking-urgent-2021-03-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        static_call: Fix static_call_update() sanity check
        static_call: Align static_call_is_init() patching condition
        static_call: Fix static_call_set_init()
        locking/ww_mutex: Fix acquire/release imbalance in ww_acquire_init()/ww_acquire_fini()
        locking/ww_mutex: Simplify use_ww_ctx & ww_ctx handling
      5ba33b48
    • L
      Merge tag 'efi-urgent-2021-03-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 92ed88cb
      Linus Torvalds 提交于
      Pull EFI fixes from Ingo Molnar:
      
       - another missing RT_PROP table related fix, to ensure that the
         efivarfs pseudo filesystem fails gracefully if variable services
         are unsupported
      
       - use the correct alignment for literal EFI GUIDs
      
       - fix a use after unmap issue in the memreserve code
      
      * tag 'efi-urgent-2021-03-21' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        efi: use 32-bit alignment for efi_guid_t literals
        firmware/efi: Fix a use after bug in efi_mem_reserve_persistent
        efivars: respect EFI_UNSUPPORTED return from firmware
      92ed88cb
    • L
      Merge tag 'x86_urgent_for_v5.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 5e3ddf96
      Linus Torvalds 提交于
      Pull x86 fixes from Borislav Petkov:
       "The freshest pile of shiny x86 fixes for 5.12:
      
         - Add the arch-specific mapping between physical and logical CPUs to
           fix devicetree-node lookups
      
         - Restore the IRQ2 ignore logic
      
         - Fix get_nr_restart_syscall() to return the correct restart syscall
           number. Split in a 4-patches set to avoid kABI breakage when
           backporting to dead kernels"
      
      * tag 'x86_urgent_for_v5.12-rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/apic/of: Fix CPU devicetree-node lookups
        x86/ioapic: Ignore IRQ2 again
        x86: Introduce restart_block->arch_data to remove TS_COMPAT_RESTART
        x86: Introduce TS_COMPAT_RESTART to fix get_nr_restart_syscall()
        x86: Move TS_COMPAT back to asm/thread_info.h
        kernel, fs: Introduce and use set_restart_fn() and arch_set_restart_data()
      5e3ddf96
    • L
      Merge tag 'powerpc-5.12-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · b35660a7
      Linus Torvalds 提交于
      Pull powerpc fixes from Michael Ellerman:
      
       - Fix a possible stack corruption and subsequent DLPAR failure in the
         rpadlpar_io PCI hotplug driver
      
       - Two build fixes for uncommon configurations
      
      Thanks to Christophe Leroy and Tyrel Datwyler.
      
      * tag 'powerpc-5.12-4' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        PCI: rpadlpar: Fix potential drc_name corruption in store functions
        powerpc: Force inlining of cpu_has_feature() to avoid build failure
        powerpc/vdso32: Add missing _restgpr_31_x to fix build failure
      b35660a7
  4. 21 3月, 2021 11 次提交