Paul Durrant
2012-Oct-01 16:28 UTC
[PATCH 0/2] PV drivers product number registration (v3)
PV drivers in HVM guests typically make use off an ''unplug'' protocol in QEMU to prevent co-existence of emulated devices. See docs/misc/hvm-emulated-unplug.markdown for details. The register of product numbers used by the blacklisting feature of this protocol is currently directly in the xenstore.c source moduleof traditional QEMU. It should really be in a Xen header file to prevent duplication/conflict between QEMU versions. Moreover the linux PV-on-HVM drivers make use of product number 3 seemingly without ever registering that number. This patch series introduces a new header and registers product number 3 for Linux''s use. A subsequent patch to qemu-xen-unstable wll be created to make use of the new header. Version 2: I have re-coded at Ian Jackson''s request in the form of macros that allow a switch statement or array to be easily generated from the product list. Version 3: Ditching the terminator list entry. The associated QEMU patch is unmodified by this so not resending. Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Paul Durrant
2012-Oct-01 16:28 UTC
[PATCH 1/2] Add a new pvdrivers header to serve as the register of product numbers.
These product numbers are used by the QEMU blacklisting protocol in traditional QEMU and are currently coded directly into the xenstore.c source module. Since there are now multiple QEMUs this information should be pulled into a public header to avoid duplication/conflict. hvm-emulated-unplug.markdown has also been adjusted to reference the new header. Signed-off-by: Paul Durrant <paul.durrant@citrix.com> --- docs/misc/hvm-emulated-unplug.markdown | 2 +- xen/include/public/hvm/pvdrivers.h | 46 ++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+), 1 deletions(-) create mode 100644 xen/include/public/hvm/pvdrivers.h diff --git a/docs/misc/hvm-emulated-unplug.markdown b/docs/misc/hvm-emulated-unplug.markdown index 707fbab..ec9ce83 100644 --- a/docs/misc/hvm-emulated-unplug.markdown +++ b/docs/misc/hvm-emulated-unplug.markdown @@ -65,4 +65,4 @@ decimal number. `{product_name}` is a string corresponding to the product number in step 3. The master registry of product names and numbers is in -qemu-xen-unstable''s xenstore.c. +xen/include/public/hvm/pvdrivers.h diff --git a/xen/include/public/hvm/pvdrivers.h b/xen/include/public/hvm/pvdrivers.h new file mode 100644 index 0000000..0471ebc --- /dev/null +++ b/xen/include/public/hvm/pvdrivers.h @@ -0,0 +1,46 @@ +/* + * pvdrivers.h: Register of PV drivers product numbers. + * Copyright (c) 2012, Citrix Systems Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to + * deal in the Software without restriction, including without limitation the + * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or + * sell copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ + +#ifndef _XEN_PUBLIC_PVDRIVERS_H_ +#define _XEN_PUBLIC_PVDRIVERS_H_ + +/* + * This is the master registry of product numbers for + * PV drivers. + * If you need a new product number allocating, please + * post to xen-devel@lists.xensource.com. You should NOT use + * a product number without allocating one. + * If you maintain a separate versioning and distribution path + * for PV drivers you should have a separate product number so + * that your drivers can be separated from others. + * + * During development, you may use the product ID to + * indicate a driver which is yet to be released. + */ + +#define PVDRIVERS_PRODUCT_LIST(EACH) \ + EACH("xensource-windows", 0x0001) /* Citrix */ \ + EACH("gplpv-windows", 0x0002) /* James Harper */ \ + EACH("experimental", 0xffff) + +#endif /* _XEN_PUBLIC_PVDRIVERS_H_ */ -- 1.7.2.5
Paul Durrant
2012-Oct-01 16:28 UTC
[PATCH 2/2] Register Linux PV-on-HVM drivers product number.
This is already in use despite never being registereed. See XEN_IOPORT_LINUX_PRODNUM in include/xen/platform_pci.h Signed-off-by: Paul Durrant <paul.durrant@citrix.com> --- xen/include/public/hvm/pvdrivers.h | 1 + 1 files changed, 1 insertions(+), 0 deletions(-) diff --git a/xen/include/public/hvm/pvdrivers.h b/xen/include/public/hvm/pvdrivers.h index 0471ebc..4c6b705 100644 --- a/xen/include/public/hvm/pvdrivers.h +++ b/xen/include/public/hvm/pvdrivers.h @@ -41,6 +41,7 @@ #define PVDRIVERS_PRODUCT_LIST(EACH) \ EACH("xensource-windows", 0x0001) /* Citrix */ \ EACH("gplpv-windows", 0x0002) /* James Harper */ \ + EACH("linux", 0x0003) \ EACH("experimental", 0xffff) #endif /* _XEN_PUBLIC_PVDRIVERS_H_ */ -- 1.7.2.5
Ian Jackson
2012-Oct-01 16:55 UTC
Re: [PATCH 1/2] Add a new pvdrivers header to serve as the register of product numbers.
Paul Durrant writes ("[Xen-devel] [PATCH 1/2] Add a new pvdrivers header to serve as the register of product numbers."):> These product numbers are used by the QEMU blacklisting protocol in > traditional QEMU and are currently coded directly into the xenstore.c > source module. Since there are now multiple QEMUs this information > should be pulled into a public header to avoid duplication/conflict. > hvm-emulated-unplug.markdown has also been adjusted to reference the > new header.Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Given the fact this is in a public header, we should probably get an ack from Keir or Jan. Ian.
Ian Jackson
2012-Oct-01 16:56 UTC
Re: [PATCH 2/2] Register Linux PV-on-HVM drivers product number.
Paul Durrant writes ("[Xen-devel] [PATCH 2/2] Register Linux PV-on-HVM drivers product number."):> This is already in use despite never being registereed. > See XEN_IOPORT_LINUX_PRODNUM in include/xen/platform_pci.hVery unfortunate. But> Signed-off-by: Paul Durrant <paul.durrant@citrix.com>Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> Ian.
Paul Durrant
2012-Oct-02 08:34 UTC
Re: [PATCH 1/2] Add a new pvdrivers header to serve as the register of product numbers.
> -----Original Message----- > From: Ian Jackson [mailto:Ian.Jackson@eu.citrix.com] > Sent: 01 October 2012 17:56 > To: Paul Durrant > Cc: xen-devel@lists.xen.org; Keir (Xen.org); Jan Beulich > Subject: Re: [Xen-devel] [PATCH 1/2] Add a new pvdrivers header to serve > as the register of product numbers. > > Paul Durrant writes ("[Xen-devel] [PATCH 1/2] Add a new pvdrivers header > to serve as the register of product numbers."): > > These product numbers are used by the QEMU blacklisting protocol in > > traditional QEMU and are currently coded directly into the xenstore.c > > source module. Since there are now multiple QEMUs this information > > should be pulled into a public header to avoid duplication/conflict. > > hvm-emulated-unplug.markdown has also been adjusted to reference the > > new header. > > Acked-by: Ian Jackson <ian.jackson@eu.citrix.com> > > Given the fact this is in a public header, we should probably get an ack from > Keir or Jan. >Thanks. Paul