CFT - Xen infrastructure and block I/O improvements
rpaulo at freebsd.org
Sat Sep 18 08:10:15 UTC 2010
On 17 Sep 2010, at 16:36, Justin T. Gibbs wrote:
> On 9/17/2010 1:27 AM, Rui Paulo wrote:
>> On 17 Sep 2010, at 07:55, Rui Paulo wrote:
>>> On 17 Sep 2010, at 02:44, Justin T. Gibbs wrote:
>>>> At Spectra Logic, we are using FreeBSD amd64 under Xen to serve storage
>>>> to other Xen domains. Over the past 9 months, we've made several changes
>>>> to FreeBSD's Xen support. These include:
>>> Justin, this is quite a big diff (16k lines). I wonder if you can create
>>> separate diffs (xenstore, blkback, xenbus, etc.) for easier review and
>> '... and comment'.
> The bulk of the patch is due to code reorganization. Unfortunately SVN
> doesn't reflect the copies properly in a diff, but at least the diff will
> apply properly even in a non-SVN backed source tree. This original patch
> should be the best for testers.
> The following SVN operations were made to the source tree to clean up it's
> organization and to import functionality from the vendor (1 file):
> # Does not apply to FreeBSD's NewBus method for dealing with XenBus devices
> svn delete sys/xen/xenbus/init.txt
> # Linux version of backend XenBus service routines. Never ported to FreeBSD.
> # OBE: See xenbusb.c, xenbusb_if.m, xenbusb_front.c xenbusb_back.c
> svn delete sys/xen/xenbus/xenbus_probe_backend.c
> # Split XenStore into its own tree. XenBus is a software layer built on top
> # of XenStore. The old arrangement and the naming of some structures and
> # functions blurred these lines making it difficult to discern what services
> # are provided by which layer and what times these services are available
> # (e.g. during system startup and shutdown).
> mkdir sys/xen/xenstore
> svn add sys/xen/xenstore
> svn move sys/xen/xenbus/xenbus_dev.c sys/xen/xenstore/xenstore_dev.c
> svn copy sys/xen/xenbus/xenbusvar.h sys/xen/xenstore/xenstorevar.h
> svn move sys/xen/xenbus/xenbus_xs.c sys/xen/xenstore/xenstore.c
> # Split up XenBus code into methods available for use by client
> # drivers (xenbus.c) and code used by the XenBus "bus code" to
> # enumerate, attach, detach, and service bus drivers.
> svn move sys/xen/xenbus/xenbus_client.c sys/xen/xenbus/xenbus.c
> svn move sys/xen/xenbus/xenbus_probe.c sys/xen/xenbus/xenbusb.c
> svn copy sys/xen/xenbus/xenbusb.c sys/xen/xenbus/xenbusb.h
> # Merged with xenstore.c
> svn delete sys/xen/xenbus/xenbus_comms.c
> svn delete sys/xen/xenbus/xenbus_comms.h
> # Merged with new XenBus control driver
> mkdir sys/dev/xen/control
> svn add sys/dev/xen/control
> svn move sys/xen/reboot.c sys/dev/xen/control/control.c
> # New file from Xen vendor with macros and structures used by
> # a block back driver to service requires from a VM running a
> # different ABI (e.g. amd64 back with i386 front).
> svn add sys/xen/blkif.h
> These alone account for 6k lines of svn diff.
> A diff against a tree with these operations already made may make more sense
> to a reviewer. You can download this diff from here:
> It isn't much shorter since the additional context has amplified the changes.
> The bulk is largely caused by refactoring, and comments. It will
> probably be easier to just review the files in sys/xen/xenstore and
> sys/xen/xenbus in their entirety, but the comments bellow (boiled down from
> our SCM system), when coupled with the diffs, should give you enough information
> to understand the intentions behind the changes.
Oh, IC. It's still pretty large and I don't have the necessary time, but it appears that this is good to go (am afraid the past people who have worked on Xen are now gone, no?).
More information about the freebsd-current