All of lore.kernel.org
 help / color / mirror / Atom feed
* [Virtio-fs] Achieving parallelism in virtiofsd
@ 2019-07-04 10:46 Stefan Hajnoczi
  2019-07-05  4:43 ` piaojun
                   ` (2 more replies)
  0 siblings, 3 replies; 10+ messages in thread
From: Stefan Hajnoczi @ 2019-07-04 10:46 UTC (permalink / raw)
  To: virtio-fs

[-- Attachment #1: Type: text/plain, Size: 1361 bytes --]

Hi,
Here are my plans for achieving parallelism in virtiofsd.  This will
improve performance for workloads that keep more than one request in
flight at a time.

Today virtiofsd performance is limited because it only processes 1
request at a time.  This can be improved in two independent ways:
parallel request processing and multiqueue.

Parallel request processing means working on more than one request at a
time.  A request that blocks should not prevent the next request from
executing.  The FUSE protocol is asynchronous so it's just a question of
adjusting virtiofsd.

Multiqueue means providing several request virtqueues instead of just
one.  This can be used with CPU and NUMA pinning so that request
processing takes place on a core and NUMA node.  Better locality can
result in higher performance.

virtiofsd needs to offer both of these features.  The model I'm
proposing is one thread per virtqueue which distributes requests to a
thread pool for execution.  Each virtqueue thread and its thread pool
can be bound to a subset of CPUs.

Separate optimizations such as virtqueue polling could be added later to
reduce latency.

I plan to use the glib thread pool, which offers the basic functionality
that virtiofsd requires.  In the process of this work I will also audit
and fix passthrough_ll.c's thread-safety.

Feedback is appreciated!

Stefan

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

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

end of thread, other threads:[~2019-07-09  9:31 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-07-04 10:46 [Virtio-fs] Achieving parallelism in virtiofsd Stefan Hajnoczi
2019-07-05  4:43 ` piaojun
2019-07-05  8:04   ` Stefan Hajnoczi
2019-07-05  8:14     ` Peng Tao
2019-07-05  9:56       ` Liu, Changpeng
2019-07-05  8:22     ` piaojun
2019-07-08 13:55 ` Vivek Goyal
2019-07-08 15:08 ` Dr. David Alan Gilbert
2019-07-09  8:15   ` Stefan Hajnoczi
2019-07-09  9:31     ` Miklos Szeredi

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.