1. 03 8月, 2022 28 次提交
    • G
      md: unlock mddev before reap sync_thread in action_store · 9dfbdafd
      Guoqing Jiang 提交于
      Since the bug which commit 8b48ec23 ("md: don't unregister sync_thread
      with reconfig_mutex held") fixed is related with action_store path, other
      callers which reap sync_thread didn't need to be changed.
      
      Let's pull md_unregister_thread from md_reap_sync_thread, then fix previous
      bug with belows.
      
      1. unlock mddev before md_reap_sync_thread in action_store.
      2. save reshape_position before unlock, then restore it to ensure position
         not changed accidentally by others.
      Signed-off-by: NGuoqing Jiang <guoqing.jiang@linux.dev>
      Signed-off-by: NSong Liu <song@kernel.org>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      9dfbdafd
    • C
      md: Explicitly create command-line configured devices · 05ce7fb9
      Chris Webb 提交于
      Boot-time assembly of arrays with md= command-line arguments breaks when
      CONFIG_BLOCK_LEGACY_AUTOLOAD is unset. md_setup_drive() in md-autodetect.c
      calls blkdev_get_by_dev(), assuming this implicitly creates the block
      device.
      
      Fix this by attempting to md_alloc() the array first. As in the probe path,
      ignore any error as failure is caught by blkdev_get_by_dev() anyway.
      Signed-off-by: NChris Webb <chris@arachsys.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NSong Liu <song@kernel.org>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      05ce7fb9
    • L
      md: Notify sysfs sync_completed in md_reap_sync_thread() · 9973f0fa
      Logan Gunthorpe 提交于
      The mdadm test 07layouts randomly produces a kernel hung task deadlock.
      The deadlock is caused by the suspend_lo/suspend_hi files being set by
      the mdadm background process during reshape and not being cleared
      because the process hangs. (Leaving aside the issue of the fragility of
      freezing kernel tasks by buggy userspace processes...)
      
      When the background mdadm process hangs it, is waiting (without a
      timeout) on a change to the sync_completed file signalling that the
      reshape has completed. The process is woken up a couple times when
      the reshape finishes but it is woken up before MD_RECOVERY_RUNNING
      is cleared so sync_completed_show() reports 0 instead of "none".
      
      To fix this, notify the sysfs file in md_reap_sync_thread() after
      MD_RECOVERY_RUNNING has been cleared. This wakes up mdadm and causes
      it to continue and write to suspend_lo/suspend_hi to allow IO to
      continue.
      Signed-off-by: NLogan Gunthorpe <logang@deltatee.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NSong Liu <song@kernel.org>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      9973f0fa
    • L
      md: Ensure resync is reported after it starts · b368856a
      Logan Gunthorpe 提交于
      The 07layouts test in mdadm fails on some systems. The failure
      presents itself as the backup file not being removed before the next
      layout is grown into:
      
        mdadm: /dev/md0: cannot create backup file /tmp/md-test-backup:
            File exists
      
      This is because the background mdadm process, which is responsible for
      cleaning up this backup file gets into an infinite loop waiting for
      the reshape to start. mdadm checks the mdstat file if a reshape is
      going and, if it is not, it waits for an event on the file or times
      out in 5 seconds. On faster machines, the reshape may complete before
      the 5 seconds times out, and thus the background mdadm process loops
      waiting for a reshape to start that has already occurred.
      
      mdadm reads the mdstat file to start, but mdstat does not report that the
      reshape has begun, even though it has indeed begun. So the mdstat_wait()
      call (in mdadm) which polls on the mdstat file won't ever return until
      timing out.
      
      The reason mdstat reports the reshape has started is due to an issue
      in status_resync(). recovery_active is subtracted from curr_resync which
      will result in a value of zero for the first chunk of reshaped data, and
      the resulting read will report no reshape in progress.
      
      To fix this, if "resync - recovery_active" is an overloaded value, force
      the value to be MD_RESYNC_ACTIVE so the code reports a resync in progress.
      Signed-off-by: NLogan Gunthorpe <logang@deltatee.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NSong Liu <song@kernel.org>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      b368856a
    • L
      md: Use enum for overloaded magic numbers used by mddev->curr_resync · eac58d08
      Logan Gunthorpe 提交于
      Comments in the code document special values used for
      mddev->curr_resync. Make this clearer by using an enum to label these
      values.
      
      The only functional change is a couple places use the wrong comparison
      operator that implied 3 is another special value. They are all
      fixed to imply that 3 or greater is an active resync.
      Signed-off-by: NLogan Gunthorpe <logang@deltatee.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NSong Liu <song@kernel.org>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      eac58d08
    • L
      md/raid5-cache: Annotate pslot with __rcu notation · 6f28c5c3
      Logan Gunthorpe 提交于
      radix_tree_lookup_slot() and radix_tree_replace_slot() API expect the
      slot returned and looked up to be marked with __rcu. Otherwise
      sparse warnings are generated:
      
        drivers/md/raid5-cache.c:2939:23: warning: incorrect type in
      			assignment (different address spaces)
        drivers/md/raid5-cache.c:2939:23:    expected void **pslot
        drivers/md/raid5-cache.c:2939:23:    got void [noderef] __rcu **
      Signed-off-by: NLogan Gunthorpe <logang@deltatee.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NSong Liu <song@kernel.org>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      6f28c5c3
    • L
      md/raid5-cache: Clear conf->log after finishing work · b13015af
      Logan Gunthorpe 提交于
      A NULL pointer dereferlence on conf->log is seen randomly with
      the mdadm test 21raid5cache. Kasan reporst:
      
      BUG: KASAN: null-ptr-deref in r5l_reclaimable_space+0xf5/0x140
      Read of size 8 at addr 0000000000000860 by task md0_reclaim/3086
      
      Call Trace:
        dump_stack_lvl+0x5a/0x74
        kasan_report.cold+0x5f/0x1a9
        __asan_load8+0x69/0x90
        r5l_reclaimable_space+0xf5/0x140
        r5l_do_reclaim+0xf4/0x5e0
        r5l_reclaim_thread+0x69/0x3b0
        md_thread+0x1a2/0x2c0
        kthread+0x177/0x1b0
        ret_from_fork+0x22/0x30
      
      This is caused by conf->log being cleared in r5l_exit_log() before
      stopping the reclaim thread.
      
      To fix this, clear conf->log after the reclaim_thread is unregistered
      and after flushing disable_writeback_work.
      Signed-off-by: NLogan Gunthorpe <logang@deltatee.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NSong Liu <song@kernel.org>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      b13015af
    • L
      md/raid5-cache: Drop RCU usage of conf->log · 7769085c
      Logan Gunthorpe 提交于
      The only place that uses RCU to access conf->log is in
      r5l_log_disk_error(). This function is mostly used in the IO path
      and once with mddev_lock() held in raid5_change_consistency_policy().
      
      It is known that the IO will be suspended before the log is freed and
      r5l_log_exit() is called with the mddev_lock() held.
      
      This should mean that conf->log can not be freed while the function is
      being called, so the RCU protection is not necessary. Drop the
      rcu_read_lock() as well as the synchronize_rcu() and
      rcu_assign_pointer() usage.
      Signed-off-by: NLogan Gunthorpe <logang@deltatee.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NSong Liu <song@kernel.org>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      7769085c
    • L
      md/raid5-cache: Take mddev_lock in r5c_journal_mode_show() · 78ede6a0
      Logan Gunthorpe 提交于
      The mddev->lock spinlock doesn't protect against the removal of
      conf->log in r5l_exit_log() so conf->log may be freed before it
      is used.
      
      To fix this, take the mddev_lock() insteaad of the mddev->lock spinlock.
      Signed-off-by: NLogan Gunthorpe <logang@deltatee.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NSong Liu <song@kernel.org>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      78ede6a0
    • L
      md/raid5: suspend the array for calls to log_exit() · c629f345
      Logan Gunthorpe 提交于
      The raid5-cache code relies on there being no IO in flight when
      log_exit() is called. There are two places where this is not
      guaranteed so add mddev_suspend() and mddev_resume() calls to these
      sites.
      
      The site in raid5_change_consistency_policy() is in the error path,
      and another similar call site already has suspend/resume calls just
      below it; so it should be equally safe to make that change here.
      
      There is one remaining site in raid5_remove_disk() that we call log_exit()
      without suspending the array. Unfortunately, as the comment stated, we
      cannot call mddev_suspend from raid5d.
      Signed-off-by: NLogan Gunthorpe <logang@deltatee.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NSong Liu <song@kernel.org>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      c629f345
    • L
      md/raid5-ppl: Drop unused argument from ppl_handle_flush_request() · e0fccdaf
      Logan Gunthorpe 提交于
      ppl_handle_flush_request() takes an struct r5log argument but doesn't
      use it. It has no buisiness taking this argument as it is only used
      by raid5-cache and has no way to derference it anyway. Remove
      the argument.
      
      No functional changes intended.
      Signed-off-by: NLogan Gunthorpe <logang@deltatee.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NSong Liu <song@kernel.org>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      e0fccdaf
    • L
      md/raid5-log: Drop extern decorators for function prototypes · ed0c6a5f
      Logan Gunthorpe 提交于
      extern is not necessary and recommended against when defining prototype
      functions in headers. checkpatch.pl complains about these. So remove
      them.
      Signed-off-by: NLogan Gunthorpe <logang@deltatee.com>
      Reviewed-by: NChristoph Hellwig <hch@lst.de>
      Signed-off-by: NSong Liu <song@kernel.org>
      Signed-off-by: NJens Axboe <axboe@kernel.dk>
      ed0c6a5f
    • S
      d9544d25
    • L
      drbd: bm_page_async_io: fix spurious bitmap "IO error" on large volumes · 66757001
      Lars Ellenberg 提交于
      We usually do all our bitmap IO in units of PAGE_SIZE.
      
      With very small or oddly sized external meta data, or with
      PAGE_SIZE != 4k, it can happen that our last on-disk bitmap page
      is not fully PAGE_SIZE aligned, so we may need to adjust the size
      of the IO.
      
      We used to do that with
        min_t(unsigned int, PAGE_SIZE,
      	last_allowed_sector - current_offset);
      And for just the right diff, (unsigned int)(diff) will result in 0.
      
      A bio of length 0 will correctly be rejected with an IO error
      (and some scary WARN_ON_ONCE()) by the scsi layer.
      
      Do the calculation properly.
      Signed-off-by: NLars Ellenberg <lars.ellenberg@linbit.com>
      Signed-off-by: NChristoph Böhmwalder <christoph.boehmwalder@linbit.com>
      Link: https://lore.kernel.org/r/20220622204932.196830-1-christoph.boehmwalder@linbit.comSigned-off-by: NJens Axboe <axboe@kernel.dk>
      66757001
    • L
      Merge tag 'for-6.0/dm-changes' of... · 8374cfe6
      Linus Torvalds 提交于
      Merge tag 'for-6.0/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm
      
      Pull device mapper updates from Mike Snitzer:
      
       - Refactor DM core's mempool allocation so that it clearer by not being
         split acorss files.
      
       - Improve DM core's BLK_STS_DM_REQUEUE and BLK_STS_AGAIN handling.
      
       - Optimize DM core's more common bio splitting by eliminating the use
         of bio cloning with bio_split+bio_chain. Shift that cloning cost to
         the relatively unlikely dm_io requeue case that only occurs during
         error handling. Introduces dm_io_rewind() that will clone a bio that
         reflects the subset of the original bio that must be requeued.
      
       - Remove DM core's dm_table_get_num_targets() wrapper and audit all
         dm_table_get_target() callers.
      
       - Fix potential for OOM with DM writecache target by setting a default
         MAX_WRITEBACK_JOBS (set to 256MiB or 1/16 of total system memory,
         whichever is smaller).
      
       - Fix DM writecache target's stats that are reported through
         DM-specific table info.
      
       - Fix use-after-free crash in dm_sm_register_threshold_callback().
      
       - Refine DM core's Persistent Reservation handling in preparation for
         broader work Mike Christie is doing to add compatibility with
         Microsoft Windows Failover Cluster.
      
       - Fix various KASAN reported bugs in the DM raid target.
      
       - Fix DM raid target crash due to md_handle_request() bio splitting
         that recurses to block core without properly initializing the bio's
         bi_dev.
      
       - Fix some code comment typos and fix some Documentation formatting.
      
      * tag 'for-6.0/dm-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (29 commits)
        dm: fix dm-raid crash if md_handle_request() splits bio
        dm raid: fix address sanitizer warning in raid_resume
        dm raid: fix address sanitizer warning in raid_status
        dm: Start pr_preempt from the same starting path
        dm: Fix PR release handling for non All Registrants
        dm: Start pr_reserve from the same starting path
        dm: Allow dm_call_pr to be used for path searches
        dm: return early from dm_pr_call() if DM device is suspended
        dm thin: fix use-after-free crash in dm_sm_register_threshold_callback
        dm writecache: count number of blocks discarded, not number of discard bios
        dm writecache: count number of blocks written, not number of write bios
        dm writecache: count number of blocks read, not number of read bios
        dm writecache: return void from functions
        dm kcopyd: use __GFP_HIGHMEM when allocating pages
        dm writecache: set a default MAX_WRITEBACK_JOBS
        Documentation: dm writecache: Render status list as list
        Documentation: dm writecache: add blank line before optional parameters
        dm snapshot: fix typo in snapshot_map() comment
        dm raid: remove redundant "the" in parse_raid_params() comment
        dm cache: fix typo in 2 comment blocks
        ...
      8374cfe6
    • L
      Merge tag 'for-5.20/block-2022-07-29' of git://git.kernel.dk/linux-block · c013d0af
      Linus Torvalds 提交于
      Pull block updates from Jens Axboe:
      
       - Improve the type checking of request flags (Bart)
      
       - Ensure queue mapping for a single queues always picks the right queue
         (Bart)
      
       - Sanitize the io priority handling (Jan)
      
       - rq-qos race fix (Jinke)
      
       - Reserved tags handling improvements (John)
      
       - Separate memory alignment from file/disk offset aligment for O_DIRECT
         (Keith)
      
       - Add new ublk driver, userspace block driver using io_uring for
         communication with the userspace backend (Ming)
      
       - Use try_cmpxchg() to cleanup the code in various spots (Uros)
      
       - Finally remove bdevname() (Christoph)
      
       - Clean up the zoned device handling (Christoph)
      
       - Clean up independent access range support (Christoph)
      
       - Clean up and improve block sysfs handling (Christoph)
      
       - Clean up and improve teardown of block devices.
      
         This turns the usual two step process into something that is simpler
         to implement and handle in block drivers (Christoph)
      
       - Clean up chunk size handling (Christoph)
      
       - Misc cleanups and fixes (Bart, Bo, Dan, GuoYong, Jason, Keith, Liu,
         Ming, Sebastian, Yang, Ying)
      
      * tag 'for-5.20/block-2022-07-29' of git://git.kernel.dk/linux-block: (178 commits)
        ublk_drv: fix double shift bug
        ublk_drv: make sure that correct flags(features) returned to userspace
        ublk_drv: fix error handling of ublk_add_dev
        ublk_drv: fix lockdep warning
        block: remove __blk_get_queue
        block: call blk_mq_exit_queue from disk_release for never added disks
        blk-mq: fix error handling in __blk_mq_alloc_disk
        ublk: defer disk allocation
        ublk: rewrite ublk_ctrl_get_queue_affinity to not rely on hctx->cpumask
        ublk: fold __ublk_create_dev into ublk_ctrl_add_dev
        ublk: cleanup ublk_ctrl_uring_cmd
        ublk: simplify ublk_ch_open and ublk_ch_release
        ublk: remove the empty open and release block device operations
        ublk: remove UBLK_IO_F_PREFLUSH
        ublk: add a MAINTAINERS entry
        block: don't allow the same type rq_qos add more than once
        mmc: fix disk/queue leak in case of adding disk failure
        ublk_drv: fix an IS_ERR() vs NULL check
        ublk: remove UBLK_IO_F_INTEGRITY
        ublk_drv: remove unneeded semicolon
        ...
      c013d0af
    • L
      Merge tag 'for-5.20/io_uring-zerocopy-send-2022-07-29' of git://git.kernel.dk/linux-block · 42df1cbf
      Linus Torvalds 提交于
      Pull io_uring zerocopy support from Jens Axboe:
       "This adds support for efficient support for zerocopy sends through
        io_uring. Both ipv4 and ipv6 is supported, as well as both TCP and
        UDP.
      
        The core network changes to support this is in a stable branch from
        Jakub that both io_uring and net-next has pulled in, and the io_uring
        changes are layered on top of that.
      
        All of the work has been done by Pavel"
      
      * tag 'for-5.20/io_uring-zerocopy-send-2022-07-29' of git://git.kernel.dk/linux-block: (34 commits)
        io_uring: notification completion optimisation
        io_uring: export req alloc from core
        io_uring/net: use unsigned for flags
        io_uring/net: make page accounting more consistent
        io_uring/net: checks errors of zc mem accounting
        io_uring/net: improve io_get_notif_slot types
        selftests/io_uring: test zerocopy send
        io_uring: enable managed frags with register buffers
        io_uring: add zc notification flush requests
        io_uring: rename IORING_OP_FILES_UPDATE
        io_uring: flush notifiers after sendzc
        io_uring: sendzc with fixed buffers
        io_uring: allow to pass addr into sendzc
        io_uring: account locked pages for non-fixed zc
        io_uring: wire send zc request type
        io_uring: add notification slot registration
        io_uring: add rsrc referencing for notifiers
        io_uring: complete notifiers in tw
        io_uring: cache struct io_notif
        io_uring: add zc notification infrastructure
        ...
      42df1cbf
    • L
      Merge tag 'for-5.20/io_uring-buffered-writes-2022-07-29' of git://git.kernel.dk/linux-block · 98e24746
      Linus Torvalds 提交于
      Pull io_uring buffered writes support from Jens Axboe:
       "This contains support for buffered writes, specifically for XFS. btrfs
        is in progress, will be coming in the next release.
      
        io_uring does support buffered writes on any file type, but since the
        buffered write path just always -EAGAIN (or -EOPNOTSUPP) any attempt
        to do so if IOCB_NOWAIT is set, any buffered write will effectively be
        handled by io-wq offload. This isn't very efficient, and we even have
        specific code in io-wq to serialize buffered writes to the same inode
        to avoid further inefficiencies with thread offload.
      
        This is particularly sad since most buffered writes don't block, they
        simply copy data to a page and dirty it. With this pull request, we
        can handle buffered writes a lot more effiently.
      
        If balance_dirty_pages() needs to block, we back off on writes as
        indicated.
      
        This improves buffered write support by 2-3x.
      
        Jan Kara helped with the mm bits for this, and Stefan handled the
        fs/iomap/xfs/io_uring parts of it"
      
      * tag 'for-5.20/io_uring-buffered-writes-2022-07-29' of git://git.kernel.dk/linux-block:
        mm: honor FGP_NOWAIT for page cache page allocation
        xfs: Add async buffered write support
        xfs: Specify lockmode when calling xfs_ilock_for_iomap()
        io_uring: Add tracepoint for short writes
        io_uring: fix issue with io_write() not always undoing sb_start_write()
        io_uring: Add support for async buffered writes
        fs: Add async write file modification handling.
        fs: Split off inode_needs_update_time and __file_update_time
        fs: add __remove_file_privs() with flags parameter
        fs: add a FMODE_BUF_WASYNC flags for f_mode
        iomap: Return -EAGAIN from iomap_write_iter()
        iomap: Add async buffered write support
        iomap: Add flags parameter to iomap_page_create()
        mm: Add balance_dirty_pages_ratelimited_flags() function
        mm: Move updates of dirty_exceeded into one place
        mm: Move starting of background writeback into the main balancing loop
      98e24746
    • L
      Merge tag 'for-5.20/io_uring-2022-07-29' of git://git.kernel.dk/linux-block · b349b118
      Linus Torvalds 提交于
      Pull io_uring updates from Jens Axboe:
      
       - As per (valid) complaint in the last merge window, fs/io_uring.c has
         grown quite large these days. io_uring isn't really tied to fs
         either, as it supports a wide variety of functionality outside of
         that.
      
         Move the code to io_uring/ and split it into files that either
         implement a specific request type, and split some code into helpers
         as well. The code is organized a lot better like this, and io_uring.c
         is now < 4K LOC (me).
      
       - Deprecate the epoll_ctl opcode. It'll still work, just trigger a
         warning once if used. If we don't get any complaints on this, and I
         don't expect any, then we can fully remove it in a future release
         (me).
      
       - Improve the cancel hash locking (Hao)
      
       - kbuf cleanups (Hao)
      
       - Efficiency improvements to the task_work handling (Dylan, Pavel)
      
       - Provided buffer improvements (Dylan)
      
       - Add support for recv/recvmsg multishot support. This is similar to
         the accept (or poll) support for have for multishot, where a single
         SQE can trigger everytime data is received. For applications that
         expect to do more than a few receives on an instantiated socket, this
         greatly improves efficiency (Dylan).
      
       - Efficiency improvements for poll handling (Pavel)
      
       - Poll cancelation improvements (Pavel)
      
       - Allow specifiying a range for direct descriptor allocations (Pavel)
      
       - Cleanup the cqe32 handling (Pavel)
      
       - Move io_uring types to greatly cleanup the tracing (Pavel)
      
       - Tons of great code cleanups and improvements (Pavel)
      
       - Add a way to do sync cancelations rather than through the sqe -> cqe
         interface, as that's a lot easier to use for some use cases (me).
      
       - Add support to IORING_OP_MSG_RING for sending direct descriptors to a
         different ring. This avoids the usually problematic SCM case, as we
         disallow those. (me)
      
       - Make the per-command alloc cache we use for apoll generic, place
         limits on it, and use it for netmsg as well (me).
      
       - Various cleanups (me, Michal, Gustavo, Uros)
      
      * tag 'for-5.20/io_uring-2022-07-29' of git://git.kernel.dk/linux-block: (172 commits)
        io_uring: ensure REQ_F_ISREG is set async offload
        net: fix compat pointer in get_compat_msghdr()
        io_uring: Don't require reinitable percpu_ref
        io_uring: fix types in io_recvmsg_multishot_overflow
        io_uring: Use atomic_long_try_cmpxchg in __io_account_mem
        io_uring: support multishot in recvmsg
        net: copy from user before calling __get_compat_msghdr
        net: copy from user before calling __copy_msghdr
        io_uring: support 0 length iov in buffer select in compat
        io_uring: fix multishot ending when not polled
        io_uring: add netmsg cache
        io_uring: impose max limit on apoll cache
        io_uring: add abstraction around apoll cache
        io_uring: move apoll cache to poll.c
        io_uring: consolidate hash_locked io-wq handling
        io_uring: clear REQ_F_HASH_LOCKED on hash removal
        io_uring: don't race double poll setting REQ_F_ASYNC_DATA
        io_uring: don't miss setting REQ_F_DOUBLE_POLL
        io_uring: disable multishot recvmsg
        io_uring: only trace one of complete or overflow
        ...
      b349b118
    • L
      Merge branch 'turbostat' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux · efb28830
      Linus Torvalds 提交于
      Pull turbostat updates from Len Brown:
       "Only updating the turbostat tool here, no kernel changes"
      
      * 'turbostat' of git://git.kernel.org/pub/scm/linux/kernel/git/lenb/linux:
        tools/power turbostat: version 2022.07.28
        tools/power turbostat: do not decode ACC for ICX and SPR
        tools/power turbostat: fix SPR PC6 limits
        tools/power turbostat: cleanup 'automatic_cstate_conversion_probe()'
        tools/power turbostat: separate SPR from ICX
        tools/power turbosstat: fix comment
        tools/power turbostat: Support RAPTORLAKE P
        tools/power turbostat: add support for ALDERLAKE_N
        tools/power turbostat: dump secondary Turbo-Ratio-Limit
        tools/power turbostat: simplify dump_turbo_ratio_limits()
        tools/power turbostat: dump CPUID.7.EDX.Hybrid
        tools/power turbostat: update turbostat.8
        tools/power turbostat: Show uncore frequency
        tools/power turbostat: Fix file pointer leak
        tools/power turbostat: replace strncmp with single character compare
        tools/power turbostat: print the kernel boot commandline
        tools/power turbostat: Introduce support for RaptorLake
      efb28830
    • L
      Merge tag 'thermal-5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · c1dbe9a1
      Linus Torvalds 提交于
      Pull thermal control updates from Rafael Wysocki:
       "These start a rework of the handling of trip points in the thermal
        core, improve the cpufreq/devfreq cooling device handling, update some
        thermal control drivers and the tmon utility and clean up code.
      
        Specifics:
      
         - Consolidate the thermal core code by beginning to move the thermal
           trip structure from the thermal OF code as a generic structure to
           be used by the different sensors when registering a thermal zone
           (Daniel Lezcano).
      
         - Make per cpufreq / devfreq cooling device ops instead of using a
           global variable, fix comments and rework the trace information
           (Lukasz Luba).
      
         - Add the include/dt-bindings/thermal.h under the area covered by the
           thermal maintainer in the MAINTAINERS file (Lukas Bulwahn).
      
         - Improve the error output by giving the sensor identification when a
           thermal zone failed to initialize, the DT bindings by changing the
           positive logic and adding the r8a779f0 support on the rcar3
           (Wolfram Sang).
      
         - Convert the QCom tsens DT binding to the dtsformat format
           (Krzysztof Kozlowski).
      
         - Remove the pointless get_trend() function in the QCom, Ux500 and
           tegra thermal drivers, along with the unused DROP_FULL and
           RAISE_FULL trends definitions. Simplify the code by using clamp()
           macros (Daniel Lezcano).
      
         - Fix ref_table memory leak at probe time on the k3_j72xx bandgap
           (Bryan Brattlof).
      
         - Fix array underflow in prep_lookup_table (Dan Carpenter).
      
         - Add static annotation to the k3_j72xx_bandgap_j7* data structure
           (Jin Xiaoyun).
      
         - Fix typos in comments detected on sun8i by Coccinelle (Julia
           Lawall).
      
         - Fix typos in comments on rzg2l (Biju Das).
      
         - Remove as unnecessary call to dev_err() as the error is already
           printed by the failing function on u8500 (Yang Li).
      
         - Register the thermal zones as hwmon sensors for the Qcom thermal
           sensors (Dmitry Baryshkov).
      
         - Fix 'tmon' tool compilation issue by adding phtread.h include
           (Markus Mayer).
      
         - Fix typo in the comments for the 'tmon' tool (Slark Xiao).
      
         - Make the thermal core use ida_alloc()/free() directly instead of
           ida_simple_get()/ida_simple_remove() that have been deprecated
           (keliu).
      
         - Drop ACPI_FADT_LOW_POWER_S0 check from the Intel PCH thermal
           control driver (Rafael Wysocki)"
      
      * tag 'thermal-5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (39 commits)
        thermal/of: Initialize trip points separately
        thermal/of: Use thermal trips stored in the thermal zone
        thermal/core: Add thermal_trip in thermal_zone
        thermal/core: Rename 'trips' to 'num_trips'
        thermal/core: Move thermal_set_delay_jiffies to static
        thermal/core: Remove unneeded EXPORT_SYMBOLS
        thermal/of: Move thermal_trip structure to thermal.h
        thermal/of: Remove the device node pointer for thermal_trip
        thermal/of: Replace device node match with device node search
        thermal/core: Remove duplicate information when an error occurs
        thermal/core: Avoid calling ->get_trip_temp() unnecessarily
        thermal/tools/tmon: Fix typo 'the the' in comment
        thermal/tools/tmon: Include pthread and time headers in tmon.h
        thermal/ti-soc-thermal: Fix comment typo
        thermal/drivers/qcom/spmi-adc-tm5: Register thermal zones as hwmon sensors
        thermal/drivers/qcom/temp-alarm: Register thermal zones as hwmon sensors
        thermal/drivers/u8500: Remove unnecessary print function dev_err()
        thermal/drivers/rzg2l: Fix comments
        thermal/drivers/sun8i: Fix typo in comment
        thermal/drivers/k3_j72xx_bandgap: Make k3_j72xx_bandgap_j721e_data and k3_j72xx_bandgap_j7200_data static
        ...
      c1dbe9a1
    • L
      Merge tag 'pm-5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · a771ea64
      Linus Torvalds 提交于
      Pull power management updates from Rafael Wysocki:
       "These are mostly minor improvements all over including new CPU IDs for
        the Intel RAPL driver, an Energy Model rework to use micro-Watt as the
        power unit, cpufreq fixes and cleanus, cpuidle updates, devfreq
        updates, documentation cleanups and a new version of the pm-graph
        suite of utilities.
      
        Specifics:
      
         - Make cpufreq_show_cpus() more straightforward (Viresh Kumar).
      
         - Drop unnecessary CPU hotplug locking from store() used by cpufreq
           sysfs attributes (Viresh Kumar).
      
         - Make the ACPI cpufreq driver support the boost control interface on
           Zhaoxin/Centaur processors (Tony W Wang-oc).
      
         - Print a warning message on attempts to free an active cpufreq
           policy which should never happen (Viresh Kumar).
      
         - Fix grammar in the Kconfig help text for the loongson2 cpufreq
           driver (Randy Dunlap).
      
         - Use cpumask_var_t for an on-stack CPU mask in the ondemand cpufreq
           governor (Zhao Liu).
      
         - Add trace points for guest_halt_poll_ns grow/shrink to the haltpoll
           cpuidle driver (Eiichi Tsukata).
      
         - Modify intel_idle to treat C1 and C1E as independent idle states on
           Sapphire Rapids (Artem Bityutskiy).
      
         - Extend support for wakeirq to callback wrappers used during system
           suspend and resume (Ulf Hansson).
      
         - Defer waiting for device probe before loading a hibernation image
           till the first actual device access to avoid possible deadlocks
           reported by syzbot (Tetsuo Handa).
      
         - Unify device_init_wakeup() for PM_SLEEP and !PM_SLEEP (Bjorn
           Helgaas).
      
         - Add Raptor Lake-P to the list of processors supported by the Intel
           RAPL driver (George D Sworo).
      
         - Add Alder Lake-N and Raptor Lake-P to the list of processors for
           which Power Limit4 is supported in the Intel RAPL driver (Sumeet
           Pawnikar).
      
         - Make pm_genpd_remove() check genpd_debugfs_dir against NULL before
           attempting to remove it (Hsin-Yi Wang).
      
         - Change the Energy Model code to represent power in micro-Watts and
           adjust its users accordingly (Lukasz Luba).
      
         - Add new devfreq driver for Mediatek CCI (Cache Coherent
           Interconnect) (Johnson Wang).
      
         - Convert the Samsung Exynos SoC Bus bindings to DT schema of
           exynos-bus.c (Krzysztof Kozlowski).
      
         - Address kernel-doc warnings by adding the description for unused
           function parameters in devfreq core (Mauro Carvalho Chehab).
      
         - Use NULL to pass a null pointer rather than zero according to the
           function propotype in imx-bus.c (Colin Ian King).
      
         - Print error message instead of error interger value in
           tegra30-devfreq.c (Dmitry Osipenko).
      
         - Add checks to prevent setting negative frequency QoS limits for
           CPUs (Shivnandan Kumar).
      
         - Update the pm-graph suite of utilities to the latest revision 5.9
           including multiple improvements (Todd Brandt).
      
         - Drop pme_interrupt reference from the PCI power management
           documentation (Mario Limonciello)"
      
      * tag 'pm-5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (27 commits)
        powercap: RAPL: Add Power Limit4 support for Alder Lake-N and Raptor Lake-P
        PM: QoS: Add check to make sure CPU freq is non-negative
        PM: hibernate: defer device probing when resuming from hibernation
        intel_idle: make SPR C1 and C1E be independent
        cpufreq: ondemand: Use cpumask_var_t for on-stack cpu mask
        cpufreq: loongson2: fix Kconfig "its" grammar
        pm-graph v5.9
        cpufreq: Warn users while freeing active policy
        cpufreq: scmi: Support the power scale in micro-Watts in SCMI v3.1
        firmware: arm_scmi: Get detailed power scale from perf
        Documentation: EM: Switch to micro-Watts scale
        PM: EM: convert power field to micro-Watts precision and align drivers
        PM / devfreq: tegra30: Add error message for devm_devfreq_add_device()
        PM / devfreq: imx-bus: use NULL to pass a null pointer rather than zero
        PM / devfreq: shut up kernel-doc warnings
        dt-bindings: interconnect: samsung,exynos-bus: convert to dtschema
        PM / devfreq: mediatek: Introduce MediaTek CCI devfreq driver
        dt-bindings: interconnect: Add MediaTek CCI dt-bindings
        PM: domains: Ensure genpd_debugfs_dir exists before remove
        PM: runtime: Extend support for wakeirq for force_suspend|resume
        ...
      a771ea64
    • L
      Merge tag 'acpi-5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 8fa0db3a
      Linus Torvalds 提交于
      Pull ACPI updates from Rafael Wysocki:
       "These rework the handling of ACPI device objects to use the driver
        core facilities for managing child ones instead of some questionable
        home-grown ways without the requisite locking and reference counting,
        clean up the EC driver, improve suspend-to-idle handling on x86, add
        some systems to the ACPI backlight quirk list, fix some assorted
        issues, clean up code and improve documentation.
      
        Specifics:
      
         - Use facilities provided by the driver core and some additional
           helpers to handle the children of a given ACPI device object in
           multiple places instead of using the children and node list heads
           in struct acpi_device which is error prone (Rafael Wysocki).
      
         - Fix ACPI-related device reference counting issue in the hisi_lpc
           bus driver (Yang Yingliang).
      
         - Drop the children and node list heads that are not needed any more
           from struct acpi_device (Rafael Wysocki).
      
         - Drop driver member from struct acpi_device (Uwe Kleine-König).
      
         - Drop redundant check from acpi_device_remove() (Uwe Kleine-König).
      
         - Prepare the CPPC library for handling backwards-compatible future
           _CPC return package formats gracefully (Rafael Wysocki).
      
         - Clean up the ACPI EC driver after previous changes in it (Hans de
           Goede).
      
         - Drop leftover acpi_processor_get_limit_info() declaration (Riwen
           Lu).
      
         - Split out thermal initialization from ACPI PSS (Riwen Lu).
      
         - Annotate more functions in the ACPI CPU idle driver to live in the
           cpuidle section (Guilherme G. Piccoli).
      
         - Fix _EINJ vs "special purpose" EFI memory regions (Dan Williams).
      
         - Implement a better fix to avoid spamming the console with old error
           logs (Tony Luck).
      
         - Fix typo in a comment in the APEI code (Xiang wangx).
      
         - Save NVS memory during transitions into S3 on Lenovo G40-45 (Manyi
           Li).
      
         - Add support for upcoming AMD uPEP device ID AMDI008 to the ACPI
           suspend-to-idle driver for x86 platforms (Shyam Sundar S K).
      
         - Clean up checks related to the ACPI_FADT_LOW_POWER_S0 platform flag
           in the LPIT table driver and the suspend-to-idle driver for x86
           platforms (Rafael Wysocki).
      
         - Print information messages regarding declared LPS0 idle support in
           the platform firmware (Rafael Wysocki).
      
         - Fix missing check in register_device_clock() in the ACPI driver for
           Intel SoCs (huhai).
      
         - Fix ACS setup in the VIOT table parser (Eric Auger).
      
         - Skip IRQ override on AMD Zen platforms where it's harmful
           (Chuanhong Guo).
      
         - Use native backlight on Dell Inspiron N4010 (Hans de Goede).
      
         - Use native backlight on some TongFang devices (Werner Sembach).
      
         - Drop X86 dependency from the ACPI backlight driver Kconfig (Riwen
           Lu).
      
         - Shorten the quirk list in the ACPI backlight driver by identifying
           Clevo by board_name only (Werner Sembach).
      
         - Remove useless NULL pointer checks from 2 ACPI PCI link management
           functions (Andrey Strachuk).
      
         - Fix obsolete example in the ACPI EINJ documentation (Qifu Zhang).
      
         - Update links and references to _DSD-related documents (Sudeep
           Holla)"
      
      * tag 'acpi-5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (46 commits)
        ACPI/PCI: Remove useless NULL pointer checks
        ACPI: CPPC: Do not prevent CPPC from working in the future
        ACPI: PM: x86: Print messages regarding LPS0 idle support
        ACPI: resource: skip IRQ override on AMD Zen platforms
        Documentation: ACPI: EINJ: Fix obsolete example
        ACPI: video: Use native backlight on Dell Inspiron N4010
        ACPI: PM: s2idle: Use LPS0 idle if ACPI_FADT_LOW_POWER_S0 is unset
        Revert "ACPI / PM: LPIT: Register sysfs attributes based on FADT"
        ACPI: video: Shortening quirk list by identifying Clevo by board_name only
        ACPI: video: Force backlight native for some TongFang devices
        ACPI: PM: s2idle: Add support for upcoming AMD uPEP HID AMDI008
        ACPI: VIOT: Fix ACS setup
        ACPI: bus: Drop unused list heads from struct acpi_device
        hisi_lpc: Use acpi_dev_for_each_child()
        bus: hisi_lpc: fix missing platform_device_put() in hisi_lpc_acpi_probe()
        ACPI: bus: Drop driver member of struct acpi_device
        ACPI: bus: Drop redundant check in acpi_device_remove()
        ACPI: APEI: Fix _EINJ vs EFI_MEMORY_SP
        ACPI: LPSS: Fix missing check in register_device_clock()
        ACPI: APEI: Better fix to avoid spamming the console with old error logs
        ...
      8fa0db3a
    • L
      Merge tag 'hwmon-for-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging · 64ae88ff
      Linus Torvalds 提交于
      Pull hwmon updates from Guenter Roeck:
      
       - Substantial rewrite of lm90 driver to support several additional
         chips and improve support for existing chips.
      
       - Add support of ROG ZENITH II EXTREME, Maximus XI Hero, and
         Strix Z690-a D4 to asus-ec-sensors driver
      
       - Add support of F71858AD to f71882fg driver
      
       - Add support of Aquacomputer Quadro to aquacomputer_d5next driver
      
       - Improved assembler code and add support for Dell G5 5590 as well as
         XPS 13 7390 in dell-smm driver
      
       - Add support for ASUS TUF GAMING B550-PLUS WIFI II to nct775 driver
      
       - Add support for IEEE 754 half precision to PMBus core. Also support
         for Analog Devices LT7182S, improve regulator support, and report
         various MFR register values in debugfs.
      
       - Various other minor improvements and fixes
      
      * tag 'hwmon-for-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging: (85 commits)
        hwmon: (aquacomputer_d5next) Add support for Aquacomputer Quadro fan controller
        hwmon: (dell-smm) Improve documentation
        hwmon: (nct6775) add ASUS TUF GAMING B550-PLUS WIFI II
        hwmon: (occ) Replace open-coded variant of %*phN specifier
        hwmon: (sht15) Fix wrong assumptions in device remove callback
        hwmon: (aquacomputer_d5next) Add support for reading the +12V voltage sensor on D5 Next
        hwmon: (tps23861) fix byte order in current and voltage registers
        hwmon: (aspeed-pwm-tacho) increase fan tach period (again)
        hwmon: (aquacomputer_d5next) Add D5 Next fan control support
        hwmon: (mcp3021) improve driver support for newer hwmon interface
        hwmon: (asus-ec-sensors) add definitions for ROG ZENITH II EXTREME
        hwmon: (aquacomputer_d5next) Move device-specific data into struct aqc_data
        hwmon: (asus-ec-sensors) add missing sensors for X570-I GAMING
        hwmon: (drivetemp) Add module alias
        hwmon: (asus_wmi_sensors) Save a few bytes of memory
        hwmon: (lm90) Use worker for alarm notifications
        hwmon: (asus-ec-sensors) add support for Maximus XI Hero
        hwmon: (dell-smm) Improve assembly code
        hwmon: (pmbus/ltc2978) Set voltage resolution
        hwmon: (pmbus) Add list_voltage to pmbus ops
        ...
      64ae88ff
    • L
      Merge tag 'pwm/for-5.20-rc1' of... · 530c28df
      Linus Torvalds 提交于
      Merge tag 'pwm/for-5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm
      
      Pull pwm updates from Thierry Reding:
       "After v5.19 had all drivers converted to the new atomic API and nobody
        has reported any breakage, this set of changes starts by dropping the
        legacy support.
      
        Some existing drivers get improvements and broader chip support and a
        new driver is added that emulates a PWM controller using a clock
        output.
      
        Other than that there's the usual bits of cleanups and minor fixes"
      
      * tag 'pwm/for-5.20-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/thierry.reding/linux-pwm: (21 commits)
        pwm: lpc18xx: Fix period handling
        pwm: lpc18xx: Convert to use dev_err_probe()
        pwm: twl-led: Document some limitations and link to the reference manual
        MAINTAINERS: Remove myself as PWM maintainer
        MAINTAINERS: Add include/dt-bindings/pwm to PWM SUBSYSTEM
        dt-bindings: pwm: mediatek: Add compatible string for MT8195
        pwm: Add clock based PWM output driver
        dt-bindings: pwm: Document clk based PWM controller
        pwm: sifive: Shut down hardware only after pwmchip_remove() completed
        pwm: sifive: Ensure the clk is enabled exactly once per running PWM
        pwm: sifive: Simplify clk handling
        pwm: sifive: Enable clk only after period check in .apply()
        pwm: sifive: Reduce time the controller lock is held
        pwm: sifive: Fold pwm_sifive_enable() into its only caller
        pwm: sifive: Simplify offset calculation for PWMCMP registers
        pwm: mediatek: Add MT8365 support
        dt-bindings: pwm: Add MT8365 SoC binding
        pwm: Drop unused forward declaration from pwm.h
        pwm: Reorder header file to get rid of struct pwm_capture forward declaration
        pwm: atmel-tcb: Fix typo in comment
        ...
      530c28df
    • L
      Merge tag 'spi-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · 0805c6fb
      Linus Torvalds 提交于
      Pull spi updates from Mark Brown:
       "The big update this time around is some excellent work from David
        Jander who went through the fast path and really eliminated overheads,
        meaning that we are seeing a huge reduction in the time spent between
        transfers for single threaded clients.
      
        Benchmarking has been coming out at about a halving of overhead which
        is clearly visible in system level usage that stresses SPI like some
        CAN and IIO applications, especially with small transfers. Thanks to
        David for taking the time to drill down into this and push the work
        upstream.
      
        Otherwise there's been a bunch of new device support and the usual
        updates.
      
         - Optimisation of the fast path, particularly around the number and
           types of locking operations, from David Jander.
      
         - Support for Arbel NPCM845, HP GXP, Intel Meteor Lake and Thunder
           Bay, MediaTek MT8188 and MT8365, Microchip FPGAs, nVidia Tegra 241
           and Samsung Exynos Auto v9 and 4210"
      
      * tag 'spi-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (97 commits)
        MAINTAINERS: add spi support to GXP
        spi: dt-bindings: add documentation for hpe,gxp-spifi
        spi: spi-gxp: Add support for HPE GXP SoCs
        spi: a3700: support BE for AC5 SPI driver
        spi/panel: dt-bindings: drop CPHA and CPOL from common properties
        spi: bcm2835: enable shared interrupt support
        spi: dt-bindings: spi-controller: correct example indentation
        spi: dt-bindings: qcom,spi-geni-qcom: allow three interconnects
        spi: npcm-fiu: Add NPCM8XX support
        dt-binding: spi: Add npcm845 compatible to npcm-fiu document
        spi: npcm-fiu: Modify direct read dummy configuration
        spi: atmel: remove #ifdef CONFIG_{PM, SLEEP}
        spi: dt-bindings: Add compatible for MediaTek MT8188
        spi: dt-bindings: mediatek,spi-mtk-nor: Update bindings for nor flash
        spi: dt-bindings: atmel,at91rm9200-spi: convert to json-schema
        spi: tegra20-slink: fix UAF in tegra_slink_remove()
        spi: Fix simplification of devm_spi_register_controller
        spi: microchip-core: switch to use dev_err_probe()
        spi: microchip-core: switch to use devm_spi_alloc_master()
        spi: microchip-core: fix UAF in mchp_corespi_remove()
        ...
      0805c6fb
    • L
      Merge tag 'regulator-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator · 416e05e5
      Linus Torvalds 提交于
      Pull regulator updates from Mark Brown:
       "This has been a fairly quiet release for the regulator API, a few new
        drivers and a small API update:
      
         - Support for specifying an initial load as part of requesting
           regulators through the bulk API
      
         - Support for Maxim MAX597x, Qualcomm PM8074, PM8909 and Realtek
           RT5120 devices"
      
      * tag 'regulator-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator: (35 commits)
        regulator: core: Allow drivers to define their init data as const
        regulator: core: Allow specifying an initial load w/ the bulk API
        regulator: mt6380: Fix unused array warning
        regulator: Add missing type for 'regulator-microvolt-offset'
        regulator: core: Fix off-on-delay-us for always-on/boot-on regulators
        regulator: of: Fix refcount leak bug in of_get_regulation_constraints()
        regulator: pwm: Update Lee Jones' email address
        regulator: max597x: Don't return uninitialized variable in .probe
        regulator: qcom,spmi-regulator: add PMP8074 PMIC
        regulator: qcom,spmi-regulator: Convert to dtschema
        regulator: qcom_spmi: add support for PMP8074 regulators
        regulator: qcom_spmi: add support for HT_P600
        regulator: qcom_spmi: add support for HT_P150
        regulator: max597x: Remove unused including <linux/version.h>
        regulator: Fix MFD_MAX597X dependency
        regulator: Fix parameter declaration and spelling mistake.
        regulator: max597x: Add support for max597x regulator
        regulator: scmi: Add missing of_node_get()
        regulator: qcom_smd: Add PM8909 RPM regulators
        regulator: dt-bindings: qcom,smd-rpm: Add PM8909
        ...
      416e05e5
    • L
      Merge tag 'regmap-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap · 2e7a9515
      Linus Torvalds 提交于
      Pull regmap updates from Mark Brown:
       "The big thing this release is a big cleanup of the interrupt code from
        Aidan MacDonald, plus a few new API updates:
      
         - Rework of the interrupt code, making it much simpler and easier to
           extend
      
         - Support for device specific update bits operations with devices
           that otherwise use bitstream interfaces
      
         - Support for bit operations on fields as well as whole registers"
      
      * tag 'regmap-v5.20' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regmap:
        regmap: permit to set reg_update_bits with bulk implementation
        regmap: add WARN_ONCE when invalid mask is provided to regmap_field_init()
        regmap-irq: Fix bug in regmap_irq_get_irq_reg_linear()
        regmap: cache: Add extra parameter check in regcache_init
        regmap-irq: Deprecate the not_fixed_stride flag
        regmap-irq: Add get_irq_reg() callback
        regmap-irq: Fix inverted handling of unmask registers
        regmap-irq: Deprecate type registers and virtual registers
        regmap-irq: Introduce config registers for irq types
        regmap-irq: Refactor checks for status bulk read support
        regmap-irq: Remove mask_writeonly and regmap_irq_update_bits()
        regmap-irq: Remove inappropriate uses of regmap_irq_update_bits()
        regmap-irq: Remove an unnecessary restriction on type_in_mask
        regmap-irq: Cleanup sizeof(...) use in memory allocation
        regmap-irq: Remove unused type_reg_stride field
        regmap-irq: Convert bool bitfields to unsigned int
        regmap: Don't warn about cache only mode for devices with no cache
        regmap: provide regmap_field helpers for simple bit operations
        regmap: cache: Fix syntax errors in comments
      2e7a9515
  2. 02 8月, 2022 12 次提交
    • L
      Merge tag 'arm-boardfiles-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 7d0d3fa7
      Linus Torvalds 提交于
      Pull ARM boardfile deprecation from Arnd Bergmann:
       "Over the past ten years, new machine support was based on device tree,
        and an initial set of about 400 boards using ATAGS with boardfile for
        booting were grandfathered in, with about half of them either removed
        or converted to DT over time.
      
        Based on the recent mailing list discussion I started, I have now
        turned the findings into a set of patches that marks most board files
        as 'depends on UNUSED_BOARD_FILES', leaving only 38 of the 196 boards.
      
        For the boards that are marked as unused, there are two final chances
        for potential users: The removal is scheduled to take place after the
        longterm stable kernel at the end of 2022, so users can stay on that
        version for another few years, and if anyone still has one of these
        machines and is planning to keep updating kernels beyond that version,
        they can speak up now to have their boards taken off the list again.
      
        Waiting for the LTS release also makes sure that there will be at
        least one longterm kernel that contains the recent multiplatform
        conversion along while still supporting all legacy boards.
      
        The short summary of the current status is:
      
         - The s3c24xx, cns3xxx, iop32x and mv78xx0 platforms have no known
           users and will be removed entirely.
      
         - The mmp and davinci platforms have DT support for the important
           machines and will become DT-only after this.
      
         - s3c64xx, dove, orion5x, and pxa keep some board files to allow
           those to be migrated over to DT more easily, but most board files
           are getting removed now. DT support on these platforms is partially
           working but requires changes to additional drivers for the other
           boards.
      
         - omap1, ep93xx, sa1100, footbridge and rpc have no DT support at the
           moment but have some boards with known users. Removing the board
           files that nobody uses should make it easier to try a DT conversion
           if anyone cares.
      
        There is no explicit timeline what happens with the boards that remain
        after this removal, but I expect to revisit this in the future, and
        with most boards gone, there will be a good time to do a treewide
        review of platform drivers that never gained DT support and have no
        remaining in-tree board files"
      
      Link: https://lore.kernel.org/linux-arm-kernel/CAK8P3a0Z9vGEQbVRBo84bSyPFM-LF+hs5w8ZA51g2Z+NsdtDQA@mail.gmail.com/
      
      * tag 'arm-boardfiles-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc:
        ARM: cns3xxx: add CONFIG_UNUSED_BOARD_FILES dependency
        ARM: iop32x: mark as unused
        ARM: s3c: mark most board files as unused
        ARM: omap1: add Kconfig dependencies for unused boards
        ARM: sa1100: mark most boards as unused
        ARM: footbridge: mark cats board for removal
        ARM: mmp: mark all board files for removal
        ARM: ep93xx: mark most board files as unused
        ARM: davinci: mark all ATAGS board files as unused
        ARM: orion: add ATAGS dependencies
        ARM: pxa: add Kconfig dependencies for ATAGS based boards
        ARM: add CONFIG_UNUSED_BOARD_FILES
        ARM: add ATAGS dependencies to non-DT platforms
      7d0d3fa7
    • L
      Merge tag 'arm-newsoc-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · dd65b964
      Linus Torvalds 提交于
      Pull ARM new SoC support from Arnd Bergmann:
       "This adds initial support for two SoC families that have been under
        review for a while. In both cases, the origonal idea was to have a
        minimally functional version, but we ended up leaving out the clk
        drivers that are still under review and will be merged through the
        corresponding subsystem tree.
      
        The Nuvoton NPCM8xx is a 64-bit Baseboard Management Controller and
        based on the 32-bit NPCM7xx family but is now getting added to
        arch/arm64 as well.
      
        Sunplus SP7021, also known as Plus1, is a general-purpose
        System-in-Package design based on the 32-bit Cortex-A7 SoC on the main
        chip, plus an I/O chip and memory in the same"
      
      * tag 'arm-newsoc-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (25 commits)
        MAINTAINERS: rectify entry for ARM/NUVOTON NPCM ARCHITECTURE
        arm64: defconfig: Add Nuvoton NPCM family support
        arm64: dts: nuvoton: Add initial NPCM845 EVB device tree
        arm64: dts: nuvoton: Add initial NPCM8XX device tree
        arm64: npcm: Add support for Nuvoton NPCM8XX BMC SoC
        dt-bindings: arm: npcm: Add nuvoton,npcm845 GCR compatible string
        dt-bindings: arm: npcm: Add nuvoton,npcm845 compatible string
        dt-bindings: arm: npcm: Add maintainer
        reset: npcm: Add NPCM8XX support
        dt-bindings: reset: npcm: Add support for NPCM8XX
        reset: npcm: using syscon instead of device data
        ARM: dts: nuvoton: add reset syscon property
        dt-bindings: reset: npcm: add GCR syscon property
        dt-binding: clk: npcm845: Add binding for Nuvoton NPCM8XX Clock
        dt-bindings: watchdog: npcm: Add npcm845 compatible string
        dt-bindings: timer: npcm: Add npcm845 compatible string
        ARM: dts: Add Sunplus SP7021-Demo-V3 board device tree
        ARM: sp7021_defconfig: Add Sunplus SP7021 defconfig
        ARM: sunplus: Add initial support for Sunplus SP7021 SoC
        irqchip: Add Sunplus SP7021 interrupt controller driver
        ...
      dd65b964
    • L
      Merge tag 'arm-defconfig-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 3a829d26
      Linus Torvalds 提交于
      Pull ARM SoC defconfig updates from Arnd Bergmann:
       "This branch includes the usual updates to defconfig files, enabling
        additional driver support for the supported platforms.
      
        There is also a global refresh for all of them that reorders the lines
        according to the 'savedefconfig' output, but without removing lines
        that are no longer part of the refresh.
      
        I went through the most common removed lines to also address them
        while making sure to catch renamed options and add them back under the
        new name.
      
        The boardfile deprecation branch is based on top of this to avoid
        conflicts against removing the unused boardfile configs from the
        generic defconfig files"
      
      * tag 'arm-defconfig-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (24 commits)
        arm64: defconfig: Sync some configs with savedefconfig
        arm64: refresh defconfig file
        ARM: defconfig: kill remnants of CONFIG_LEDS
        ARM: defconfig: remove broken CONFIG_THUMB disables
        ARM: defconfig: address renamed CONFIG_DEBUG_INFO=y
        ARM: defconfig: remove stale CONFIG_ZBOOT_ROM entries
        ARM: defconfig: remove irda remnants
        ARM: refresh defconfig files
        arm64: defconfig: Demote Qualcomm USB PHYs to modules
        arm64: defconfig: Enable Qualcomm SC8280XP providers
        ARM: multi_v7_defconfig: Update configs for BCM63138
        arm64: defconfig: enable Qualcomm Bandwidth Monitor
        arm64: defconfig: Enable Allwinner built in CODECs
        arm64: defconfig: Enable qcom interconnect drivers
        arm64: defconfig: Enable qcom ss & hs usb phy
        arm64: defconfig: enable Qualcomm LPG leds driver
        arm64: defconfig: Enable gpio-fan support
        arm64: defconfig: Enable DRM_V3D
        ARM: configs: Enable DRM_V3D
        arm64: defconfig: Enable R8A779G0 SoC
        ...
      3a829d26
    • L
      Merge tag 'arm-dt-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 3976d758
      Linus Torvalds 提交于
      Pull ARM DT updates from Arnd Bergmann:
       "As usual, the bulk of the changes for the SoC tree are devicetree file
        updates, and most of these changes are for 64-bit embedded machines.
        As before, there are a ton of style cleanups, and additional hardware
        support for existing machines.
      
        Looking only at the new SoC, the notable additions are:
      
         - A whole family of Broadcom broadband SoCs, both 32-bit and 64-bit:
           BCM63178, BCM63158, BCM4912, BCM6858, BCM6878, BCM6846, BCM63146,
           BCM6856, BCM6855, BCM6756, BCM63148, and BCM6813. Each SoC comes
           with a corresponding reference board.
      
         - The new NXP i.MX93 SoC, the follow-up to the popular i.MX6 and
           i.MX8 embedded SoCs, now using Cortex-A55 cores and the Ethos-U65
           NPU.
      
         - Qualcomm Snapdragon 8cx Gen3 (SC8280XP), the current high end of
           Arm based Laptop SoCs, and its automotive cousin, the SA8540P. The
           SC8280XP is used in the Lenovo Thinkpad X13s laptop that also gets
           added here in addition to the reference boards.
      
         - Allwinner H616, a newer version of the H6 SoC, targeted at
           Set-top-box applications. It comes with dts files for the Orange Pi
           zero2 single-board computer and the X96 Mate set-top-box
      
         - Marvell Prestera 98DX2530 (AlleyCat5), a network switch chip in the
           Armada SoC family based on the Cortex-A55 core.
      
        New machines based on previously supported SoCs include:
      
         - Several new machines on NXP i.MX platforms: multiple Toradex
           Colibri boards using the "Iris" and "Ixora" carriers, DH
           electronics i.MX8M Plus DHCOM and PDK2, TQ-Systems TQMa8MPQL, and
           phytech phyBOARD-Polis-i.MX8MM.
      
         - Google Chameleon v3 FPGA board based on Intel Arria10 and Stratix
           10 Software Virtual platform, both in the SoCFPGA platform.
      
         - Two new wireless devices based on Broadcom SoCs: The Asus GT-AX6000
           Router and the Cisco Meraki MR26 access point
      
         - Improved Chromebook support for both the Mediatek and Qualcomm SoC
           families brought added machines: Acer Chromebook 514 (MT8192), Acer
           Chromebook Spin 513 (MT8195) and a couple of SC7180 based machines
           including the Lenovo IdeaPad Chromebook Duet 3.
      
         - Xiaomi Mi Mix2s, LG G7 and LG V35 are mobile phones based on
           Qualcomm SDM845, while Mi 5s Plus is based on MSM8996.
      
         - Finally, there are a few development board on other chips: PCB8309
           (Microchip lan966x), Radxa Rock Pi S (Rockchips RK3308) DH DRC
           Compact (ST STM32MP1) and Inforce IFC6560 (Qualcomm SDM660)"
      
      * tag 'arm-dt-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (829 commits)
        dt-bindings: soc: bcm: use absolute path to other schema
        dt-bindings: soc: bcm: drop quotes when not needed
        dt-bindings: soc: microchip: use absolute path to other schema
        dt-bindings: soc: microchip: drop quotes when not needed
        ARM: dts: lan966x: keep lan966 entries alphabetically sorted
        ARM: dts: lan966x: add support for pcb8309
        dt-bindings: arm: at91: add lan966 pcb8309 board
        ARM: dts: lan966x: Enable network driver on pcb8291
        ARM: dts: lan966x: Disable can0 on pcb8291
        ARM: dts: lan966x: Add gpio-restart
        dt-bindings: arm: aspeed: add Aspeed Evaluation boards
        arm64: dts: qcom: Add support for Xiaomi Mi Mix2s
        dt-bindings: arm: qcom: Add Xiaomi Mi Mix2s bindings
        dt-bindings: arm: qcom: Document lg,judyln and lg,judyp devices
        dt-bindings: arm: qcom: add missing SM6350 board compatibles
        dt-bindings: arm: qcom: add missing SM6125 board compatibles
        dt-bindings: arm: qcom: add missing SDM845 board compatibles
        dt-bindings: arm: qcom: add missing SDM636 board compatibles
        dt-bindings: arm: qcom: add missing SDM630 board compatibles
        dt-bindings: arm: qcom: add missing QCS404 board compatibles
        ...
      3976d758
    • L
      Merge tag 'arm-drivers-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · 47b62edc
      Linus Torvalds 提交于
      Pull ARM SoC drivers from Arnd Bergmann:
       "The SoC driver updates contain changes to improve support for
        additional SoC variants, as well as cleanups an minor bugfixes
        in a number of existing drivers.
      
        Notable updates this time include:
      
         - Support for Qualcomm MSM8909 (Snapdragon 210) in various drivers
      
         - Updates for interconnect drivers on Qualcomm Snapdragon
      
         - A new driver support for NMI interrupts on Fujitsu A64fx
      
         - A rework of Broadcom BCMBCA Kconfig dependencies
      
         - Improved support for BCM2711 (Raspberry Pi 4) power management to
           allow the use of the V3D GPU
      
         - Cleanups to the NXP guts driver
      
         - Arm SCMI firmware driver updates to add tracing support, and use
           the firmware interfaces for system power control and for power
           capping"
      
      * tag 'arm-drivers-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (125 commits)
        soc: a64fx-diag: disable modular build
        dt-bindings: soc: qcom: qcom,smd-rpm: add power-controller
        dt-bindings: soc: qcom: aoss: document qcom,sm8450-aoss-qmp
        dt-bindings: soc: qcom,rpmh-rsc: simplify qcom,tcs-config
        ARM: mach-qcom: Add support for MSM8909
        dt-bindings: arm: cpus: Document "qcom,msm8909-smp" enable-method
        soc: qcom: spm: Add CPU data for MSM8909
        dt-bindings: soc: qcom: spm: Add MSM8909 CPU compatible
        soc: qcom: rpmpd: Add compatible for MSM8909
        dt-bindings: power: qcom-rpmpd: Add MSM8909 power domains
        soc: qcom: smd-rpm: Add compatible for MSM8909
        dt-bindings: soc: qcom: smd-rpm: Add MSM8909
        soc: qcom: icc-bwmon: Remove unnecessary print function dev_err()
        soc: fujitsu: Add A64FX diagnostic interrupt driver
        soc: qcom: socinfo: Fix the id of SA8540P SoC
        soc: qcom: Make QCOM_RPMPD depend on PM
        tty: serial: bcm63xx: bcmbca: Replace ARCH_BCM_63XX with ARCH_BCMBCA
        spi: bcm63xx-hsspi: bcmbca: Replace ARCH_BCM_63XX with ARCH_BCMBCA
        clk: bcm: bcmbca: Replace ARCH_BCM_63XX with ARCH_BCMBCA
        hwrng: bcm2835: bcmbca: Replace ARCH_BCM_63XX with ARCH_BCMBCA
        ...
      47b62edc
    • L
      Merge tag 'arm-soc-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc · e233cc59
      Linus Torvalds 提交于
      Pull ARM SoC updates from Arnd Bergmann:
       "The updates for arch/arm/mach-* platform code this time are mainly
        minor cleanups.
      
        Most notably, the DaVinci DM644x/DM646x SoC support gets removed. This
        was also scheduled for later removal early next year, but Linus
        Walleij asked for having them removed earlier to avoid problems for
        the GPIO subsystem"
      
      * tag 'arm-soc-6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (38 commits)
        ARM: at91: setup outer cache .write_sec() callback if needed
        ARM: at91: add sam_linux_is_optee_available() function
        ARM: Marvell: Update PCIe fixup
        ARM: bcmbca: Include full family name in Kconfig
        ARM: bcm: NSP: Removed forced thermal selection
        ARM: debug: bcmbca: Replace ARCH_BCM_63XX with ARCH_BCMBCA
        arm: bcmbca: Add BCMBCA sub platforms
        arm: bcmbca: Move BCM63138 ARCH_BCM_63XX to ARCH_BCMBCA
        MAINTAINERS: Move BCM63138 to bcmbca arch entry
        ARM: shmobile: rcar-gen2: Increase refcount for new reference
        ARM: davinci: Delete DM646x board files
        ARM: davinci: Delete DM644x board files
        firmware: xilinx: Add TF_A_PM_REGISTER_SGI SMC call
        cpufreq: zynq: Fix refcount leak in zynq_get_revision
        ARM: OMAP2+: Kconfig: Fix indentation
        ARM: OMAP2+: Fix refcount leak in omap3xxx_prm_late_init
        ARM: OMAP2+: pdata-quirks: Fix refcount leak bug
        ARM: OMAP2+: display: Fix refcount leak bug
        ARM: OMAP2+: Fix refcount leak in omapdss_init_of
        ARM: imx25: support silicon revision 1.2
        ...
      e233cc59
    • L
      Merge tag 'irq-core-2022-08-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9de1f9c8
      Linus Torvalds 提交于
      Pull irq updates from Thomas Gleixner:
       "Updates for interrupt core and drivers:
      
        Core:
      
         - Fix a few inconsistencies between UP and SMP vs interrupt
           affinities
      
         - Small updates and cleanups all over the place
      
        New drivers:
      
         - LoongArch interrupt controller
      
         - Renesas RZ/G2L interrupt controller
      
        Updates:
      
         - Hotpath optimization for SiFive PLIC
      
         - Workaround for broken PLIC edge triggered interrupts
      
         - Simall cleanups and improvements as usual"
      
      * tag 'irq-core-2022-08-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (52 commits)
        irqchip/mmp: Declare init functions in common header file
        irqchip/mips-gic: Check the return value of ioremap() in gic_of_init()
        genirq: Use for_each_action_of_desc in actions_show()
        irqchip / ACPI: Introduce ACPI_IRQ_MODEL_LPIC for LoongArch
        irqchip: Add LoongArch CPU interrupt controller support
        irqchip: Add Loongson Extended I/O interrupt controller support
        irqchip/loongson-liointc: Add ACPI init support
        irqchip/loongson-pch-msi: Add ACPI init support
        irqchip/loongson-pch-pic: Add ACPI init support
        irqchip: Add Loongson PCH LPC controller support
        LoongArch: Prepare to support multiple pch-pic and pch-msi irqdomain
        LoongArch: Use ACPI_GENERIC_GSI for gsi handling
        genirq/generic_chip: Export irq_unmap_generic_chip
        ACPI: irq: Allow acpi_gsi_to_irq() to have an arch-specific fallback
        APCI: irq: Add support for multiple GSI domains
        LoongArch: Provisionally add ACPICA data structures
        irqdomain: Use hwirq_max instead of revmap_size for NOMAP domains
        irqdomain: Report irq number for NOMAP domains
        irqchip/gic-v3: Fix comment typo
        dt-bindings: interrupt-controller: renesas,rzg2l-irqc: Document RZ/V2L SoC
        ...
      9de1f9c8
    • L
      Merge tag 'timers-core-2022-08-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · dfea8482
      Linus Torvalds 提交于
      Pull timer updates from Thomas Gleixner:
       "Timers, timekeeping and related drivers update:
      
        Core:
      
         - Make wait_event_hrtimeout() aware of RT/DL tasks
      
        New drivers:
      
         - R-Car Gen4 timer
      
         - Tegra186 timer
      
         - Mediatek MT6795 CPUXGPT timer
      
        Updates:
      
         - Rework suspend/resume handling in timer drivers so it
           takes inactive clocks into account.
      
         - The usual device tree compatible add ons
      
         - Small fixed and cleanups all over the place"
      
      * tag 'timers-core-2022-08-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
        wait: Fix __wait_event_hrtimeout for RT/DL tasks
        clocksource/drivers/sun5i: Remove unnecessary (void*) conversions
        dt-bindings: timer: allwinner,sun4i-a10-timer: Add D1 compatible
        dt-bindings: timer: ingenic,tcu: use absolute path to other schema
        clocksource/drivers/sun4i: Remove unnecessary (void*) conversions
        dt-bindings: timer: renesas,cmt: Fix R-Car Gen4 fall-out
        clocksource/drivers/tegra186: Put Kconfig option 'tristate' to 'bool'
        clocksource/drivers/timer-ti-dm: Make driver selection bool for TI K3
        clocksource/drivers/timer-ti-dm: Add compatible for am6 SoCs
        clocksource/drivers/timer-ti-dm: Make timer selectable for ARCH_K3
        clocksource/drivers/timer-ti-dm: Move inline functions to driver for am6
        clocksource/drivers/sh_cmt: Add R-Car Gen4 support
        dt-bindings: timer: renesas,cmt: R-Car V3U is R-Car Gen4
        dt-bindings: timer: renesas,cmt: Add r8a779f0 and generic Gen4 CMT support
        clocksource/drivers/timer-microchip-pit64b: Fix compilation warnings
        clocksource/drivers/timer-microchip-pit64b: Use mchp_pit64b_{suspend, resume}
        clocksource/drivers/timer-microchip-pit64b: Remove suspend/resume ops for ce
        thermal/drivers/rcar_gen3_thermal: Add r8a779f0 support
        clocksource/drivers/timer-mediatek: Implement CPUXGPT timers
        dt-bindings: timer: mediatek: Add CPUX System Timer and MT6795 compatible
        ...
      dfea8482
    • L
      Merge tag 'perf-core-2022-08-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 63e6053a
      Linus Torvalds 提交于
      Pull perf events updates from Ingo Molnar:
      
       - Fix Intel Alder Lake PEBS memory access latency & data source
         profiling info bugs.
      
       - Use Intel large-PEBS hardware feature in more circumstances, to
         reduce PMI overhead & reduce sampling data.
      
       - Extend the lost-sample profiling output with the PERF_FORMAT_LOST ABI
         variant, which tells tooling the exact number of samples lost.
      
       - Add new IBS register bits definitions.
      
       - AMD uncore events: Add PerfMonV2 DF (Data Fabric) enhancements.
      
      * tag 'perf-core-2022-08-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/ibs: Add new IBS register bits into header
        perf/x86/intel: Fix PEBS data source encoding for ADL
        perf/x86/intel: Fix PEBS memory access info encoding for ADL
        perf/core: Add a new read format to get a number of lost samples
        perf/x86/amd/uncore: Add PerfMonV2 RDPMC assignments
        perf/x86/amd/uncore: Add PerfMonV2 DF event format
        perf/x86/amd/uncore: Detect available DF counters
        perf/x86/amd/uncore: Use attr_update for format attributes
        perf/x86/amd/uncore: Use dynamic events array
        x86/events/intel/ds: Enable large PEBS for PERF_SAMPLE_WEIGHT_TYPE
      63e6053a
    • L
      Merge tag 'locking-core-2022-08-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 22a39c3d
      Linus Torvalds 提交于
      Pull locking updates from Ingo Molnar:
       "This was a fairly quiet cycle for the locking subsystem:
      
         - lockdep: Fix a handful of the more complex lockdep_init_map_*()
           primitives that can lose the lock_type & cause false reports. No
           such mishap was observed in the wild.
      
         - jump_label improvements: simplify the cross-arch support of initial
           NOP patching by making it arch-specific code (used on MIPS only),
           and remove the s390 initial NOP patching that was superfluous"
      
      * tag 'locking-core-2022-08-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        locking/lockdep: Fix lockdep_init_map_*() confusion
        jump_label: make initial NOP patching the special case
        jump_label: mips: move module NOP patching into arch code
        jump_label: s390: avoid pointless initial NOP patching
      22a39c3d
    • L
      Merge tag 'sched-core-2022-08-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b167fdff
      Linus Torvalds 提交于
      Pull scheduler updates from Ingo Molnar:
      "Load-balancing improvements:
      
         - Improve NUMA balancing on AMD Zen systems for affine workloads.
      
         - Improve the handling of reduced-capacity CPUs in load-balancing.
      
         - Energy Model improvements: fix & refine all the energy fairness
           metrics (PELT), and remove the conservative threshold requiring 6%
           energy savings to migrate a task. Doing this improves power
           efficiency for most workloads, and also increases the reliability
           of energy-efficiency scheduling.
      
         - Optimize/tweak select_idle_cpu() to spend (much) less time
           searching for an idle CPU on overloaded systems. There's reports of
           several milliseconds spent there on large systems with large
           workloads ...
      
           [ Since the search logic changed, there might be behavioral side
             effects. ]
      
         - Improve NUMA imbalance behavior. On certain systems with spare
           capacity, initial placement of tasks is non-deterministic, and such
           an artificial placement imbalance can persist for a long time,
           hurting (and sometimes helping) performance.
      
           The fix is to make fork-time task placement consistent with runtime
           NUMA balancing placement.
      
           Note that some performance regressions were reported against this,
           caused by workloads that are not memory bandwith limited, which
           benefit from the artificial locality of the placement bug(s). Mel
           Gorman's conclusion, with which we concur, was that consistency is
           better than random workload benefits from non-deterministic bugs:
      
              "Given there is no crystal ball and it's a tradeoff, I think
               it's better to be consistent and use similar logic at both fork
               time and runtime even if it doesn't have universal benefit."
      
         - Improve core scheduling by fixing a bug in
           sched_core_update_cookie() that caused unnecessary forced idling.
      
         - Improve wakeup-balancing by allowing same-LLC wakeup of idle CPUs
           for newly woken tasks.
      
         - Fix a newidle balancing bug that introduced unnecessary wakeup
           latencies.
      
        ABI improvements/fixes:
      
         - Do not check capabilities and do not issue capability check denial
           messages when a scheduler syscall doesn't require privileges. (Such
           as increasing niceness.)
      
         - Add forced-idle accounting to cgroups too.
      
         - Fix/improve the RSEQ ABI to not just silently accept unknown flags.
           (No existing tooling is known to have learned to rely on the
           previous behavior.)
      
         - Depreciate the (unused) RSEQ_CS_FLAG_NO_RESTART_ON_* flags.
      
        Optimizations:
      
         - Optimize & simplify leaf_cfs_rq_list()
      
         - Micro-optimize set_nr_{and_not,if}_polling() via try_cmpxchg().
      
        Misc fixes & cleanups:
      
         - Fix the RSEQ self-tests on RISC-V and Glibc 2.35 systems.
      
         - Fix a full-NOHZ bug that can in some cases result in the tick not
           being re-enabled when the last SCHED_RT task is gone from a
           runqueue but there's still SCHED_OTHER tasks around.
      
         - Various PREEMPT_RT related fixes.
      
         - Misc cleanups & smaller fixes"
      
      * tag 'sched-core-2022-08-01' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (32 commits)
        rseq: Kill process when unknown flags are encountered in ABI structures
        rseq: Deprecate RSEQ_CS_FLAG_NO_RESTART_ON_* flags
        sched/core: Fix the bug that task won't enqueue into core tree when update cookie
        nohz/full, sched/rt: Fix missed tick-reenabling bug in dequeue_task_rt()
        sched/core: Always flush pending blk_plug
        sched/fair: fix case with reduced capacity CPU
        sched/core: Use try_cmpxchg in set_nr_{and_not,if}_polling
        sched/core: add forced idle accounting for cgroups
        sched/fair: Remove the energy margin in feec()
        sched/fair: Remove task_util from effective utilization in feec()
        sched/fair: Use the same cpumask per-PD throughout find_energy_efficient_cpu()
        sched/fair: Rename select_idle_mask to select_rq_mask
        sched, drivers: Remove max param from effective_cpu_util()/sched_cpu_util()
        sched/fair: Decay task PELT values during wakeup migration
        sched/fair: Provide u64 read for 32-bits arch helper
        sched/fair: Introduce SIS_UTIL to search idle CPU based on sum of util_avg
        sched: only perform capability check on privileged operation
        sched: Remove unused function group_first_cpu()
        sched/fair: Remove redundant word " *"
        selftests/rseq: check if libc rseq support is registered
        ...
      b167fdff
    • L
      Merge tag 'slab-for-5.20_or_6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab · 0dd1cabe
      Linus Torvalds 提交于
      Pull slab updates from Vlastimil Babka:
      
       - An addition of 'accounted' flag to slab allocation tracepoints to
         indicate memcg_kmem accounting, by Vasily
      
       - An optimization of memcg handling in freeing paths, by Muchun
      
       - Various smaller fixes and cleanups
      
      * tag 'slab-for-5.20_or_6.0' of git://git.kernel.org/pub/scm/linux/kernel/git/vbabka/slab:
        mm/slab_common: move generic bulk alloc/free functions to SLOB
        mm/sl[au]b: use own bulk free function when bulk alloc failed
        mm: slab: optimize memcg_slab_free_hook()
        mm/tracing: add 'accounted' entry into output of allocation tracepoints
        tools/vm/slabinfo: Handle files in debugfs
        mm/slub: Simplify __kmem_cache_alias()
        mm, slab: fix bad alignments
      0dd1cabe