From: Christian Schoenebeck <qemu_oss@crudebyte.com>
To: qemu-devel@nongnu.org
Cc: Greg Kurz <groug@kaod.org>
Subject: [PATCH v6 0/5] 9pfs: readdir optimization
Date: Sun, 19 Apr 2020 17:10:14 +0200 [thread overview]
Message-ID: <cover.1587309014.git.qemu_oss@crudebyte.com> (raw)
As previously mentioned, I was investigating performance issues with 9pfs.
Raw file read/write of 9pfs is actually quite good, provided that client
picked a reasonable high msize (maximum message size). I would recommend
to log a warning on 9p server side if a client attached with a small msize
that would cause performance issues for that reason.
However there are other aspects where 9pfs currently performs suboptimally,
especially readdir handling of 9pfs is extremely slow, a simple readdir
request of a guest typically blocks for several hundred milliseconds or
even several seconds, no matter how powerful the underlying hardware is.
The reason for this performance issue: latency.
Currently 9pfs is heavily dispatching a T_readdir request numerous times
between main I/O thread and a background I/O thread back and forth; in fact
it is actually hopping between threads even multiple times for every single
directory entry during T_readdir request handling which leads in total to
huge latencies for a single T_readdir request.
This patch series aims to address this severe performance issue of 9pfs
T_readdir request handling. The actual performance optimization is patch 4.
v5->v6:
* Rebased to tag: v5.0.0-rc3 (SHA-1 20038cd7).
* Dropped patch 2 ("9pfs readdir: rename max_count -> maxsize").
Message-ID of previous version (v5):
cover.1585258105.git.qemu_oss@crudebyte.com
Message-ID of version with performance benchmark (v4):
cover.1579567019.git.qemu_oss@crudebyte.com
Christian Schoenebeck (5):
tests/virtio-9p: added split readdir tests
9pfs: make v9fs_readdir_response_size() public
9pfs: add new function v9fs_co_readdir_many()
9pfs: T_readdir latency optimization
9pfs: clarify latency of v9fs_co_run_in_worker()
hw/9pfs/9p.c | 130 ++++++++++++-------------
hw/9pfs/9p.h | 23 +++++
hw/9pfs/codir.c | 181 ++++++++++++++++++++++++++++++++---
hw/9pfs/coth.h | 15 ++-
tests/qtest/virtio-9p-test.c | 108 +++++++++++++++++++++
5 files changed, 377 insertions(+), 80 deletions(-)
--
2.20.1
next reply other threads:[~2020-04-19 16:26 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-19 15:10 Christian Schoenebeck [this message]
2020-04-19 15:00 ` [PATCH v6 1/5] tests/virtio-9p: added split readdir tests Christian Schoenebeck
2020-04-19 15:00 ` [PATCH v6 2/5] 9pfs: make v9fs_readdir_response_size() public Christian Schoenebeck
2020-04-19 15:02 ` [PATCH v6 3/5] 9pfs: add new function v9fs_co_readdir_many() Christian Schoenebeck
2020-04-30 11:42 ` Greg Kurz
2020-04-30 12:50 ` Christian Schoenebeck
2020-04-30 13:30 ` Greg Kurz
2020-05-01 14:04 ` Christian Schoenebeck
2020-05-04 9:18 ` Greg Kurz
2020-05-04 10:08 ` Christian Schoenebeck
2020-05-07 12:16 ` Christian Schoenebeck
2020-05-07 15:59 ` Greg Kurz
2020-04-19 15:06 ` [PATCH v6 4/5] 9pfs: T_readdir latency optimization Christian Schoenebeck
2020-06-03 17:16 ` Christian Schoenebeck
2020-06-29 16:39 ` Greg Kurz
2020-06-30 15:16 ` Christian Schoenebeck
2020-06-30 16:39 ` Greg Kurz
2020-06-30 18:00 ` Christian Schoenebeck
2020-07-01 10:09 ` Greg Kurz
2020-07-01 11:47 ` Christian Schoenebeck
2020-07-01 15:12 ` Greg Kurz
2020-07-02 11:43 ` Christian Schoenebeck
2020-07-02 15:35 ` Greg Kurz
2020-07-02 17:23 ` Christian Schoenebeck
2020-07-03 8:08 ` Christian Schoenebeck
2020-07-03 16:08 ` Greg Kurz
2020-07-03 18:27 ` Christian Schoenebeck
2020-07-03 15:53 ` Greg Kurz
2020-07-03 18:12 ` Christian Schoenebeck
2020-04-19 15:07 ` [PATCH v6 5/5] 9pfs: clarify latency of v9fs_co_run_in_worker() Christian Schoenebeck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=cover.1587309014.git.qemu_oss@crudebyte.com \
--to=qemu_oss@crudebyte.com \
--cc=groug@kaod.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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.