Re: [PATCH 12/15] hyperv: move VMBus connection ids to uapi

From: Stephen Hemminger
Date: Thu Dec 29 2016 - 13:29:54 EST


On Wed, 28 Dec 2016 20:09:44 +0300
Roman Kagan <rkagan@xxxxxxxxxxxxx> wrote:

> On Wed, Dec 21, 2016 at 07:54:11PM +0000, KY Srinivasan wrote:
> >
> >
> > > -----Original Message-----
> > > From: Stephen Hemminger [mailto:stephen@xxxxxxxxxxxxxxxxxx]
> > > Sent: Wednesday, December 21, 2016 10:03 AM
> > > To: Christoph Hellwig <hch@xxxxxxxxxxxxx>
> > > Cc: Paolo Bonzini <pbonzini@xxxxxxxxxx>; Roman Kagan
> > > <rkagan@xxxxxxxxxxxxx>; Radim KrÄmÃÅ <rkrcmar@xxxxxxxxxx>; KY
> > > Srinivasan <kys@xxxxxxxxxxxxx>; Vitaly Kuznetsov
> > > <vkuznets@xxxxxxxxxx>; kvm@xxxxxxxxxxxxxxx; Denis V . Lunev
> > > <den@xxxxxxxxxx>; Haiyang Zhang <haiyangz@xxxxxxxxxxxxx>;
> > > x86@xxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Ingo Molnar
> > > <mingo@xxxxxxxxxx>; H. Peter Anvin <hpa@xxxxxxxxx>;
> > > devel@xxxxxxxxxxxxxxxxxxxxxx; Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> > > Subject: Re: [PATCH 12/15] hyperv: move VMBus connection ids to uapi
> > >
> > > On Wed, 21 Dec 2016 09:58:36 -0800
> > > Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:
> > >
> > > > On Wed, Dec 21, 2016 at 09:50:49AM -0800, Stephen Hemminger wrote:
> > > > > Lastly, there is licensing issues on headers. It would be good to have any
> > > > > userspace ABI headers licensed with a more liberal license so that BSD
> > > and DPDK drivers
> > > > > could use them directly. Right now each one reinvents.
> > > >
> > > > Microsoft could easily solves this problem by offering a suitably
> > > > liberally licensed header documenting the full HyperV guest protocol
> > > > that Linux and other projects could use.
> > >
> > > The issue is if same header file mixes kernel and userspace API stuff.
> > >
> > > Once the files are arranged right, I will submit trivial change to comments
> > > to indicate the liberal licensing of userspace API headers.
> >
> > Let us take this one step at a time. I know for a fact that not all the guest host
> > protocols on Hyper-V are guaranteed to be stable. Some of the protocols are part of
> > the published MSFT standards such RNDIS and these obviously are guaranteed to be
> > stable. For the rest it is less clear. The fact that we need to ensure compatibility of existing
> > Windows guests tells me that any host side changes will be versioned and the hosts will always
> > support older guests.
> >
> > I would like to minimize what we include in the uapi header; especially when MSFT has made no guarantees
> > with regards how they may be evolved. I will also work on getting some clarity on both stability and
> > under what license we would expose the uapi header.
>
> Am I correct assuming that QEMU is currently the only user of
> arch/x86/include/uapi/asm/hyperv.h?
>
> Then I think we're fine withdrawing it from uapi as a whole and letting
> QEMU pull it in through its header-harvesting scripts (as does now
> anyway). This would lift all licensing and longterm API stability
> expectations.

That makes sense, but if it is not in uapi then any changes may break QEMU
in future (without regret).

If QEMU is diving in and extracting non UAPI headers then that is a bad idea.
It is outside the scope of this.