From: "Venkateswararao Jujjuri (JV)" <jvrao@linux.vnet.ibm.com>
To: qemu-devel@nongnu.org
Cc: aliguori@us.ibm.com,
"Venkateswararao Jujjuri \"" <jvrao@linux.vnet.ibm.com>,
stefanha@linux.vnet.ibm.com
Subject: [Qemu-devel] [V2 0/25] Async threading for VirtFS using glib threads & coroutines.
Date: Tue, 17 May 2011 12:43:26 -0700 [thread overview]
Message-ID: <1305661431-21289-1-git-send-email-jvrao@linux.vnet.ibm.com> (raw)
VirtFS (fileserver base on 9P) performs many blocking system calls in the
vCPU context. This effort is to move the blocking calls out of vCPU/IO
thread context, into asynchronous threads.
Anthony's " Add hard build dependency on glib" patch and
Kevin/Stefan's coroutine effort is a prerequisite.
Changes from V1
---------------
o Redesigned to use bh as per Stefan's suggestion.
This made the code very simple but is little less performant compared to V1.
Anthony suggested to go-in with cleaner code and design (This version) and
deal with the performance later.
Just to put in perspective:
Sequential Writes of creating 1GB files using ffsb
o Write size 8k
With bh: 66.9MB/sec
Without bh (marshalling routines): 74.9 MB/sec
o Write size 128k
With bh: 117MB/sec
Without bh (marshalling routines): 122MB/sec
o Addressed all review comments.
o Using readdir_r is currently being worked on. Will add as a patch on top.
This patch set contains:
- Converting all 9pfs calls into coroutines.
- Each 9P operation will be modified for:
- Remove post* functions. These are our call back functions which makes
the code very hard to read. Now with coroutines, we can achieve the same
state machine model with nice sequential code flow.
- Move errno access near to the local_syscall()
- Introduce asynchronous threading
This series has the basic infrastructure and few routines like
mkdir,monod,unlink,readdir,xattr,lstat, etc converted.
Currently we are working on converting and testing other 9P operations also
into this model and those patches will follow shortly.
Removing callback functions made some of the patches little lengthy.
Here is the git tree for the reviewer convenience.
http://repo.or.cz/w/qemu/aliguori/jvrao.git/shortlog/refs/heads/9p-coroutine-bh-round1
Signed-off-by: Venkateswararao Jujjuri "<jvrao@linux.vnet.ibm.com>
next reply other threads:[~2011-05-17 19:44 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-05-17 19:43 Venkateswararao Jujjuri (JV) [this message]
2011-05-17 19:43 ` [Qemu-devel] [V2 01/25] [virtio-9p] Add infrastructure to support glib threads and coroutines Venkateswararao Jujjuri (JV)
2011-05-17 19:43 ` [Qemu-devel] [V2 02/25] [virtio-9p] Change all pdu handlers to coroutines Venkateswararao Jujjuri (JV)
2011-05-17 19:43 ` [Qemu-devel] [V2 03/25] [virtio-9p] Remove post functions for v9fs_readlink Venkateswararao Jujjuri (JV)
2011-05-18 9:27 ` Stefan Hajnoczi
2011-05-17 19:43 ` [Qemu-devel] [V2 04/25] [virtio-9p] clean up v9fs_readlink Venkateswararao Jujjuri (JV)
2011-05-17 19:43 ` [Qemu-devel] [V2 05/25] [virtio-9p] Move errno into v9fs_do_readlink Venkateswararao Jujjuri (JV)
2011-05-18 9:31 ` Stefan Hajnoczi
2011-05-18 18:28 ` Venkateswararao Jujjuri
2011-05-17 19:43 ` [Qemu-devel] [V2 06/25] [virtio-9p] coroutines for readlink Venkateswararao Jujjuri (JV)
2011-05-18 9:43 ` Stefan Hajnoczi
2011-05-18 18:42 ` Venkateswararao Jujjuri
2011-05-19 5:37 ` Stefan Hajnoczi
2011-05-19 15:28 ` Venkateswararao Jujjuri
2011-05-19 16:01 ` Stefan Hajnoczi
2011-05-17 19:43 ` [Qemu-devel] [V2 07/25] [virtio-9p] Remove post functions for v9fs_mkdir Venkateswararao Jujjuri (JV)
2011-05-17 19:43 ` [Qemu-devel] [V2 08/25] [virtio-9p] clean up v9fs_mkdir Venkateswararao Jujjuri (JV)
2011-05-17 19:43 ` [Qemu-devel] [V2 09/25] hw/9pfs: Add yield support for readdir related coroutines Venkateswararao Jujjuri (JV)
2011-05-18 9:55 ` Stefan Hajnoczi
2011-05-17 19:43 ` [Qemu-devel] [V2 10/25] hw/9pfs: Update v9fs_readdir to use coroutines Venkateswararao Jujjuri (JV)
2011-05-18 10:10 ` Stefan Hajnoczi
2011-05-17 19:43 ` [Qemu-devel] [V2 11/25] hw/9pfs: Add yield support to statfs coroutine Venkateswararao Jujjuri (JV)
2011-05-17 19:43 ` [Qemu-devel] [V2 12/25] hw/9pfs: Update v9fs_statfs to use coroutines Venkateswararao Jujjuri (JV)
2011-05-17 19:43 ` [Qemu-devel] [V2 13/25] hw/9pfs: Add yield support to lstat coroutine Venkateswararao Jujjuri (JV)
2011-05-17 19:43 ` [Qemu-devel] [V2 14/25] hw/9pfs: Update v9fs_getattr to use coroutines Venkateswararao Jujjuri (JV)
2011-05-17 19:43 ` [Qemu-devel] [V2 15/25] hw/9pfs: Add yield support to setattr related coroutines Venkateswararao Jujjuri (JV)
2011-05-17 19:43 ` [Qemu-devel] [V2 16/25] hw/9pfs: Update v9fs_setattr to use coroutines Venkateswararao Jujjuri (JV)
2011-05-17 19:43 ` [Qemu-devel] [V2 17/25] hw/9pfs: Add yield support to xattr related coroutine Venkateswararao Jujjuri (JV)
2011-05-17 19:43 ` [Qemu-devel] [V2 18/25] hw/9pfs: Update v9fs_xattrwalk to coroutines Venkateswararao Jujjuri (JV)
2011-05-17 19:43 ` [Qemu-devel] [V2 19/25] hw/9pfs: Update v9fs_xattrcreate to use coroutines Venkateswararao Jujjuri (JV)
2011-05-17 19:43 ` [Qemu-devel] [V2 20/25] hw/9pfs: Add yield support to mknod coroutine Venkateswararao Jujjuri (JV)
2011-05-17 19:43 ` [Qemu-devel] [V2 21/25] hw/9pfs: Update v9fs_mknod to use coroutines Venkateswararao Jujjuri (JV)
2011-05-17 19:43 ` [Qemu-devel] [V2 22/25] [virtio-9p] coroutine and threading for mkdir Venkateswararao Jujjuri (JV)
2011-05-17 19:43 ` [Qemu-devel] [V2 23/25] [virtio-9p] Remove post functions for v9fs_remove Venkateswararao Jujjuri (JV)
2011-05-17 19:43 ` [Qemu-devel] [V2 24/25] [virtio-9p] clean up v9fs_remove Venkateswararao Jujjuri (JV)
2011-05-17 19:43 ` [Qemu-devel] [V2 25/25] [virtio-9p] coroutine and threading for remove/unlink Venkateswararao Jujjuri (JV)
2011-05-18 10:39 ` [Qemu-devel] [V2 0/25] Async threading for VirtFS using glib threads & coroutines Stefan Hajnoczi
2011-05-18 18:43 ` Venkateswararao Jujjuri
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=1305661431-21289-1-git-send-email-jvrao@linux.vnet.ibm.com \
--to=jvrao@linux.vnet.ibm.com \
--cc=aliguori@us.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@linux.vnet.ibm.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).