From: Liu Yuan <namei.unix@gmail.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: Kevin Wolf <kwolf@redhat.com>,
Stefan Hajnoczi <stefanha@gmail.com>,
qemu-devel@nongnu.org,
MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
Subject: Re: [Qemu-devel] [PATCH] sheepdog: implement direct write semantics
Date: Wed, 09 Jan 2013 20:07:00 +0800 [thread overview]
Message-ID: <50ED5D64.4040600@gmail.com> (raw)
In-Reply-To: <50ED4A90.2080808@gmail.com>
On 01/09/2013 06:46 PM, Liu Yuan wrote:
>> 1) how slower is QEMU's emulated-writethrough mode for writes, due to
>> > the extra requests?
>> >
> I'll collect some numbers on it.
>
Okay I got some nubmers. I run three sheep daemon on the same host to
emulate a 3 nodes cluster, Sheepdog image has 3 copies and I put
Sheepdog client cache and Sheepdog backend storage on a tmpfs.
Guest and Host are all Linux 3.7. I start QEMU by following command:
$ qemu-system-x86_64 --enable-kvm -drive
file=~/images/test1,if=virtio,cache=writeback -smp 2 -cpu host -m 1024
-drive file=sheepdog:test,if=virtio,cache=writeback
I run 5 times 'dd if=/dev/urandom of=/dev/vdb bs=1M count=100
oflag=direct' and get the average nubmer:
emulated (write + flush) old impl (single write)
13.3 M/s 13.7 M/s
boost percentage: (13.7 - 13.3)/13.3 = 3%.
If boost number is not big, but if we run QEMU and Sheep daemon on the
separate boxes, we'll expect of bigger boost because the overhead of
extra 'flush' request is increased.
Besides performance, I think backward compatibility is more important:
1 if we run a old kernel host (quite possible for a long running
server) which doesn't support WCE, then we will never have a chance to
choose writethrough cache for guest OS against new QEMU (most users tend
to update user space tools to exclude bugs)
2 The upper layer software which relies on the 'cache=xxx' to choose
cache mode will fail its assumption against new QEMU.
and my proposal (adding another field to BlockDriverState to allow
self-interpretation cache flag) can work well with current block layer:
Sheepdog driver behavior:
cache flags WCE toggled and resulting behavior
writethrough writethrough
writeback writetrhough (writeback + flush)
We can see that the writeback behavior for Guest-WCE toggling is the
same as expected. The difference is that if we set cache=writethrough,
guest can't change it via WCE toggling.
Thanks,
Yuan
next prev parent reply other threads:[~2013-01-09 12:07 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-12-19 18:29 [Qemu-devel] [PATCH] sheepdog: implement direct write semantics Liu Yuan
2012-12-25 7:47 ` MORITA Kazutaka
2012-12-25 8:26 ` Liu Yuan
2012-12-25 8:45 ` Liu Yuan
2013-01-03 13:43 ` Liu Yuan
2013-01-04 16:38 ` Stefan Hajnoczi
2013-01-05 4:40 ` Liu Yuan
2013-01-05 5:29 ` Liu Yuan
2013-01-05 7:56 ` Liu Yuan
2013-01-07 12:31 ` Stefan Hajnoczi
2013-01-08 5:28 ` Liu Yuan
2013-01-07 13:23 ` Kevin Wolf
2013-01-08 5:42 ` Liu Yuan
2013-01-08 9:40 ` Stefan Hajnoczi
2013-01-08 9:45 ` Liu Yuan
2013-01-08 10:00 ` Kevin Wolf
2013-01-08 10:39 ` Liu Yuan
2013-01-08 10:51 ` Kevin Wolf
2013-01-08 11:08 ` Liu Yuan
2013-01-08 11:19 ` Kevin Wolf
2013-01-08 11:35 ` Liu Yuan
2013-01-08 12:12 ` Kevin Wolf
2013-01-08 13:18 ` Liu Yuan
2013-01-08 13:23 ` Liu Yuan
2013-01-09 10:25 ` Paolo Bonzini
2013-01-09 10:36 ` Liu Yuan
2013-01-09 10:40 ` Paolo Bonzini
2013-01-09 10:46 ` Liu Yuan
2013-01-09 10:58 ` Liu Yuan
2013-01-09 11:10 ` Paolo Bonzini
2013-01-09 12:07 ` Liu Yuan [this message]
2013-01-09 12:10 ` Liu Yuan
2013-01-09 12:16 ` Liu Yuan
2013-01-09 12:42 ` Kevin Wolf
2013-01-09 13:04 ` Liu Yuan
2013-01-09 15:10 ` Paolo Bonzini
2013-01-10 5:38 ` Liu Yuan
2013-01-11 7:52 ` MORITA Kazutaka
2013-01-11 8:07 ` Liu Yuan
2013-01-11 9:00 ` Paolo Bonzini
2013-01-11 9:04 ` Liu Yuan
2013-01-11 9:34 ` Paolo Bonzini
2013-01-11 9:38 ` Liu Yuan
2013-01-11 9:40 ` Paolo Bonzini
2013-01-11 9:32 ` Kevin Wolf
2013-01-10 15:25 ` Jamie Lokier
2013-01-10 15:31 ` Paolo Bonzini
2013-01-10 17:22 ` Jamie Lokier
2013-01-09 11:10 ` Kevin Wolf
2013-01-09 10:23 ` Paolo Bonzini
2013-01-10 15:12 ` Jamie Lokier
2013-01-10 15:21 ` Kevin Wolf
2013-01-10 8:03 ` [Qemu-devel] [PATCH v2] " Liu Yuan
2013-01-10 9:04 ` Stefan Hajnoczi
2013-01-11 7:35 ` MORITA Kazutaka
2013-01-11 9:23 ` Kevin Wolf
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=50ED5D64.4040600@gmail.com \
--to=namei.unix@gmail.com \
--cc=kwolf@redhat.com \
--cc=morita.kazutaka@lab.ntt.co.jp \
--cc=pbonzini@redhat.com \
--cc=qemu-devel@nongnu.org \
--cc=stefanha@gmail.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).