mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2026-05-22 18:40:43 +03:00
Add vdev property to disable vdev scheduler
Added vdev property to disable the vdev scheduler. The intention behind this property is to improve IOPS performance when using o_direct. Reviewed-by: Tony Hutter <hutter2@llnl.gov> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Alexander Motin <alexander.motin@TrueNAS.com> Signed-off-by: MigeljanImeri <ImeriMigel@gmail.com> Closes #17358
This commit is contained in:
@@ -389,9 +389,22 @@ typedef enum {
|
||||
VDEV_PROP_SIT_OUT,
|
||||
VDEV_PROP_AUTOSIT,
|
||||
VDEV_PROP_SLOW_IO_EVENTS,
|
||||
VDEV_PROP_SCHEDULER,
|
||||
VDEV_NUM_PROPS
|
||||
} vdev_prop_t;
|
||||
|
||||
/*
|
||||
* Different scheduling behaviors for vdev scheduler property.
|
||||
* VDEV_SCHEDULER_AUTO = Let ZFS decide - currently use scheduler on HDDs only.
|
||||
* VDEV_SCHEDULER_ON = Always queue.
|
||||
* VDEV_SCHEDULER_OFF = Never queue.
|
||||
*/
|
||||
typedef enum {
|
||||
VDEV_SCHEDULER_AUTO,
|
||||
VDEV_SCHEDULER_ON,
|
||||
VDEV_SCHEDULER_OFF
|
||||
} vdev_scheduler_type_t;
|
||||
|
||||
/*
|
||||
* Dataset property functions shared between libzfs and kernel.
|
||||
*/
|
||||
|
||||
@@ -425,6 +425,7 @@ struct vdev {
|
||||
boolean_t vdev_resilver_deferred; /* resilver deferred */
|
||||
boolean_t vdev_kobj_flag; /* kobj event record */
|
||||
boolean_t vdev_attaching; /* vdev attach ashift handling */
|
||||
boolean_t vdev_is_blkdev; /* vdev is backed by block device */
|
||||
vdev_queue_t vdev_queue; /* I/O deadline schedule queue */
|
||||
spa_aux_vdev_t *vdev_aux; /* for l2cache and spares vdevs */
|
||||
zio_t *vdev_probe_zio; /* root of current probe */
|
||||
@@ -473,6 +474,7 @@ struct vdev {
|
||||
boolean_t vdev_slow_io_events;
|
||||
uint64_t vdev_slow_io_n;
|
||||
uint64_t vdev_slow_io_t;
|
||||
uint64_t vdev_scheduler; /* control how I/Os are submitted */
|
||||
};
|
||||
|
||||
#define VDEV_PAD_SIZE (8 << 10)
|
||||
|
||||
Reference in New Issue
Block a user