Hi Linus, This pull request contains the core block changes for 5.5. Due to more granular branches, this one is small and will be followed with other core branches that add specific features. I meant to just have a core and drivers branch, but external dependencies we ended up adding a few more that are also core. For this request, the changes are: - Fixes and improvements for the zoned device support (Ajay, Damien) - sed-opal table writing and datastore UID (Revanth) - blk-cgroup (and bfq) blk-cgroup stat fixes (Tejun) - Improvements to the block stats tracking (Pavel) - Fix for overruning sysfs buffer for large number of CPUs (Ming) - Optimization for small IO (Ming, Christoph) - Fix typo in RWH lifetime hint (Eugene) - Dead code removal and documentation (Bart) - Reduction in memory usage for queue and tag set (Bart) - Kerneldoc header documentation (André) - Device/partition revalidation fixes (Jan) - Stats tracking for flush requests (Konstantin) - Various other little fixes here and there (et al) Please pull! git://git.kernel.dk/linux-block.git tags/for-5.5/block-20191121 ---------------------------------------------------------------- Ajay Joshi (2): block: add zone open, close and finish operations block: add zone open, close and finish ioctl support André Almeida (2): blk-mq: remove needless goto from blk_mq_get_driver_tag blk-mq: fill header with kernel-doc Bart Van Assche (9): block: Fix three kernel-doc warnings block: Fix writeback throttling W=1 compiler warnings block: Remove request_queue.nr_queues block: Remove "dying" checks from sysfs callbacks block: Reduce sysfs_lock locking inside blk_cleanup_queue() block: Document all members of blk_mq_tag_set and bkl_mq_queue_map block: Remove the synchronize_rcu() call from __blk_mq_update_nr_hw_queues() block: Reduce the amount of memory required per request queue block: Reduce the amount of memory used for tag sets Christoph Hellwig (1): block: avoid blk_bio_segment_split for small I/O operations Damien Le Moal (2): block: Remove REQ_OP_ZONE_RESET plugging block: Simplify REQ_OP_ZONE_RESET_ALL handling David Sterba (1): block: reorder bio::__bi_remaining for better packing Dmitry Monakhov (1): block,bfq: Skip tracing hooks if possible Eugene Syromiatnikov (1): fcntl: fix typo in RWH_WRITE_LIFE_NOT_SET r/w hint name Jan Kara (3): bdev: Factor out bdev revalidation into a common helper bdev: Refresh bdev size for disks without partitioning block: Warn if elevator= parameter is used Jens Axboe (2): Merge branch 'for-linus' into for-5.5/block Revert "block: split bio if the only bvec's length is > SZ_4K" John Garry (3): blk-mq: Make blk_mq_run_hw_queue() return void blk-mq: Delete blk_mq_has_free_tags() and blk_mq_can_queue() sbitmap: Delete sbitmap_any_bit_clear() Konstantin Khlebnikov (1): block: add iostat counters for flush requests Logan Gunthorpe (1): block: account statistics for passthrough requests Ming Lei (4): blk-mq: avoid sysfs buffer overflow with too many CPU cores blk-mq: make sure that line break can be printed block: still try to split bio if the bvec crosses pages block: split bio if the only bvec's length is > SZ_4K Pavel Begunkov (4): blk-mq: Inline status checkers blk-mq: Reuse callback in blk_mq_in_flight*() blk-mq: Embed counters into struct mq_inflight blk-stat: Optimise blk_stat_add() Revanth Rajashekar (4): block: sed-opal: Generalizing write data to any opal table block: sed-opal: Add support to read/write opal tables generically block: sed-opal: Introduce Opal Datastore UID block: sed-opal: Introduce SUM_SET_LIST parameter and append it using 'add_token_u64' Sebastian Andrzej Siewior (1): block: Don't disable interrupts in trigger_softirq() Tejun Heo (7): bfq-iosched: relocate bfqg_*rwstat*() helpers bfq-iosched: stop using blkg->stat_bytes and ->stat_ios blk-throtl: stop using blkg->stat_bytes and ->stat_ios blk-cgroup: remove now unused blkg_print_stat_{bytes|ios}_recursive() blk-cgroup: reimplement basic IO stats using cgroup rstat blk-cgroup: separate out blkg_rwstat under CONFIG_BLK_CGROUP_RWSTAT blk-cgroup: cgroup_rstat_updated() shouldn't be called on cgroup1 Documentation/ABI/testing/procfs-diskstats | 5 + Documentation/ABI/testing/sysfs-block | 6 + Documentation/admin-guide/iostats.rst | 9 + Documentation/block/stat.rst | 14 +- block/Kconfig | 4 + block/Kconfig.iosched | 1 + block/Makefile | 1 + block/bfq-cgroup.c | 85 ++++---- block/bfq-iosched.c | 4 + block/bfq-iosched.h | 10 + block/blk-cgroup-rwstat.c | 129 ++++++++++++ block/blk-cgroup-rwstat.h | 149 ++++++++++++++ block/blk-cgroup.c | 304 +++++++++------------------ block/blk-core.c | 16 +- block/blk-exec.c | 2 + block/blk-flush.c | 15 +- block/blk-merge.c | 17 +- block/blk-mq-sysfs.c | 31 ++- block/blk-mq-tag.c | 8 - block/blk-mq-tag.h | 1 - block/blk-mq.c | 136 ++++++------ block/blk-mq.h | 9 - block/blk-softirq.c | 4 - block/blk-stat.c | 7 +- block/blk-sysfs.c | 8 - block/blk-throttle.c | 71 ++++++- block/blk-zoned.c | 99 ++++----- block/blk.h | 7 +- block/elevator.c | 9 + block/genhd.c | 8 +- block/ioctl.c | 5 +- block/opal_proto.h | 6 +- block/partition-generic.c | 7 +- block/sed-opal.c | 318 ++++++++++++++++++++++------- block/t10-pi.c | 8 +- drivers/md/dm-zoned-metadata.c | 6 +- fs/block_dev.c | 37 ++-- fs/f2fs/segment.c | 3 +- fs/fcntl.c | 2 +- include/linux/blk-cgroup.h | 199 ++++-------------- include/linux/blk-mq.h | 300 ++++++++++++++++++++++----- include/linux/blk_types.h | 28 ++- include/linux/blkdev.h | 16 +- include/linux/sbitmap.h | 9 - include/linux/sed-opal.h | 1 + include/trace/events/wbt.h | 12 +- include/uapi/linux/blkzoned.h | 17 +- include/uapi/linux/fcntl.h | 9 +- include/uapi/linux/sed-opal.h | 20 ++ lib/sbitmap.c | 17 -- tools/include/uapi/linux/fcntl.h | 9 +- 51 files changed, 1398 insertions(+), 800 deletions(-) create mode 100644 block/blk-cgroup-rwstat.c create mode 100644 block/blk-cgroup-rwstat.h -- Jens Axboe