Subject: [GIT PULL] Block fix for 6.11-final
From: Jens Axboe <axboe@kernel.dk>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: "linux-block@vger.kernel.org" <linux-block@vger.kernel.org>
Date: Thu, 12 Sep 2024 16:44:21 -0600

Hi Linus,

Just a single fix for a deadlock issue that can happen if someone
attempts to change the root disk IO scheduler with a module that
requires loading from disk. Changing the scheduler freezes the queue
while that operation is happening, hence causing a deadlock.

Please pull!


The following changes since commit 4ba032bc71dad8d604d308afffaa16b81816c751:

  Merge tag 'nvme-6.11-2024-09-05' of git://git.infradead.org/nvme into block-6.11 (2024-09-05 08:45:54 -0600)

are available in the Git repository at:

  git://git.kernel.dk/linux.git tags/block-6.11-20240912

for you to fetch changes up to 734e1a8603128ac31526c477a39456be5f4092b6:

  block: Prevent deadlocks when switching elevators (2024-09-10 13:43:42 -0600)

----------------------------------------------------------------
block-6.11-20240912

----------------------------------------------------------------
Damien Le Moal (1):
      block: Prevent deadlocks when switching elevators

 block/blk-sysfs.c | 22 +++++++++++++++++++++-
 block/elevator.c  | 21 +++++++++++++++------
 block/elevator.h  |  2 ++
 3 files changed, 38 insertions(+), 7 deletions(-)

-- 
Jens Axboe


.
Subject: [PATCH 0/6] EDITME: blk: refactor queue affinity helpers
From: Daniel Wagner <wagi@kernel.org>
To: Jens Axboe <axboe@kernel.dk>, Bjorn Helgaas <bhelgaas@google.com>, 
 "Michael S. Tsirkin" <mst@redhat.com>, Jason Wang <jasowang@redhat.com>, 
 "Martin K. Petersen" <martin.petersen@oracle.com>, 
 Keith Busch <kbusch@kernel.org>, Christoph Hellwig <hch@lst.de>, 
 Sagi Grimberg <sagi@grimberg.me>
Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, 
 linux-pci@vger.kernel.org, virtualization@lists.linux.dev, 
 linux-scsi@vger.kernel.org, megaraidlinux.pdl@broadcom.com, 
 mpi3mr-linuxdrv.pdl@broadcom.com, MPT-FusionLinux.pdl@broadcom.com, 
 storagedev@microchip.com, linux-nvme@lists.infradead.org, 
 Daniel Wagner <dwagner@suse.de>, 
 20240912-do-not-overwrite-pci-mapping-v1-1-85724b6cec49@suse.de, 
 Ming Lei <ming.lei@redhat.com>
Date: Fri, 13 Sep 2024 09:41:58 +0200

.
Subject: [PATCH] drbd: Fix atomicity violation in drbd_uuid_set_bm()
From: Qiu-ji Chen <chenqiuji666@gmail.com>
To: philipp.reisner@linbit.com,
	lars.ellenberg@linbit.com,
	christoph.boehmwalder@linbit.com,
	axboe@kernel.dk
Cc: drbd-dev@lists.linbit.com,
	linux-block@vger.kernel.org,
	linux-kernel@vger.kernel.org,
	baijiaju1990@gmail.com,
	Qiu-ji Chen <chenqiuji666@gmail.com>,
	stable@vger.kernel.org
Date: Fri, 13 Sep 2024 16:35:04 +0800

.
Subject: [GIT PULL] io_uring async discard support
From: Jens Axboe <axboe@kernel.dk>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: io-uring <io-uring@vger.kernel.org>,
 "linux-block@vger.kernel.org" <linux-block@vger.kernel.org>
Date: Fri, 13 Sep 2024 11:02:24 -0600

Hi Linus,

As mentioned, and sitting on top of both the 6.12 block and io_uring
core branches, here's support for async discard through io_uring. This
allows applications to issue async discards, rather than rely on the
blocking sync ioctl discards we already have. The sync support is
difficult to use outside of idle/cleanup periods. On a real (but slow)
device, testing shows the following results when compared to sync
discard:

qd64 sync discard: 21K IOPS, lat avg 3 msec (max 21 msec)
qd64 async discard: 76K IOPS, lat avg 845 usec (max 2.2 msec)

qd64 sync discard: 14K IOPS, lat avg 5 msec (max 25 msec)
qd64 async discard: 56K IOPS, lat avg 1153 usec (max 3.6 msec)

and synthetic null_blk testing with the same queue depth and block size
settings as above shows:

Type	Trim size	IOPS	Lat avg (usec)	Lat Max (usec)
==============================================================
sync	4k		 144K	    444		   20314
async	4k		1353K	     47		     595
sync	1M		  56K	   1136		   21031
async	1M		  94K	    680		     760			

Please pull!


The following changes since commit 84eacf177faa605853c58e5b1c0d9544b88c16fd:

  io_uring/io-wq: inherit cpuset of cgroup in io worker (2024-09-11 07:27:56 -0600)

are available in the Git repository at:

  git://git.kernel.dk/linux.git tags/for-6.12/io_uring-discard-20240913

for you to fetch changes up to 50c52250e2d74b098465841163c18f4b4e9ad430:

  block: implement async io_uring discard cmd (2024-09-11 10:45:28 -0600)

----------------------------------------------------------------
for-6.12/io_uring-discard-20240913

----------------------------------------------------------------
Jens Axboe (2):
      Merge branch 'for-6.12/block' into for-6.12/io_uring-discard
      Merge branch 'for-6.12/io_uring' into for-6.12/io_uring-discard

Pavel Begunkov (5):
      io_uring/cmd: expose iowq to cmds
      io_uring/cmd: give inline space in request to cmds
      filemap: introduce filemap_invalidate_pages
      block: introduce blk_validate_byte_range()
      block: implement async io_uring discard cmd

 block/blk.h                  |   1 +
 block/fops.c                 |   2 +
 block/ioctl.c                | 163 +++++++++++++++++++++++++++++++----
 include/linux/io_uring/cmd.h |  15 ++++
 include/linux/pagemap.h      |   2 +
 include/uapi/linux/blkdev.h  |  14 +++
 io_uring/io_uring.c          |  11 +++
 io_uring/io_uring.h          |   1 +
 io_uring/uring_cmd.c         |   7 ++
 mm/filemap.c                 |  17 ++--
 10 files changed, 209 insertions(+), 24 deletions(-)

-- 
Jens Axboe


.
Subject: [GIT PULL] Block updates for 6.12-rc
From: Jens Axboe <axboe@kernel.dk>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: "linux-block@vger.kernel.org" <linux-block@vger.kernel.org>
Date: Fri, 13 Sep 2024 11:02:17 -0600

Hi Linus,

Here are the block changes queued up for the 6.12 merge window. Pretty
quiet round, mostly driver side fixes and cleanups. This pull request
contains:

- MD changes via Song:
	- md-bitmap refactoring (Yu Kuai)
	- raid5 performance optimization (Artur Paszkiewicz)
	- Other small fixes (Yu Kuai, Chen Ni)
	- Add a sysfs entry 'new_level' (Xiao Ni)
	- Improve information reported in /proc/mdstat (Mateusz Kusiak)

- NVMe changes via Keith:
	- Asynchronous namespace scanning (Stuart)
	- TCP TLS updates (Hannes)
	- RDMA queue controller validation (Niklas)
	- Align field names to the spec (Anuj)
	- Metadata support validation (Puranjay)
	- A syntax cleanup (Shen)
	- Fix a Kconfig linking error (Arnd)
	- New queue-depth quirk (Keith)

- Add missing unplug trace event (Keith)

- blk-iocost fixes (Colin, Konstantin)

- t10-pi modular removal and fixes (Alexey)

- Fix for potential BLKSECDISCARD overflow (Alexey)

- bio splitting cleanups and fixes (Christoph)

- Deal with folios rather than rather than pages, speeding up how the
  block layer handles bigger IOs (Kundan)

- Use spinlocks rather than bit spinlocks in zram (Sebastian, Mike)

- Reduce zoned device overhead in ublk (Ming)

- Add and use sendpages_ok() for drbd and nvme-tcp (Ofir)

- Fix regression in partition error pointer checking (Riyan)

- Add support for write zeroes and rotational status in nbd (Wouter)

- Add Yu Kuai as new BFQ maintainer. The scheduler has been unmaintained
  for quite a while.

- Various sets of fixes for BFQ (Yu Kuai)

- Misc fixes and cleanups (Alvaro, Christophe, Li, Md Haris, Mikhail,
  Yang)

Please pull!


The following changes since commit 8400291e289ee6b2bf9779ff1c83a291501f017b:

  Linux 6.11-rc1 (2024-07-28 14:19:55 -0700)

are available in the Git repository at:

  git://git.kernel.dk/linux.git tags/for-6.12/block-20240913

for you to fetch changes up to d4d7c03f7ee1d7f16b7b6e885b1e00968f72b93c:

  Merge tag 'nvme-6.12-2024-09-13' of git://git.infradead.org/nvme into for-6.12/block (2024-09-13 08:39:09 -0600)

----------------------------------------------------------------
for-6.12/block-20240913

----------------------------------------------------------------
Alexey Dobriyan (3):
      block: delete module stuff from t10-pi
      block: constify ext_pi_ref_escape()
      block: fix integer overflow in BLKSECDISCARD

Alvaro Parker (1):
      block: fix comment to use set_current_state

Anuj Gupta (1):
      nvme: rename apptag and appmask to lbat and lbatm

Arnd Bergmann (1):
      nvme-tcp: fix link failure for TCP auth

Artur Paszkiewicz (3):
      md/raid5: use wait_on_bit() for R5_Overlap
      md/raid5: only add to wq if reshape is in progress
      md/raid5: rename wait_for_overlap to wait_for_reshape

Chen Ni (1):
      md: convert comma to semicolon

Christoph Hellwig (4):
      block: rework bio splitting
      block: constify the lim argument to queue_limits_max_zone_append_sectors
      block: properly handle REQ_OP_ZONE_APPEND in __bio_split_to_limits
      block: don't use bio_split_rw on misc operations

Christophe JAILLET (1):
      drbd: Remove an unused field in struct drbd_device

Colin Ian King (1):
      blk_iocost: make read-only static array vrate_adj_pct const

Hannes Reinecke (9):
      nvme-keyring: restrict match length for version '1' identifiers
      nvme-tcp: sanitize TLS key handling
      nvme-tcp: check for invalidated or revoked key
      nvme: add a newline to the 'tls_key' sysfs attribute
      nvme: split off TLS sysfs attributes into a separate group
      nvme-sysfs: add 'tls_configured_key' sysfs attribute
      nvme-sysfs: add 'tls_keyring' attribute
      nvmet-auth: allow to clear DH-HMAC-CHAP keys
      nvme-target: do not check authentication status for admin commands twice

Jens Axboe (6):
      Merge tag 'md-6.12-20240829' of https://git.kernel.org/pub/scm/linux/kernel/git/song/md into for-6.12/block
      MAINTAINERS: move the BFQ io scheduler to orphan state
      Merge tag 'md-6.12-20240905' of https://git.kernel.org/pub/scm/linux/kernel/git/song/md into for-6.12/block
      Merge tag 'nvme-6.12-2024-09-06' of git://git.infradead.org/nvme into for-6.12/block
      Merge tag 'md-6.12-20240906' of https://git.kernel.org/pub/scm/linux/kernel/git/song/md into for-6.12/block
      Merge tag 'nvme-6.12-2024-09-13' of git://git.infradead.org/nvme into for-6.12/block

Keith Busch (2):
      blk-mq: add missing unplug trace event
      nvme-pci: qdepth 1 quirk

Konstantin Ovsepian (1):
      blk_iocost: fix more out of bound shifts

Kundan Kumar (4):
      block: Added folio-ized version of bio_add_hw_page()
      block: introduce folio awareness and add a bigger size from folio
      mm: release number of pages of a folio
      block: unpin user pages belonging to a folio at once

Li Zetao (1):
      mtip32xx: Remove redundant null pointer checks in mtip_hw_debugfs_init()

Mateusz Kusiak (1):
      md: Report failed arrays as broken in mdstat

Md Haris Iqbal (1):
      block/rnbd-srv: Add sanity check and remove redundant assignment

Mike Galbraith (1):
      zram: Replace bit spinlocks with a spinlock_t.

Mikhail Lobanov (1):
      drbd: Add NULL check for net_conf to prevent dereference in state validation

Ming Lei (2):
      ublk: move zone report data out of request pdu
      nbd: fix race between timeout and normal completion

Niklas Cassel (1):
      nvme-rdma: send cntlid in the RDMA_CM_REQUEST Private Data

Ofir Gal (3):
      net: introduce helper sendpages_ok()
      nvme-tcp: use sendpages_ok() instead of sendpage_ok()
      drbd: use sendpages_ok() instead of sendpage_ok()

Puranjay Mohan (1):
      nvme: fix metadata handling in nvme-passthrough

Riyan Dhiman (1):
      block: fix potential invalid pointer dereference in blk_add_partition

Sebastian Andrzej Siewior (2):
      zram: Remove ZRAM_LOCK
      zram: Shrink zram_table_entry::flags.

Shen Lichuan (1):
      nvme: Convert comma to semicolon

Song Liu (2):
      Merge branch 'md-6.12-bitmap' into md-6.12
      Merge branch 'md-6.12-raid5-opt' into md-6.12

Stuart Hayes (1):
      nvme_core: scan namespaces asynchronously

Wouter Verhelst (4):
      nbd: add support for rotational devices
      nbd: implement the WRITE_ZEROES command
      nbd: nbd_bg_flags_show: add NBD_FLAG_ROTATIONAL
      nbd: correct the maximum value for discard sectors

Xiao Ni (1):
      md: Add new_level sysfs interface

Yang Ruibin (1):
      pktcdvd: remove unnecessary debugfs_create_dir() error check

Yu Kuai (62):
      blk-cgroup: check for pd_(alloc|free)_fn in blkcg_activate_policy()
      blk-ioprio: remove ioprio_blkcg_from_bio()
      blk-ioprio: remove per-disk structure
      md: Don't flush sync_work in md_write_start()
      md/raid1: Clean up local variable 'b' from raid1_read_request()
      md/raid1: use md_bitmap_wait_behind_writes() in raid1_read_request()
      md/md-bitmap: replace md_bitmap_status() with a new helper md_bitmap_get_stats()
      md: use new helper md_bitmap_get_stats() in update_array_info()
      md/md-bitmap: add 'events_cleared' into struct md_bitmap_stats
      md/md-cluster: fix spares warnings for __le64
      md/md-bitmap: add 'sync_size' into struct md_bitmap_stats
      md/md-bitmap: add 'file_pages' into struct md_bitmap_stats
      md/md-bitmap: add 'behind_writes' and 'behind_wait' into struct md_bitmap_stats
      md/md-cluster: use helper md_bitmap_get_stats() to get pages in resize_bitmaps()
      md/md-bitmap: add a new helper md_bitmap_set_pages()
      md/md-bitmap: introduce struct bitmap_operations
      md/md-bitmap: simplify md_bitmap_create() + md_bitmap_load()
      md/md-bitmap: merge md_bitmap_create() into bitmap_operations
      md/md-bitmap: merge md_bitmap_load() into bitmap_operations
      md/md-bitmap: merge md_bitmap_destroy() into bitmap_operations
      md/md-bitmap: merge md_bitmap_flush() into bitmap_operations
      md/md-bitmap: make md_bitmap_print_sb() internal
      md/md-bitmap: merge md_bitmap_update_sb() into bitmap_operations
      md/md-bitmap: merge md_bitmap_status() into bitmap_operations
      md/md-bitmap: remove md_bitmap_setallbits()
      md/md-bitmap: merge bitmap_write_all() into bitmap_operations
      md/md-bitmap: merge md_bitmap_dirty_bits() into bitmap_operations
      md/md-bitmap: merge md_bitmap_startwrite() into bitmap_operations
      md/md-bitmap: merge md_bitmap_endwrite() into bitmap_operations
      md/md-bitmap: merge md_bitmap_start_sync() into bitmap_operations
      md/md-bitmap: remove the parameter 'aborted' for md_bitmap_end_sync()
      md/md-bitmap: merge md_bitmap_end_sync() into bitmap_operations
      md/md-bitmap: merge md_bitmap_close_sync() into bitmap_operations
      md/md-bitmap: merge md_bitmap_cond_end_sync() into bitmap_operations
      md/md-bitmap: merge md_bitmap_sync_with_cluster() into bitmap_operations
      md/md-bitmap: merge md_bitmap_unplug_async() into md_bitmap_unplug()
      md/md-bitmap: merge bitmap_unplug() into bitmap_operations
      md/md-bitmap: merge md_bitmap_daemon_work() into bitmap_operations
      md/md-bitmap: pass in mddev directly for md_bitmap_resize()
      md/md-bitmap: merge md_bitmap_resize() into bitmap_operations
      md/md-bitmap: merge get_bitmap_from_slot() into bitmap_operations
      md/md-bitmap: merge md_bitmap_copy_from_slot() into struct bitmap_operation.
      md/md-bitmap: merge md_bitmap_set_pages() into struct bitmap_operations
      md/md-bitmap: merge md_bitmap_free() into bitmap_operations
      md/md-bitmap: merge md_bitmap_wait_behind_writes() into bitmap_operations
      md/md-bitmap: merge md_bitmap_enabled() into bitmap_operations
      md/md-bitmap: make in memory structure internal
      md: Remove flush handling
      block, bfq: fix possible UAF for bfqq->bic with merge chain
      block, bfq: choose the last bfqq from merge chain in bfq_setup_cooperator()
      block, bfq: don't break merge chain in bfq_split_bfqq()
      block, bfq: use bfq_reassign_last_bfqq() in bfq_bfqq_move()
      MAINTAINERS: Move the BFQ io scheduler to Odd Fixes state
      blk-throttle: remove last_low_overflow_time
      blk-throttle: support prioritized processing of metadata
      block, bfq: fix uaf for accessing waker_bfqq after splitting
      block, bfq: fix procress reference leakage for bfqq in merge chain
      block, bfq: merge bfq_release_process_ref() into bfq_put_cooperator()
      block, bfq: remove bfq_log_bfqg()
      block, bfq: remove local variable 'split' in bfq_init_rq()
      block, bfq: remove local variable 'bfqq_already_existing' in bfq_init_rq()
      block, bfq: factor out a helper to split bfqq in bfq_init_rq()

Yue Haibing (1):
      blk-cgroup: Remove unused declaration blkg_path()

YueHaibing (1):
      drbd: Remove unused extern declarations

 MAINTAINERS                       |   5 +-
 block/bfq-cgroup.c                |   8 +-
 block/bfq-iosched.c               | 206 +++++++-------
 block/bfq-iosched.h               |   8 +-
 block/bio.c                       | 112 ++++++--
 block/blk-cgroup.c                |  23 +-
 block/blk-cgroup.h                |   1 -
 block/blk-iocost.c                |  10 +-
 block/blk-ioprio.c                |  57 +---
 block/blk-ioprio.h                |   9 -
 block/blk-merge.c                 | 162 +++++------
 block/blk-mq.c                    |  14 +-
 block/blk-rq-qos.c                |   2 +-
 block/blk-throttle.c              |  69 +++--
 block/blk-throttle.h              |   2 -
 block/blk.h                       |  74 +++--
 block/ioctl.c                     |   9 +-
 block/partitions/core.c           |   8 +-
 block/t10-pi.c                    |   8 +-
 drivers/block/drbd/drbd_int.h     |  11 -
 drivers/block/drbd/drbd_main.c    |   2 +-
 drivers/block/drbd/drbd_state.c   |   2 +-
 drivers/block/mtip32xx/mtip32xx.c |  19 +-
 drivers/block/nbd.c               |  28 +-
 drivers/block/pktcdvd.c           |   2 -
 drivers/block/rnbd/rnbd-srv.c     |  11 +-
 drivers/block/ublk_drv.c          |  62 +++--
 drivers/block/zram/zram_drv.c     |  16 +-
 drivers/block/zram/zram_drv.h     |   7 +-
 drivers/md/dm-raid.c              |   7 +-
 drivers/md/md-bitmap.c            | 568 +++++++++++++++++++++++++++++---------
 drivers/md/md-bitmap.h            | 268 ++++--------------
 drivers/md/md-cluster.c           |  91 +++---
 drivers/md/md.c                   | 332 ++++++++++------------
 drivers/md/md.h                   |  13 +-
 drivers/md/raid1-10.c             |   9 +-
 drivers/md/raid1.c                |  99 +++----
 drivers/md/raid10.c               |  75 ++---
 drivers/md/raid5-cache.c          |  14 +-
 drivers/md/raid5.c                | 157 ++++++-----
 drivers/md/raid5.h                |   2 +-
 drivers/nvme/common/keyring.c     |  58 +++-
 drivers/nvme/host/Kconfig         |   3 +-
 drivers/nvme/host/core.c          |  47 +++-
 drivers/nvme/host/fabrics.c       |   2 +-
 drivers/nvme/host/ioctl.c         |  26 +-
 drivers/nvme/host/nvme.h          |   7 +-
 drivers/nvme/host/pci.c           |  18 +-
 drivers/nvme/host/rdma.c          |   6 +-
 drivers/nvme/host/sysfs.c         |  90 ++++--
 drivers/nvme/host/tcp.c           |  57 +++-
 drivers/nvme/target/admin-cmd.c   |   2 -
 drivers/nvme/target/auth.c        |  12 +
 drivers/nvme/target/rdma.c        |   4 +-
 fs/btrfs/bio.c                    |  30 +-
 include/linux/bio.h               |   4 +-
 include/linux/blkdev.h            |   3 +-
 include/linux/mm.h                |   1 +
 include/linux/net.h               |  19 ++
 include/linux/nvme-keyring.h      |   6 +-
 include/linux/nvme-rdma.h         |   6 +-
 include/linux/nvme.h              |   8 +-
 include/uapi/linux/nbd.h          |   8 +-
 mm/gup.c                          |  13 +
 64 files changed, 1711 insertions(+), 1301 deletions(-)

-- 
Jens Axboe


.
Subject: [PATCHv5 0/9] block integrity merging and counting
From: Keith Busch <kbusch@meta.com>
To: <axboe@kernel.dk>, <hch@lst.de>, <martin.petersen@oracle.com>,
        <linux-block@vger.kernel.org>, <linux-nvme@lists.infradead.org>,
        <linux-scsi@vger.kernel.org>
Date: Fri, 13 Sep 2024 11:28:45 -0700

.
Subject: [PATCHv6] blk-integrity: improved sg segment mapping
From: Keith Busch <kbusch@meta.com>
To: <axboe@kernel.dk>, <linux-block@vger.kernel.org>
Date: Fri, 13 Sep 2024 12:17:46 -0700

.
