From: Keir Fraser <keir.xen@gmail.com>
To: Jan Beulich <JBeulich@suse.com>,
"Justin T. Gibbs" <justing@spectralogic.com>
Cc: "<xen-devel@lists.xensource.com>" <xen-devel@lists.xensource.com>
Subject: Re: [PATCH 5 of 5] blkif.h: Define and document the request number/size/segments extension
Date: Thu, 09 Feb 2012 04:44:42 -0800 [thread overview]
Message-ID: <CB58FFBA.2AC15%keir.xen@gmail.com> (raw)
In-Reply-To: <4F339F0A0200007800071D46@nat28.tlf.novell.com>
On 09/02/2012 01:25, "Jan Beulich" <JBeulich@suse.com> wrote:
>>>> On 09.02.12 at 07:22, "Justin T. Gibbs" <justing@spectralogic.com> wrote:
>
>> On Feb 8, 2012, at 12:48 AM, Jan Beulich wrote:
>>>
>>> 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")
>
> Sure. But pulling in header updates should not require *any* other
> source changes, so long as __XEN_INTERFACE_VERSION__ isn't
> bumped.
>
> My point about not using __XEN_INTERFACE_VERSION__ under io/
> is that these declare protocols that the hypervisor is completely
> unaware of, whereas the constant really is meant to control
> compatibility with hypervisor changes. In particular is this or any
> other change to the protocols under io/ entirely unrelated to the
> particular hypervisor version (and hence its interface revision).
Actually __XEN_INTERFACE_VERSION__ is simply versioning the *source-level
API* exposed by those headers. It's not really directly linked to versioning
of the hypervisor ABI, after all that has to ensure backward compatibility
whatever we do. Perhaps __XEN_INTERFACE_VERSION__ is simply badly named.
-- Keir
> It's also unclear to me why simply giving new constants new names
> (instead of changing the meaning of existing ones) is such a big
> deal - the most strait forward solution doubtlessly is not having
> any conditionals in that header, and simply add new things with
> new, unambiguous names.
>
> Jan
>
>> 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.
>>
>> --
>> Justin
>
>
>
next prev parent reply other threads:[~2012-02-09 12:44 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-03 5:24 [PATCH 0 of 5] blkif.h: Document protocol and existing extensions Justin T. Gibbs
2012-02-03 5:24 ` [PATCH 1 of 5] blkif.h: Miscelaneous style fixes Justin T. Gibbs
2012-02-09 9:30 ` Ian Campbell
2012-02-03 5:24 ` [PATCH 2 of 5] blkif.h: Provide more complete documentation of the blkif interface Justin T. Gibbs
2012-02-07 17:51 ` Ian Jackson
2012-02-08 23:24 ` Justin T. Gibbs
2012-02-09 9:36 ` Ian Campbell
2012-02-09 15:19 ` Ian Jackson
2012-02-03 5:24 ` [PATCH 3 of 5] blkif.h: Add definitions for virtual block device major numbers Justin T. Gibbs
2012-02-03 13:31 ` Jan Beulich
2012-02-03 15:49 ` Justin Gibbs
2012-02-09 9:46 ` Ian Campbell
2012-02-09 10:05 ` Paul Durrant
2012-02-09 16:41 ` Justin T. Gibbs
2012-02-07 17:33 ` Ian Jackson
2012-02-08 23:12 ` Justin T. Gibbs
2012-02-09 15:17 ` Ian Jackson
2012-02-09 16:40 ` Justin T. Gibbs
2012-02-09 16:52 ` Ian Jackson
2012-02-09 17:02 ` Ian Campbell
2012-02-03 5:24 ` [PATCH 4 of 5] blkif.h: Document the RedHat and Citrix blkif multi-page ring extensions Justin T. Gibbs
2012-02-03 13:33 ` Jan Beulich
2012-02-03 14:58 ` Justin Gibbs
2012-02-03 15:01 ` Jan Beulich
2012-02-03 15:19 ` Justin Gibbs
2012-02-03 16:12 ` Jan Beulich
2012-02-08 22:00 ` Justin T. Gibbs
2012-02-09 9:15 ` Jan Beulich
2012-02-09 14:56 ` Justin T. Gibbs
2012-02-09 9:48 ` Ian Campbell
2012-02-09 10:36 ` Jan Beulich
2012-02-09 10:40 ` Ian Campbell
2012-02-09 15:12 ` Justin T. Gibbs
2012-02-13 12:35 ` Ian Campbell
2012-02-14 13:56 ` Konrad Rzeszutek Wilk
2012-02-15 6:51 ` Justin T. Gibbs
2012-02-15 13:07 ` Justin T. Gibbs
2012-02-15 13:32 ` Ian Campbell
2012-02-03 5:24 ` [PATCH 5 of 5] blkif.h: Define and document the request number/size/segments extension Justin T. Gibbs
2012-02-03 13:34 ` Jan Beulich
2012-02-07 21:45 ` Justin Gibbs
2012-02-07 13:49 ` Keir Fraser
2012-02-08 7:48 ` Jan Beulich
2012-02-08 6:00 ` Keir Fraser
2012-02-08 16:20 ` Jan Beulich
2012-02-09 6:22 ` Justin T. Gibbs
2012-02-09 9:25 ` Jan Beulich
2012-02-09 12:44 ` Keir Fraser [this message]
2012-02-09 14:45 ` Justin T. Gibbs
2012-02-09 12:32 ` Keir Fraser
2012-02-08 7:49 ` Jan Beulich
2012-02-03 9:52 ` [PATCH 0 of 5] blkif.h: Document protocol and existing extensions Jan Beulich
2012-02-09 9:29 ` 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=CB58FFBA.2AC15%keir.xen@gmail.com \
--to=keir.xen@gmail.com \
--cc=JBeulich@suse.com \
--cc=justing@spectralogic.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.