All of lore.kernel.org
 help / color / mirror / Atom feed
* [Virtio-fs] [PATCH v5 0/2] virtiofsd: Improve io bandwidth by replacing pwrite with pwritev
@ 2019-08-15  0:54 piaojun
  2019-08-15  0:57 ` [Virtio-fs] [PATCH v5 1/2] virtiofsd: add definition of fuse_buf_writev() piaojun
  2019-08-15  0:59 ` [Virtio-fs] [PATCH v5 2/2] virtiofsd: use fuse_buf_writev to replace fuse_buf_write for better performance piaojun
  0 siblings, 2 replies; 3+ messages in thread
From: piaojun @ 2019-08-15  0:54 UTC (permalink / raw)
  To: virtio-fs

>From my test, write bandwidth will be improved greatly by replacing
pwrite with pwritev, and the test result as below:

---
pwrite:
# fio -direct=1 -time_based -iodepth=64 -rw=randwrite -ioengine=libaio -bs=1M -size=1G -numjob=16 -runtime=30 -group_reporting -name=file -filename=/mnt/virtiofs/file
file: (g=0): rw=randwrite, bs=1M-1M/1M-1M/1M-1M, ioengine=libaio, iodepth=64
...
fio-2.13
Starting 16 processes
Jobs: 16 (f=16): [w(16)] [100.0% done] [0KB/886.0MB/0KB /s] [0/886/0 iops] [eta 00m:00s]
file: (groupid=0, jobs=16): err= 0: pid=5799: Tue Aug 6 18:48:26 2019
write: io=26881MB, bw=916988KB/s, iops=895, runt= 30018msec

pwritev:
# fio -direct=1 -time_based -iodepth=64 -rw=randwrite -ioengine=libaio -bs=1M -size=1G -numjob=16 -runtime=30 -group_reporting -name=file -filename=/mnt/virtiofs/file
file: (g=0): rw=randwrite, bs=1M-1M/1M-1M/1M-1M, ioengine=libaio, iodepth=64
...
fio-2.13
Starting 16 processes
Jobs: 16 (f=16): [w(16)] [100.0% done] [0KB/1793MB/0KB /s] [0/1793/0 iops] [eta 00m:00s]
file: (groupid=0, jobs=16): err= 0: pid=6328: Tue Aug 6 18:22:17 2019
write: io=52775MB, bw=1758.7MB/s, iops=1758, runt= 30009msec
---

This patch introduces writev and pwritev for lo_write_buf().

v2
  - Split into two patches
  - Add the lost flags support, such as FUSE_BUF_PHYS_ADDR

v3
  - use git send-email to make the patch set in one thread
  - move fuse_buf_writev() into fuse_buf_copy()
  - use writev for the src buffers when they're alread already mapped by the daemon process
  - use calloc to replace malloc
  - set res 0 if writev() returns 0

v4
  - iterate from in_buf->buf[0] rather than buf[1]
  - optimize the code to make it more elegant

v5
  - add some check for preconditions of the buffers

Jun Piao (2):
  add definition of fuse_buf_writev().
  use fuse_buf_writev to replace fuse_buf_write for better performance

Signed-off-by: Jun Piao <piaojun@huawei.com>
---
 buffer.c  |   43 +++++++++++++++++++++++++++++++++++++++++++
 seccomp.c |    2 ++
 2 files changed, 45 insertions(+)
--


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-08-15  0:59 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-08-15  0:54 [Virtio-fs] [PATCH v5 0/2] virtiofsd: Improve io bandwidth by replacing pwrite with pwritev piaojun
2019-08-15  0:57 ` [Virtio-fs] [PATCH v5 1/2] virtiofsd: add definition of fuse_buf_writev() piaojun
2019-08-15  0:59 ` [Virtio-fs] [PATCH v5 2/2] virtiofsd: use fuse_buf_writev to replace fuse_buf_write for better performance piaojun

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.