From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Cc: xen-devel@lists.xensource.com, keir@xen.org,
Tim Deegan <Tim.Deegan@citrix.com>,
george.dunlap@eu.citrix.com,
Ian Jackson <Ian.Jackson@eu.citrix.com>,
Lars Kurth <lars.kurth@xen.org>,
David Vrabel <david.vrabel@citrix.com>,
Ian Campbell <Ian.Campbell@citrix.com>
Subject: Re: Xen Project policy on feature flags
Date: Fri, 26 Sep 2014 15:16:46 -0400 [thread overview]
Message-ID: <20140926191646.GC8786@laptop.dumpdata.com> (raw)
In-Reply-To: <alpine.DEB.2.02.1409261550590.16742@kaball.uk.xensource.com>
On Fri, Sep 26, 2014 at 03:54:40PM +0100, Stefano Stabellini wrote:
> On Fri, 26 Sep 2014, Konrad Rzeszutek Wilk wrote:
> > On Fri, Sep 26, 2014 at 03:26:33PM +0100, David Vrabel wrote:
> > > On 26/09/14 14:24, Stefano Stabellini wrote:
> > > > Hello all,
> > > > 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.
> > >
> > > A guest that runs on Xen version V /must/ continue to run on V+1.
> >
> > Not if the feature is 'experimental' (I don't know offhand if this
> > is experimental or not).
> >
> > >
> > > The is similar to the policy the Linux kernel has for the user space ABI.
> >
> > Sure, but there are also ioctls and such which can change between releases
> > such that application for V+1 will _not_ work with V. Look at 'perf'
> > as an example.
> >
> > >
> > > This does permit support for features to be removed but only if no guest
> > > would be broken by its removal. But since it it is not possible to know
> > > what guests people have running and what features they require, I can't
> > > see how any feature could be safely removed.
> >
> > The guest is already broken even by taking advantage of this feature.
>
> The guest is capable of recognizing whether the feature is available or
> not and doesn't try to use the feature if it is not advertized by the
> XENFEAT flag.
>
> Unfortunately the fall back at the moment is breaking up farther along
> the way.
HA! To summarize:
- With this feature available we break.
- Without this feature available we break.
In either way removing this feature will mean we are still broken - it is
just a different shade of it.
>
>
> > > > 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.
> > >
> > > I don't think "optional" feature flags are any different. You can
> > > specify that guests must handle the feature being missing but that's no
> > > guarantee that guest will actually implement the fallback.
> >
> > That would be a odd - as it would mean guests were written
> > to work with V+1 but not with V-1.
> >
> > Granted that is the case for booting Linux as dom0. It can only work
> > with Xen 4.1 and later. But you could argue that the fallback for booting
> > with V-1 (Xen 4.0) is to not boot at all as it did not have the
> > minimum required features.
> >
> > So was this feature an required feature or an enhancement?
>
> >From a practical perspective it is a required feature for Linux.
Hehe. We have a required feature that we want to be broken, eh :-)
Can the CONFIG_PCI_DMA_ARE_64_BIT (or whatever it is) be part of an
non-LPAE build? That would have fixed the issue too right?
>
> >From a theoretical and ABI standpoint, one could write a Dom0 kernel
> that doesn't need this feature to work properly (and in fact you can
> still have it by reverting Zoltan's changes or going back to 3.15).
Oh boy. Have we dug ourselves in a hole.
next prev parent reply other threads:[~2014-09-26 19:16 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
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 [this message]
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=20140926191646.GC8786@laptop.dumpdata.com \
--to=konrad.wilk@oracle.com \
--cc=Ian.Campbell@citrix.com \
--cc=Ian.Jackson@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=stefano.stabellini@eu.citrix.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.