xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: linux-kernel@vger.kernel.org, jaxboe@fusionio.com
Cc: hch@infradead.org, xen-devel@lists.xensource.com,
	Ian.Campbell@citrix.com, stefano.stabellini@eu.citrix.com
Subject: [PATCH v3.1] xen block backend.
Date: Thu,  5 May 2011 14:11:32 -0400	[thread overview]
Message-ID: <1304619093-22354-1-git-send-email-konrad.wilk@oracle.com> (raw)

The following patch implements the Xen block backend driver for
upstream Linux. This is the host side counterpart to the frontend driver
in drivers/block/xen-blkfront.c. The PV protocol is also implemented by
frontend drivers in other OSes too, such as the BSDs and even Windows.

There is a QEMU version of this PV protocol called 'qdisk'. The performance
of it (after tweaking it to use AIO [1]) is inferior compared to the one
I am posting here: http://thread.gmane.org/gmane.linux.kernel/1129246

Changelog since posting:
[v3: https://lkml.org/lkml/2011/4/20/403]
 - dropped 'feature-barrier' support
 - added 'feature-flush-cache' support
 - tested w/ NetBSD unstable, SLES11, RHEL5, 2.6.36, 2.6.39-rc6 guests to check
   for barrier/flush issues.
 - fixed write performance issues

This driver has a long history as an out of tree driver but I am
submitting it here as a single monolithic patch to aid review. Once it
has been reviewed and is considered suitable for merging can we perhaps
consider merging the equivalent git branch which maintains much of
history?

The patch is based on the driver from the xen.git pvops kernel tree but
has been put through the checkpatch.pl wringer plus several manual
cleanup passes. It has also been moved from drivers/xen/blkback to
drivers/block/xen-blback.

The git tree of the broken out driver is available at:

git://git.kernel.org/pub/scm/linux/kernel/git/konrad/xen.git devel/xen-blkback-v3.1

Note that this driver depends on couple of fixes to the Xen backend
subsystem. Those are available in devel/backend.base.v3 branch and are
intended for the 2.6.40 merge window.

 drivers/block/Kconfig               |    8 +
 drivers/block/Makefile              |    1 +
 drivers/block/xen-blkback/Makefile  |    3 +
 drivers/block/xen-blkback/blkback.c |  812 +++++++++++++++++++++++++++++++++++
 drivers/block/xen-blkback/common.h  |  129 ++++++
 drivers/block/xen-blkback/xenbus.c  |  769 +++++++++++++++++++++++++++++++++
 include/xen/blkif.h                 |  122 ++++++
 include/xen/interface/io/blkif.h    |   13 +
 8 files changed, 1857 insertions(+), 0 deletions(-)

[1]: http://darnok.org/xen/qdisk_vs_blkback_v3.1/qemu-enable-aio.patch

             reply	other threads:[~2011-05-05 18:11 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-05 18:11 Konrad Rzeszutek Wilk [this message]
2011-05-05 18:11 ` [PATCH] xen block backend driver Konrad Rzeszutek Wilk
2011-05-11 15:02   ` Ian Campbell
2011-05-12 21:01     ` [Xen-devel] " Konrad Rzeszutek Wilk
2011-05-13  7:06       ` Ian Campbell

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=1304619093-22354-1-git-send-email-konrad.wilk@oracle.com \
    --to=konrad.wilk@oracle.com \
    --cc=Ian.Campbell@citrix.com \
    --cc=hch@infradead.org \
    --cc=jaxboe@fusionio.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=xen-devel@lists.xensource.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).