Thank you so much for your information.
Actually I am researching the nbd.c in SPDK and nbd module in kernel in
these few days,
and try to find out a way to increase the performance.
As you mentioned in e-mail , currently the data exchange method is
transfering whole r/w data.
My current plan is to modify nbd in both side and only transfer the
address of the data.
* I hope my modification can work. *
*I will give a try to * "overlapped I/O" support you mentioned in e-mail
Thank you again for your response.
2018-01-04 0:18 GMT+08:00 Harris, James R <james.r.harris(a)intel.com>:
The SPDK nbd target implementation currently does not really support
overlapped I/O – it will wait for each I/O to complete before starting to
process the next I/O. Xiaodong Liu from Intel is working on adding
overlapped I/O support – you can see his patch in progress here:
Note that nbd still incurs an extra data copy between kernel and
userspace. So the overlapped I/O support may help increase performance but
CPU efficiency will still be limited by these extra data copies.
*From: *SPDK <spdk-bounces(a)lists.01.org> on behalf of 張安男 <
*Reply-To: *Storage Performance Development Kit <spdk(a)lists.01.org>
*Date: *Saturday, December 30, 2017 at 9:39 PM
*To: *"spdk(a)lists.01.org" <spdk(a)lists.01.org>
*Subject: *[SPDK] expose an SPDK bdev to linux kernel block
Recently we have a requirement for access SPDK bdev from kernel
block device. I had try two methods:
(1) expose the SPDK block device from iscsi and connect the iscsi device
from the same host.
(2)Use SPDK provided the connection from /dev/nbd.
These two methods can let us access the SPDK block device from /dev/xxx ,
but the performance is not well. The performance is only about 50K IOPS.
So, does anyone can give us any suggestion of how to access SPDK
block device from kernel block device with high performance???
Any suggestion is appreciated.
SPDK mailing list