summaryrefslogtreecommitdiffstats
path: root/src/kernel/core.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/core.c')
-rw-r--r--src/kernel/core.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/kernel/core.c b/src/kernel/core.c
index 7e05505..ef41158 100644
--- a/src/kernel/core.c
+++ b/src/kernel/core.c
@@ -277,12 +277,21 @@ int dnbd3_add_device(struct dnbd3_device *dev, int minor)
dev->tag_set.ops = &dnbd3_mq_ops;
/* this can be changed later with blk_mq_update_nr_hw_queues() */
dev->tag_set.nr_hw_queues = 1;
- dev->tag_set.timeout = 5 * HZ;
+ dev->tag_set.timeout = 10 * HZ;
dev->tag_set.queue_depth = 128;
dev->tag_set.numa_node = NUMA_NO_NODE;
dev->tag_set.cmd_size = sizeof(struct dnbd3_cmd);
- dev->tag_set.flags = BLK_MQ_F_SHOULD_MERGE | BLK_MQ_F_SG_MERGE |
- BLK_MQ_F_BLOCKING;
+ /*
+ * nbd has this flags set (ther is no documentation)
+ * BLK_MQ_F_SHOULD_MERGE: Reverse check our software queue for entries
+ * that we could potentially merge with
+ * BLK_MQ_F_SG_MERGE: If SG merging is disabled, each bio vector is
+ * a segment.
+ * BLK_MQ_F_BLOCKING: Wait for rcu if blocking, else wait for rcu in
+ * each queue.
+ */
+ dev->tag_set.flags = BLK_MQ_F_SHOULD_MERGE | BLK_MQ_F_SG_MERGE;
+// | BLK_MQ_F_BLOCKING;
dev->tag_set.driver_data = dev;
err = blk_mq_alloc_tag_set(&dev->tag_set);