[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 5 of 5] blkif.h: Define and document the request number/size/segments extension

On Feb 8, 2012, at 12:48 AM, Jan Beulich wrote:

>>>> On 07.02.12 at 14:49, Keir Fraser <keir.xen@xxxxxxxxx> wrote:
>> On 07/02/2012 21:45, "Justin Gibbs" <justing@xxxxxxxxxxxxxxxx> wrote:
>>>> NAK. No backwards incompatible changes allowed in public headers.
>>> Sorry for the slow reply on this.  I've been experimenting with ways to keep
>>> legacy
>>> source compatibility.  After trying lots of things, testing the impact on an
>>> existing blkfront
>>> and blkback implementation, I think the best two options are:
>>> 1. Version the header file and require consumers to declare the interface
>>> version
>>>     they are using.  If the version isn't declared, the default, legacy,
>>> "version 1.0" will
>>>     be in effect.
>>>     Positives:   No change in or constant naming conventions.  Data
>>> structures and
>>>                         constants for new features are properly hidden from
>>> legacy implementations.
>>>     Negatives: Messy #ifdefs
>> We already have this. See use of
>> headers.
> Hmm, I would think these should specifically not be used in the
> io/ subtree - those aren't definitions of the interface to Xen, but
> ones shared between the respective backends and frontends.
> Each interface is (apart from its relying on the ring definitions)
> entirely self contained.
> Jan

The versioning required allows a driver to declare, "I am compatible
with any source compatibility breaking changes up to version X of
the header file".  Declaring support for the latest version does
not require that a driver implement the new extensions.  Just one
constant needs to be renamed.  So I don't see this as really altering
the interface between front and backends (i.e. it is not a "blkif2")

If the xen-compat.h behavior is that you can safely import the
public headers so long as you do not bump __XEN_INTERFACE_VERSION__
until after you have audited and adjusted for the #ifdef guarded
changes in the header files, then that is exactly what is needed
in blkif.h.

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.