All of lore.kernel.org
 help / color / mirror / Atom feed
From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Ian Campbell <Ian.Campbell@citrix.com>
Cc: xen-devel@lists.xensource.com, keir@xen.org,
	Tim Deegan <Tim.Deegan@citrix.com>,
	Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
	george.dunlap@eu.citrix.com,
	Ian Jackson <Ian.Jackson@eu.citrix.com>,
	Lars Kurth <lars.kurth@xen.org>,
	DavidVrabel <david.vrabel@citrix.com>,
	Jan Beulich <JBeulich@suse.com>
Subject: Re: Xen Project policy on feature flags
Date: Fri, 26 Sep 2014 10:29:59 -0400	[thread overview]
Message-ID: <20140926142959.GA19421@laptop.dumpdata.com> (raw)
In-Reply-To: <1411741172.26149.75.camel@kazak.uk.xensource.com>

On Fri, Sep 26, 2014 at 03:19:32PM +0100, Ian Campbell wrote:
> On Fri, 2014-09-26 at 14:39 +0100, Jan Beulich wrote:
> > >>> On 26.09.14 at 15:24, <stefano.stabellini@eu.citrix.com> wrote:
> > > I am writing to request a clarification on Xen feature flags
> > > (XENFEAT_*) and backward compatibility:
> > >     
> > > is the hypervisor allowed to remove any feature flags in a future
> > > release, even though doing so might break some existing guests?
> > > 
> > > For example one could write a PV on HVM guest that requires
> > > XENFEAT_hvm_callback_vector (regardless of PVH), could a future Xen
> > > release remove that feature? Or is it now part of our ABI, therefore
> > > maintained for backward compatibility, following the rule that we don't
> > > break existing guests?
> > > 
> > > 
> > > I always thought that any XENFEAT feature flags could be removed going
> > > forward, if the hypervisor maintainers decide to do so. However Ian
> > > Campbell is of the opposite opinion, so I think we should have a clear
> > > policy regarding them.
> > > 
> > > In any case I think that it is generally useful to have optional flags
> > > that advertise the presence of a feature but can also be removed going
> > > forward. If XENFEAT feature flags are not them, then we might still want
> > > to introduce them as a separate concept.
> > 
> > My view is that these are precisely there to indicate what the
> > hypervisor supports. I.e. while we can't remove the definition
> > from the public header, the hypervisor could stop advertising that
> > it's capable of a certain feature at any time. Consumers are
> > expected to check for the feature flag and deal with it being off.
> 
> What if there is no way to deal with it being off other than crashing or
> refusing to work etc?
> 
> The context here is XENFEAT_grant_map_identity which turns out not to
> work in practice (it doesn't actually allow non-LPAE arm32 dom0 to work,
> which it was supposed to). We've not released with it yet (as it stands
> it'll be included in 4.5).
> 
> We do have some other ideas for an alternative fix to the underlying
> issue. But we've not actually tried them yet.
> 
> IMHO We need to decide whether to nuke that flag now or in the future
> (i.e. post 4.5). Given that it doesn't actually work and that we've not
> released with it I'm most in favour of not releasing with it, and given
> that I'm in favour of removing it now and not waiting until the last
> minute.

I am in favour of reverting things. That is a simple way of fixing
bugs :-)

> 
> If we release with it then we will regress at least Linux 3.16 and 3.17
> when we remove this flag.

Wasn't this feature considered 'experimental' in Linux code?

Is the Linux code able to boot without this flag? Let me rephrase - will
it boot in the same fashion (And with the same bugs) as it did prior
to this functionality being introduced?

> 
> I don't think we have many other flags which are "work at all" flags
> rather than "enhance" flags.
> 
> Ian.
> 

  reply	other threads:[~2014-09-26 14:29 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-09-26 13:24 Xen Project policy on feature flags Stefano Stabellini
2014-09-26 13:39 ` Jan Beulich
2014-09-26 13:56   ` Andrew Cooper
2014-09-26 14:19   ` Ian Campbell
2014-09-26 14:29     ` Konrad Rzeszutek Wilk [this message]
2014-09-26 14:49       ` Stefano Stabellini
2014-09-29  9:00         ` George Dunlap
2014-09-29  9:31           ` Wei Liu
2014-09-29  9:36             ` George Dunlap
2014-09-29  9:54               ` Wei Liu
2014-09-29  9:54                 ` Stefano Stabellini
2014-09-29 10:05               ` David Vrabel
2014-09-29 11:32                 ` Ian Campbell
2014-09-29 14:55                   ` Konrad Rzeszutek Wilk
2014-09-29 15:00                     ` Ian Campbell
2014-09-30 11:04                       ` Stefano Stabellini
2014-09-26 14:46     ` Jan Beulich
2014-09-26 14:26 ` David Vrabel
2014-09-26 14:36   ` Konrad Rzeszutek Wilk
2014-09-26 14:54     ` Stefano Stabellini
2014-09-26 19:16       ` Konrad Rzeszutek Wilk
2014-09-26 14:52   ` Jan Beulich

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=20140926142959.GA19421@laptop.dumpdata.com \
    --to=konrad.wilk@oracle.com \
    --cc=Ian.Campbell@citrix.com \
    --cc=Ian.Jackson@eu.citrix.com \
    --cc=JBeulich@suse.com \
    --cc=Stefano.Stabellini@eu.citrix.com \
    --cc=Tim.Deegan@citrix.com \
    --cc=david.vrabel@citrix.com \
    --cc=george.dunlap@eu.citrix.com \
    --cc=keir@xen.org \
    --cc=lars.kurth@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 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.