mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 07:12:09 +00:00
nbd: add multi-connection support
NBD can become contended on its single connection. We have to serialize all writes and we can only process one read response at a time. Fix this by allowing userspace to provide multiple connections to a single nbd device. This coupled with block-mq drastically increases performance in multi-process cases. Thanks, Signed-off-by: Josef Bacik <jbacik@fb.com> Signed-off-by: Jens Axboe <axboe@fb.com>
This commit is contained in:
parent
e00f4f4d0f
commit
9561a7ade0
2 changed files with 244 additions and 149 deletions
|
@ -38,11 +38,12 @@ enum {
|
|||
};
|
||||
|
||||
/* values for flags field */
|
||||
#define NBD_FLAG_HAS_FLAGS (1 << 0) /* nbd-server supports flags */
|
||||
#define NBD_FLAG_READ_ONLY (1 << 1) /* device is read-only */
|
||||
#define NBD_FLAG_SEND_FLUSH (1 << 2) /* can flush writeback cache */
|
||||
#define NBD_FLAG_HAS_FLAGS (1 << 0) /* nbd-server supports flags */
|
||||
#define NBD_FLAG_READ_ONLY (1 << 1) /* device is read-only */
|
||||
#define NBD_FLAG_SEND_FLUSH (1 << 2) /* can flush writeback cache */
|
||||
/* there is a gap here to match userspace */
|
||||
#define NBD_FLAG_SEND_TRIM (1 << 5) /* send trim/discard */
|
||||
#define NBD_FLAG_SEND_TRIM (1 << 5) /* send trim/discard */
|
||||
#define NBD_FLAG_CAN_MULTI_CONN (1 << 7) /* Server supports multiple connections per export. */
|
||||
|
||||
/* userspace doesn't need the nbd_device structure */
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue