diff options
Diffstat (limited to 'src/kernel/core.c')
-rw-r--r-- | src/kernel/core.c | 15 |
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); |