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

Re: [Xen-devel] [PATCH RFC 0/7] xen: Clean-up of mem_event subsystem

On Tue, Nov 18, 2014 at 8:32 AM, Jan Beulich <JBeulich@xxxxxxxx> wrote:
>>> On 17.11.14 at 18:06, <tamas.lengyel@xxxxxxxxxxxx> wrote:
> On Mon, Nov 17, 2014 at 5:37 PM, Jan Beulich <JBeulich@xxxxxxxx> wrote:
>> >>> On 12.11.14 at 16:48, <andrew.cooper3@xxxxxxxxxx> wrote:
>> > On 12/11/14 15:31, Tamas K Lengyel wrote:
>> >>  xen/include/public/domctl.h         |  44 +--
>> >>  xen/include/public/hvm/params.h     |   2 +-
>> >>  xen/include/public/mem_event.h      | 134 -------
>> >>  xen/include/public/memory.h         |   6 +-
>> >>  xen/include/public/vm_event.h       | 179 +++++++++
>> >
>> > While in principle I think this series is a very good thing, there is a
>> > problem with editing the pubic header files.
>> >
>> > The contents of mem_event.h is not currently hidden behind #ifdef
>> > __XEN_TOOLS__
>> >
>> > As a result, it is strictly speaking part of the VM-visible public
>> > API/ABI and not permitted to change in a backwards incompatible manor.
>> >
>> > Having said that, it is currently only usable by privileged domains, so
>> > there is an argument to be made for declaring that it should have been
>> > hidden behind __XEN_TOOLS__ in the first place, making it permittable to
>> > change.
>> I'm not sure I agree - the meaning of "tools" here would seem quite a
>> bit different than e.g. in domctl.h. Looking at patch 1, I can't see how
>> an old consumer (remember that for many of these we have at best
>> fake consumers in the tree) would deal with the now differently
>> arranged data. I don't see any versioning of the interface, and hence
>> I can't see how tools would know which of the formats to expect.
> The lack of versioning is a real concern which I have aired during the 4.5
> development process. For example, when we switched from HVMEM_access_* to
> XENMEM_access_* a customer had to do a bunch of manual configure checks to
> determine what is supported and what isn't. Furthermore, many of the
> related APIs have changed quite radically between Xen 4.1-4.5, some being
> abandoned midway just to resurface later in a different context. Going
> forward having a clear VM_EVENT_VERSION definition would be very helpful
> and would be the cleanest solution IMHO.

That's a concern different from mine - source compatibility may be
acceptable to get broken. Undetectable binary incompatibilities are
what worry me more.


To be fair, I don't think there ever was backwards compatibility established with the usage of that struct in source or binary form. A quick glance at git log shows that it had been shuffled around and extended quite a bit over the years. Going forward it would be best to start with something that's clean before backwards compatibility is enforced IMHO.


Xen-devel mailing list



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