CFT - Xen infrastructure and block I/O improvements

Rui Paulo 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
>>> commenting.
>> 
>> '... 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:
> 
> http://people.FreeBSD.org/~gibbs/FreeBSD-head-xen_post-svn-ops_2010-09-17_diffs.txt
> 
> 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?).

--
Rui Paulo




More information about the freebsd-xen mailing list