[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 100/104] virtiofsd: process requests in a thread pool

From: Misono Tomohiro
Subject: Re: [PATCH 100/104] virtiofsd: process requests in a thread pool
Date: Mon, 20 Jan 2020 21:54:55 +0900

> From: Stefan Hajnoczi <address@hidden>
> Introduce a thread pool so that fv_queue_thread() just pops
> VuVirtqElements and hands them to the thread pool.  For the time being
> only one worker thread is allowed since passthrough_ll.c is not
> thread-safe yet.  Future patches will lift this restriction so that
> multiple FUSE requests can be processed in parallel.
> The main new concept is struct FVRequest, which contains both
> VuVirtqElement and struct fuse_chan.  We now have fv_VuDev for a device,
> fv_QueueInfo for a virtqueue, and FVRequest for a request.  Some of
> fv_QueueInfo's fields are moved into FVRequest because they are
> per-request.  The name FVRequest conforms to QEMU coding style and I
> expect the struct fv_* types will be renamed in a future refactoring.
> This patch series is not optimal.  fbuf reuse is dropped so each request
> does malloc(se->bufsize), but there is no clean and cheap way to keep
> this with a thread pool.  The vq_lock mutex is held for longer than
> necessary, especially during the eventfd_write() syscall.  Performance
> can be improved in the future.
> prctl(2) had to be added to the seccomp whitelist because glib invokes
> it.
> Signed-off-by: Stefan Hajnoczi <address@hidden>

Looks good to me.
 Reviewed-by: Misono Tomohiro <address@hidden>

reply via email to

[Prev in Thread] Current Thread [Next in Thread]