xen-devel.lists.xenproject.org archive mirror
 help / color / mirror / Atom feed
From: Justin Gibbs <justing@spectralogic.com>
To: Jan Beulich <JBeulich@suse.com>
Cc: "<xen-devel@lists.xensource.com>" <xen-devel@lists.xensource.com>,
	Keir Fraser <keir@xen.org>
Subject: Re: [PATCH 5 of 5] blkif.h: Define and document the request number/size/segments extension
Date: Tue, 7 Feb 2012 21:45:02 +0000	[thread overview]
Message-ID: <7FAA6F15-2ECE-403F-A115-9687299A8BE7@spectralogic.com> (raw)
In-Reply-To: <4F2BF0750200007800070EB4@nat28.tlf.novell.com>

On Feb 3, 2012, at 6:34 AM, Jan Beulich wrote:

>>>> On 03.02.12 at 06:24, "Justin T. Gibbs" <justing@spectralogic.com> wrote:
>> xen/include/public/io/blkif.h |  106 ++++++++++++++++++++++++++++++++++++++++-
>> 1 files changed, 103 insertions(+), 3 deletions(-)
>> 
>> 
>> Note: The definition of BLKIF_MAX_SEGMENTS_PER_REQUEST has changed.
>>      Drivers must be updated to, at minimum, use
>>      BLKIF_MAX_SEGMENTS_PER_HEADER_BLOCK, before being compatible
>>      with this header file.
> 
> 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

 2. Create a new constant BLKIF_MAX_SEGS_PER_REQUEST, have the two other
     new constants (for header and segment block counts) use this convention, and
     leave BLKIF_MAX_SEGMENTS_PER_REQUEST alone (but marked DEPRECATED).

     Positives:   No #ifdefs.  Shorter names for these constants.
     Negatives: Changes the existing constant naming convention for updated
                         drivers.  Leaves BLKIF_MAX_SEGMENTS_PER_REQUEST, a constant
                         that should no longer be used, visible.

Do you have a preference or a suggested alternative?

Thanks,
Justin

  reply	other threads:[~2012-02-07 21:45 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 [this message]
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
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=7FAA6F15-2ECE-403F-A115-9687299A8BE7@spectralogic.com \
    --to=justing@spectralogic.com \
    --cc=JBeulich@suse.com \
    --cc=keir@xen.org \
    --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).