mirror of
https://git.proxmox.com/git/mirror_zfs.git
synced 2025-01-27 02:14:28 +03:00
Disable write merging on ZVOLs
The current ZVOL implementation does not explicitly set merge options on ZVOL device queues, which results in the default merge behavior. Explicitly set QUEUE_FLAG_NOMERGES on ZVOL queues allowing the ZIO pipeline to do its work. Initial benchmarks (tiotest with no O_DIRECT) show random write performance going up almost 3X on 8K ZVOLs, even after significant rewrites of the logical space allocation. Reviewed-by: Richard Yao <ryao@gentoo.org> Reviewed-by: Chunwei Chen <david.chen@osnexus.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: RageLtMan <rageltman@sempervictus> Issue #5902
This commit is contained in:
parent
4cb932d951
commit
5731140eaf
@ -1468,6 +1468,9 @@ zvol_alloc(dev_t dev, const char *name)
|
||||
blk_queue_make_request(zv->zv_queue, zvol_request);
|
||||
blk_queue_set_write_cache(zv->zv_queue, B_TRUE, B_TRUE);
|
||||
|
||||
/* Disable write merging in favor of the ZIO pipeline. */
|
||||
queue_flag_set(QUEUE_FLAG_NOMERGES, zv->zv_queue);
|
||||
|
||||
zv->zv_disk = alloc_disk(ZVOL_MINORS);
|
||||
if (zv->zv_disk == NULL)
|
||||
goto out_queue;
|
||||
|
Loading…
Reference in New Issue
Block a user