Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935516AbcLUR0E (ORCPT ); Wed, 21 Dec 2016 12:26:04 -0500 Received: from mail-wm0-f66.google.com ([74.125.82.66]:33225 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756399AbcLUR0C (ORCPT ); Wed, 21 Dec 2016 12:26:02 -0500 Subject: Re: [PATCH 12/15] hyperv: move VMBus connection ids to uapi To: Christoph Hellwig References: <20161220155602.6298-1-rkagan@virtuozzo.com> <20161220155602.6298-13-rkagan@virtuozzo.com> <20161220092543.6183bffd@xeon-e3> <20161221062939.GB15917@rkaganb.sw.ru> <20161221121858.GA17429@infradead.org> <20161221125920.GG15917@rkaganb.sw.ru> <20161221142654.GB8594@infradead.org> <20161221154348.GA31401@infradead.org> Cc: kvm@vger.kernel.org, =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= , Haiyang Zhang , x86@kernel.org, linux-kernel@vger.kernel.org, devel@linuxdriverproject.org, Ingo Molnar , Roman Kagan , "H. Peter Anvin" , "Denis V . Lunev" , Thomas Gleixner From: Paolo Bonzini Message-ID: <4737c664-e6f6-fede-9f80-4c757de8bc9b@redhat.com> Date: Wed, 21 Dec 2016 18:25:58 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 MIME-Version: 1.0 In-Reply-To: <20161221154348.GA31401@infradead.org> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1668 Lines: 38 On 21/12/2016 16:43, Christoph Hellwig wrote: > On Wed, Dec 21, 2016 at 04:39:18PM +0100, Paolo Bonzini wrote: >> That said, there are precedents in using UAPI this way for PV >> interfaces. See for example include/uapi/linux/virtio*.h and >> arch/x86/include/uapi/asm/kvm_para.h. > > We have all kinds of historical examples, but most of them turned > into a major pain sooner or later - my favourite example are the > SCSI protocol headers. Mine too, and because of how uapi/ was created there are quite a few such historical headers (my favourite is cuda.h, just because of the name). > Protocols needs to stay compatible on the (virtual) wire, but not > on the language level. Locking us into the strict UABI policies > for them just make someone life horrible further down the road. The ABI for this kind of thing is not changing much anyway, because it's the hardware or processor or (as in this case) hypervisor ABI. The more interesting question is about the API, and here in the end it seems to be up to the maintainer. Some have explicitly asked to move stuff *out* of UAPI, for example the x86 guys have removed msr-index.h from UAPI recently. Others are okay with it and they simply aren't strict on cleanups that might break the *programming* interface, as in patch 15 of this series. See for example pci_regs.h commit 846fc70986a6, "PCI/AER: Rename PCI_ERR_UNC_TRAIN to PCI_ERR_UNC_UND", everybody just moved on and QEMU adjusted its use of PCI_ERR_UNC_TRAIN. Having this in UAPI has been convenient for QEMU, but of course the kernel couldn't care less. So if KY prefers to have the header outside UAPI, we will just follow suit... Paolo