mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 02:27:36 +03:00
zvol: Temporally disable blk-mq
There was a report of zvol data loss (#15351) after enabling blk-mq on a zvol backed with 16k physical block sized disks. Out of an abundance of caution, do not allow the user to enable blk-mq until we can look into the issue. Note that blk-mq was not enabled by default on zvols. It was always opt-in via the zvol_use_blk_mq module parameter. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Tony Nguyen <tony.nguyen@delphix.com> Signed-off-by: Tony Hutter <hutter2@llnl.gov> Addresses: #15351 Closes #15378
This commit is contained in:
committed by
Brian Behlendorf
parent
111ae3364c
commit
a80e1f1c90
@@ -2317,63 +2317,6 @@ If
|
||||
.Sy zvol_threads
|
||||
to the number of CPUs present or 32 (whichever is greater).
|
||||
.
|
||||
.It Sy zvol_blk_mq_threads Ns = Ns Sy 0 Pq uint
|
||||
The number of threads per zvol to use for queuing IO requests.
|
||||
This parameter will only appear if your kernel supports
|
||||
.Li blk-mq
|
||||
and is only read and assigned to a zvol at zvol load time.
|
||||
If
|
||||
.Sy 0
|
||||
(the default) then internally set
|
||||
.Sy zvol_blk_mq_threads
|
||||
to the number of CPUs present.
|
||||
.
|
||||
.It Sy zvol_use_blk_mq Ns = Ns Sy 0 Ns | Ns 1 Pq uint
|
||||
Set to
|
||||
.Sy 1
|
||||
to use the
|
||||
.Li blk-mq
|
||||
API for zvols.
|
||||
Set to
|
||||
.Sy 0
|
||||
(the default) to use the legacy zvol APIs.
|
||||
This setting can give better or worse zvol performance depending on
|
||||
the workload.
|
||||
This parameter will only appear if your kernel supports
|
||||
.Li blk-mq
|
||||
and is only read and assigned to a zvol at zvol load time.
|
||||
.
|
||||
.It Sy zvol_blk_mq_blocks_per_thread Ns = Ns Sy 8 Pq uint
|
||||
If
|
||||
.Sy zvol_use_blk_mq
|
||||
is enabled, then process this number of
|
||||
.Sy volblocksize Ns -sized blocks per zvol thread.
|
||||
This tunable can be use to favor better performance for zvol reads (lower
|
||||
values) or writes (higher values).
|
||||
If set to
|
||||
.Sy 0 ,
|
||||
then the zvol layer will process the maximum number of blocks
|
||||
per thread that it can.
|
||||
This parameter will only appear if your kernel supports
|
||||
.Li blk-mq
|
||||
and is only applied at each zvol's load time.
|
||||
.
|
||||
.It Sy zvol_blk_mq_queue_depth Ns = Ns Sy 0 Pq uint
|
||||
The queue_depth value for the zvol
|
||||
.Li blk-mq
|
||||
interface.
|
||||
This parameter will only appear if your kernel supports
|
||||
.Li blk-mq
|
||||
and is only applied at each zvol's load time.
|
||||
If
|
||||
.Sy 0
|
||||
(the default) then use the kernel's default queue depth.
|
||||
Values are clamped to the kernel's
|
||||
.Dv BLKDEV_MIN_RQ
|
||||
and
|
||||
.Dv BLKDEV_MAX_RQ Ns / Ns Dv BLKDEV_DEFAULT_RQ
|
||||
limits.
|
||||
.
|
||||
.It Sy zvol_volmode Ns = Ns Sy 1 Pq uint
|
||||
Defines zvol block devices behaviour when
|
||||
.Sy volmode Ns = Ns Sy default :
|
||||
|
||||
Reference in New Issue
Block a user