Commit 9dd6956b authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'for-6.4/block-2023-04-21' of git://git.kernel.dk/linux

Pull block updates from Jens Axboe:

 - drbd patches, bringing us closer to unifying the out-of-tree version
   and the in tree one (Andreas, Christoph)

 - support for auto-quiesce for the s390 dasd driver (Stefan)

 - MD pull request via Song:
      - md/bitmap: Optimal last page size (Jon Derrick)
      - Various raid10 fixes (Yu Kuai, Li Nan)
      - md: add error_handlers for raid0 and linear (Mariusz Tkaczyk)

 - NVMe pull request via Christoph:
      - Drop redundant pci_enable_pcie_error_reporting (Bjorn Helgaas)
      - Validate nvmet module parameters (Chaitanya Kulkarni)
      - Fence TCP socket on receive error (Chris Leech)
      - Fix async event trace event (Keith Busch)
      - Minor cleanups (Chaitanya Kulkarni, zhenwei pi)
      - Fix and cleanup nvmet Identify handling (Damien Le Moal,
        Christoph Hellwig)
      - Fix double blk_mq_complete_request race in the timeout handler
        (Lei Yin)
      - Fix irq locking in nvme-fcloop (Ming Lei)
      - Remove queue mapping helper for rdma devices (Sagi Grimberg)

 - use structured request attribute checks for nbd (Jakub)

 - fix blk-crypto race conditions between keyslot management (Eric)

 - add sed-opal support for reading read locking range attributes
   (Ondrej)

 - make fault injection configurable for null_blk (Akinobu)

 - clean up the request insertion API (Christoph)

 - clean up the queue running API (Christoph)

 - blkg config helper cleanups (Tejun)

 - lazy init support for blk-iolatency (Tejun)

 - various fixes and tweaks to ublk (Ming)

 - remove hybrid polling. It hasn't really been useful since we got
   async polled IO support, and these days we don't support sync polled
   IO at all (Keith)

 - misc fixes, cleanups, improvements (Zhong, Ondrej, Colin, Chengming,
   Chaitanya, me)

* tag 'for-6.4/block-2023-04-21' of git://git.kernel.dk/linux: (118 commits)
  nbd: fix incomplete validation of ioctl arg
  ublk: don't return 0 in case of any failure
  sed-opal: geometry feature reporting command
  null_blk: Always check queue mode setting from configfs
  block: ublk: switch to ioctl command encoding
  blk-mq: fix the blk_mq_add_to_requeue_list call in blk_kick_flush
  block, bfq: Fix division by zero error on zero wsum
  fault-inject: fix build error when FAULT_INJECTION_CONFIGFS=y and CONFIGFS_FS=m
  block: store bdev->bd_disk->fops->submit_bio state in bdev
  block: re-arrange the struct block_device fields for better layout
  md/raid5: remove unused working_disks variable
  md/raid10: don't call bio_start_io_acct twice for bio which experienced read error
  md/raid10: fix memleak of md thread
  md/raid10: fix memleak for 'conf->bio_split'
  md/raid10: fix leak of 'r10bio->remaining' for recovery
  md/raid10: don't BUG_ON() in raise_barrier()
  md: fix soft lockup in status_resync
  md: add error_handlers for raid0 and linear
  md: Use optimal I/O size for last bitmap page
  md: Fix types in sb writer
  ...
parents 5b9a7bb7 55793ea5
Loading
Loading
Loading
Loading
+4 −11
Original line number Diff line number Diff line
@@ -336,18 +336,11 @@ What: /sys/block/<disk>/queue/io_poll_delay
Date:		November 2016
Contact:	linux-block@vger.kernel.org
Description:
		[RW] If polling is enabled, this controls what kind of polling
		will be performed. It defaults to -1, which is classic polling.
		[RW] This was used to control what kind of polling will be
		performed.  It is now fixed to -1, which is classic polling.
		In this mode, the CPU will repeatedly ask for completions
		without giving up any time.  If set to 0, a hybrid polling mode
		is used, where the kernel will attempt to make an educated guess
		at when the IO will complete. Based on this guess, the kernel
		will put the process issuing IO to sleep for an amount of time,
		before entering a classic poll loop. This mode might be a little
		slower than pure classic polling, but it will be more efficient.
		If set to a value larger than 0, the kernel will put the process
		issuing IO to sleep for this amount of microseconds before
		entering classic polling.
		without giving up any time.
		<deprecated>


What:		/sys/block/<disk>/queue/io_timeout
+1 −2
Original line number Diff line number Diff line
@@ -270,8 +270,7 @@ Request queue based layered devices like dm-rq that wish to support inline
encryption need to create their own blk_crypto_profile for their request_queue,
and expose whatever functionality they choose. When a layered device wants to
pass a clone of that request to another request_queue, blk-crypto will
initialize and prepare the clone as necessary; see
``blk_crypto_insert_cloned_request()``.
initialize and prepare the clone as necessary.

Interaction between inline encryption and blk integrity
=======================================================
+8 −0
Original line number Diff line number Diff line
@@ -52,6 +52,14 @@ Available fault injection capabilities
  status code is NVME_SC_INVALID_OPCODE with no retry. The status code and
  retry flag can be set via the debugfs.

- Null test block driver fault injection

  inject IO timeouts by setting config items under
  /sys/kernel/config/nullb/<disk>/timeout_inject,
  inject requeue requests by setting config items under
  /sys/kernel/config/nullb/<disk>/requeue_inject, and
  inject init_hctx() errors by setting config items under
  /sys/kernel/config/nullb/<disk>/init_hctx_fault_inject.

Configure fault-injection capabilities behavior
-----------------------------------------------
+2 −0
Original line number Diff line number Diff line
@@ -78,6 +78,7 @@ typedef struct dasd_information2_t {
 * 0x040: give access to raw eckd data
 * 0x080: enable discard support
 * 0x100: enable autodisable for IFCC errors (default)
 * 0x200: enable requeue of all requests on autoquiesce
 */
#define DASD_FEATURE_READONLY	      0x001
#define DASD_FEATURE_USEDIAG	      0x002
@@ -88,6 +89,7 @@ typedef struct dasd_information2_t {
#define DASD_FEATURE_USERAW	      0x040
#define DASD_FEATURE_DISCARD	      0x080
#define DASD_FEATURE_PATH_AUTODISABLE 0x100
#define DASD_FEATURE_REQUEUEQUIESCE   0x200
#define DASD_FEATURE_DEFAULT	      DASD_FEATURE_PATH_AUTODISABLE

#define DASD_PARTN_BITS 2
+0 −5
Original line number Diff line number Diff line
@@ -215,11 +215,6 @@ config BLK_MQ_VIRTIO
	depends on VIRTIO
	default y

config BLK_MQ_RDMA
	bool
	depends on INFINIBAND
	default y

config BLK_PM
	def_bool PM

Loading