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 module of 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. Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Paul Durrant
2012-Sep-26 12:23 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 | 50 ++++++++++++++++++++++++++++++++ 2 files changed, 51 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..4be57ac --- /dev/null +++ b/xen/include/public/hvm/pvdrivers.h @@ -0,0 +1,50 @@ +/* + * 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_XENSOURCE_WINDOWS_ID 0x0001 /* Citrix */ +#define PVDRIVERS_XENSOURCE_WINDOWS_NAME "xensource-windows" + +#define PVDRIVERS_GPLPV_WINDOWS_ID 0x0002 /* James Harper */ +#define PVDRIVERS_GPLPV_WINDOWS_NAME "gplpv-windows" + +#define PVDRIVERS_EXPERIMENTAL_ID 0xffff +#define PVDRIVERS_EXPERIMENTAL_NAME "experimental" + +#endif /* _XEN_PUBLIC_PVDRIVERS_H_ */ -- 1.7.2.5
Paul Durrant
2012-Sep-26 12:23 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 | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/xen/include/public/hvm/pvdrivers.h b/xen/include/public/hvm/pvdrivers.h index 4be57ac..75fa656 100644 --- a/xen/include/public/hvm/pvdrivers.h +++ b/xen/include/public/hvm/pvdrivers.h @@ -44,6 +44,9 @@ #define PVDRIVERS_GPLPV_WINDOWS_ID 0x0002 /* James Harper */ #define PVDRIVERS_GPLPV_WINDOWS_NAME "gplpv-windows" +#define PVDRIVERS_LINUX_ID 0x0003 /* platform_pci.h */ +#define PVDRIVERS_LINUX_NAME "linux" + #define PVDRIVERS_EXPERIMENTAL_ID 0xffff #define PVDRIVERS_EXPERIMENTAL_NAME "experimental" -- 1.7.2.5
Jan Beulich
2012-Sep-26 12:45 UTC
Re: [PATCH 1/2] Add a new pvdrivers header to serve as the register of product numbers.
>>> On 26.09.12 at 14:23, Paul Durrant <paul.durrant@citrix.com> wrote: > --- /dev/null > +++ b/xen/include/public/hvm/pvdrivers.h > @@ -0,0 +1,50 @@ > +/* > + * 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@lists.xen.org> + * 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.Which "the product ID"? Jan> + */ > + > +#define PVDRIVERS_XENSOURCE_WINDOWS_ID 0x0001 /* Citrix */ > +#define PVDRIVERS_XENSOURCE_WINDOWS_NAME "xensource-windows" > + > +#define PVDRIVERS_GPLPV_WINDOWS_ID 0x0002 /* James Harper */ > +#define PVDRIVERS_GPLPV_WINDOWS_NAME "gplpv-windows" > + > +#define PVDRIVERS_EXPERIMENTAL_ID 0xffff > +#define PVDRIVERS_EXPERIMENTAL_NAME "experimental" > + > +#endif /* _XEN_PUBLIC_PVDRIVERS_H_ */ > -- > 1.7.2.5 > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel
Konrad Rzeszutek Wilk
2012-Sep-26 12:49 UTC
Re: [PATCH 1/2] Add a new pvdrivers header to serve as the register of product numbers.
On Wed, Sep 26, 2012 at 01:23:31PM +0100, Paul Durrant wrote:> 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 | 50 ++++++++++++++++++++++++++++++++ > 2 files changed, 51 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..4be57ac > --- /dev/null > +++ b/xen/include/public/hvm/pvdrivers.h > @@ -0,0 +1,50 @@ > +/* > + * 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_XENSOURCE_WINDOWS_ID 0x0001 /* Citrix */ > +#define PVDRIVERS_XENSOURCE_WINDOWS_NAME "xensource-windows" > + > +#define PVDRIVERS_GPLPV_WINDOWS_ID 0x0002 /* James Harper */ > +#define PVDRIVERS_GPLPV_WINDOWS_NAME "gplpv-windows"And also the Oracle one :-) The Novell one looks to be using 107?> + > +#define PVDRIVERS_EXPERIMENTAL_ID 0xffff > +#define PVDRIVERS_EXPERIMENTAL_NAME "experimental" > + > +#endif /* _XEN_PUBLIC_PVDRIVERS_H_ */ > -- > 1.7.2.5 > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel >
Konrad Rzeszutek Wilk
2012-Sep-26 12:51 UTC
Re: [PATCH 0/2] PV drivers product number registration
On Wed, Sep 26, 2012 at 01:23:30PM +0100, Paul Durrant wrote:> 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 module of > traditional QEMU. It should really be in a Xen header file to preventWhy do we want to blacklist them? Isn''t it a whitelist (as in it is the right values?)> 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. > > Signed-off-by: Paul Durrant <paul.durrant@citrix.com> > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel >
Ian Campbell
2012-Sep-26 12:54 UTC
Re: [PATCH 1/2] Add a new pvdrivers header to serve as the register of product numbers.
On Wed, 2012-09-26 at 13:23 +0100, Paul Durrant wrote:> 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 | 50 ++++++++++++++++++++++++++++++++ > 2 files changed, 51 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..4be57ac > --- /dev/null > +++ b/xen/include/public/hvm/pvdrivers.h > @@ -0,0 +1,50 @@ > +/* > + * 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.Can we add a reference to the unplug protocol doc here too please.> + */ > + > +#define PVDRIVERS_XENSOURCE_WINDOWS_ID 0x0001 /* Citrix */ > +#define PVDRIVERS_XENSOURCE_WINDOWS_NAME "xensource-windows" > + > +#define PVDRIVERS_GPLPV_WINDOWS_ID 0x0002 /* James Harper */ > +#define PVDRIVERS_GPLPV_WINDOWS_NAME "gplpv-windows" > + > +#define PVDRIVERS_EXPERIMENTAL_ID 0xffff > +#define PVDRIVERS_EXPERIMENTAL_NAME "experimental" > + > +#endif /* _XEN_PUBLIC_PVDRIVERS_H_ */
Ian Campbell
2012-Sep-26 13:05 UTC
Re: [PATCH 1/2] Add a new pvdrivers header to serve as the register of product numbers.
On Wed, 2012-09-26 at 13:49 +0100, Konrad Rzeszutek Wilk wrote:> On Wed, Sep 26, 2012 at 01:23:31PM +0100, Paul Durrant wrote: > > 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 | 50 ++++++++++++++++++++++++++++++++ > > 2 files changed, 51 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..4be57ac > > --- /dev/null > > +++ b/xen/include/public/hvm/pvdrivers.h > > @@ -0,0 +1,50 @@ > > +/* > > + * 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_XENSOURCE_WINDOWS_ID 0x0001 /* Citrix */ > > +#define PVDRIVERS_XENSOURCE_WINDOWS_NAME "xensource-windows" > > + > > +#define PVDRIVERS_GPLPV_WINDOWS_ID 0x0002 /* James Harper */ > > +#define PVDRIVERS_GPLPV_WINDOWS_NAME "gplpv-windows" > > And also the Oracle one :-)Oracle is using 0x0002? That would be unfortunate...> > The Novell one looks to be using 107? > > + > > +#define PVDRIVERS_EXPERIMENTAL_ID 0xffff > > +#define PVDRIVERS_EXPERIMENTAL_NAME "experimental" > > + > > +#endif /* _XEN_PUBLIC_PVDRIVERS_H_ */ > > -- > > 1.7.2.5 > > > > > > _______________________________________________ > > Xen-devel mailing list > > Xen-devel@lists.xen.org > > http://lists.xen.org/xen-devel > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel
On Wed, 2012-09-26 at 13:51 +0100, Konrad Rzeszutek Wilk wrote:> On Wed, Sep 26, 2012 at 01:23:30PM +0100, Paul Durrant wrote: > > 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 module of > > traditional QEMU. It should really be in a Xen header file to prevent > > Why do we want to blacklist them? Isn''t it a whitelist (as in it is > the right values?)We don''t *want* to blacklist them, but this gives us a mechanism whereby in the future we can blacklist drivers which turn out to be buggy from the host level (via qemu). See docs/misc/hvm-emulated-unplug.markdown AFAIK qemu currently doesn''t blacklist anything. Ian.> > > 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. > > > > Signed-off-by: Paul Durrant <paul.durrant@citrix.com> > > > > > > _______________________________________________ > > Xen-devel mailing list > > Xen-devel@lists.xen.org > > http://lists.xen.org/xen-devel > > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel
Paul Durrant
2012-Sep-26 13:16 UTC
Re: [PATCH 1/2] Add a new pvdrivers header to serve as the register of product numbers.
> -----Original Message----- > From: Jan Beulich [mailto:JBeulich@suse.com] > Sent: 26 September 2012 13:46 > To: Paul Durrant > Cc: xen-devel@lists.xen.org > Subject: Re: [Xen-devel] [PATCH 1/2] Add a new pvdrivers header to serve > as the register of product numbers. > > >>> On 26.09.12 at 14:23, Paul Durrant <paul.durrant@citrix.com> wrote: > > --- /dev/null > > +++ b/xen/include/public/hvm/pvdrivers.h > > @@ -0,0 +1,50 @@ > > +/* > > + * 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 > > @lists.xen.org >Good point. That was historic. I''ll fix it up.> > + * 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. > > Which "the product ID"? >The ones post-fixed ''_ID''. Paul> Jan > > > + */ > > + > > +#define PVDRIVERS_XENSOURCE_WINDOWS_ID > 0x0001 /* Citrix */ > > +#define PVDRIVERS_XENSOURCE_WINDOWS_NAME "xensource- > windows" > > + > > +#define PVDRIVERS_GPLPV_WINDOWS_ID 0x0002 /* > James Harper */ > > +#define PVDRIVERS_GPLPV_WINDOWS_NAME "gplpv- > windows" > > + > > +#define PVDRIVERS_EXPERIMENTAL_ID 0xffff > > +#define PVDRIVERS_EXPERIMENTAL_NAME > "experimental" > > + > > +#endif /* _XEN_PUBLIC_PVDRIVERS_H_ */ > > -- > > 1.7.2.5 > > > > > > _______________________________________________ > > Xen-devel mailing list > > Xen-devel@lists.xen.org > > http://lists.xen.org/xen-devel > >
David Vrabel
2012-Sep-26 13:26 UTC
Re: [PATCH 1/2] Add a new pvdrivers header to serve as the register of product numbers.
On 26/09/12 13:23, Paul Durrant wrote:> > + * During development, you may use the product ID to^ EXPERIMENTAL ?> + * indicate a driver which is yet to be released.David
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 module of 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. Signed-off-by: Paul Durrant <paul.durrant@citrix.com>
Paul Durrant
2012-Sep-26 13:50 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 | 53 ++++++++++++++++++++++++++++++++ 2 files changed, 54 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..98d61d0 --- /dev/null +++ b/xen/include/public/hvm/pvdrivers.h @@ -0,0 +1,53 @@ +/* + * 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.xen.org. 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 EXPERIMENTAL product ID to + * indicate a driver which is yet to be released. + * + * See docs/misc/hvm-emulated-unplug.markdown for details of how + * the product number is used. + */ + +#define PVDRIVERS_XENSOURCE_WINDOWS_ID 0x0001 /* Citrix */ +#define PVDRIVERS_XENSOURCE_WINDOWS_NAME "xensource-windows" + +#define PVDRIVERS_GPLPV_WINDOWS_ID 0x0002 /* James Harper */ +#define PVDRIVERS_GPLPV_WINDOWS_NAME "gplpv-windows" + +#define PVDRIVERS_EXPERIMENTAL_ID 0xffff +#define PVDRIVERS_EXPERIMENTAL_NAME "experimental" + +#endif /* _XEN_PUBLIC_PVDRIVERS_H_ */ -- 1.7.2.5
Paul Durrant
2012-Sep-26 13:50 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 | 10 +++++----- 1 files changed, 5 insertions(+), 5 deletions(-) diff --git a/xen/include/public/hvm/pvdrivers.h b/xen/include/public/hvm/pvdrivers.h index 98d61d0..75fa656 100644 --- a/xen/include/public/hvm/pvdrivers.h +++ b/xen/include/public/hvm/pvdrivers.h @@ -28,17 +28,14 @@ * 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.xen.org. You should NOT use + * 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 EXPERIMENTAL product ID to + * During development, you may use the product ID to * indicate a driver which is yet to be released. - * - * See docs/misc/hvm-emulated-unplug.markdown for details of how - * the product number is used. */ #define PVDRIVERS_XENSOURCE_WINDOWS_ID 0x0001 /* Citrix */ @@ -47,6 +44,9 @@ #define PVDRIVERS_GPLPV_WINDOWS_ID 0x0002 /* James Harper */ #define PVDRIVERS_GPLPV_WINDOWS_NAME "gplpv-windows" +#define PVDRIVERS_LINUX_ID 0x0003 /* platform_pci.h */ +#define PVDRIVERS_LINUX_NAME "linux" + #define PVDRIVERS_EXPERIMENTAL_ID 0xffff #define PVDRIVERS_EXPERIMENTAL_NAME "experimental" -- 1.7.2.5
Jan Beulich
2012-Sep-27 07:20 UTC
Re: [PATCH 1/2] Add a new pvdrivers header to serve as the register of product numbers.
>>> On 26.09.12 at 15:16, Paul Durrant <Paul.Durrant@citrix.com> wrote: >> From: Jan Beulich [mailto:JBeulich@suse.com] >> >>> On 26.09.12 at 14:23, Paul Durrant <paul.durrant@citrix.com> wrote: >> > + * 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. >> >> Which "the product ID"? >> > > The ones post-fixed ''_ID''.I would have thought it''s meant to be specifically PVDRIVERS_EXPERIMENTAL_ID, and hence expected that to be spelled out. Jan
Paul Durrant
2012-Sep-27 07:44 UTC
Re: [PATCH 1/2] Add a new pvdrivers header to serve as the register of product numbers.
> -----Original Message----- > From: Jan Beulich [mailto:JBeulich@suse.com] > Sent: 27 September 2012 08:21 > To: Paul Durrant > Cc: xen-devel@lists.xen.org > Subject: Re: [Xen-devel] [PATCH 1/2] Add a new pvdrivers header to serve > as the register of product numbers. > > >>> On 26.09.12 at 15:16, Paul Durrant <Paul.Durrant@citrix.com> wrote: > >> From: Jan Beulich [mailto:JBeulich@suse.com] > >> >>> On 26.09.12 at 14:23, Paul Durrant <paul.durrant@citrix.com> wrote: > >> > + * 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. > >> > >> Which "the product ID"? > >> > > > > The ones post-fixed ''_ID''. > > I would have thought it''s meant to be specifically > PVDRIVERS_EXPERIMENTAL_ID, and hence expected that to be spelled out. >Sorry, I misread what you''d said. Fixed in the 2nd version anyway. Paul
Jan Beulich
2012-Sep-27 08:06 UTC
Re: [PATCH 1/2] Add a new pvdrivers header to serve as the register of product numbers.
>>> On 26.09.12 at 14:49, Konrad Rzeszutek Wilk <konrad@kernel.org> wrote: > On Wed, Sep 26, 2012 at 01:23:31PM +0100, Paul Durrant wrote: >> +#define PVDRIVERS_XENSOURCE_WINDOWS_ID 0x0001 /* Citrix */ >> +#define PVDRIVERS_XENSOURCE_WINDOWS_NAME "xensource-windows" >> + >> +#define PVDRIVERS_GPLPV_WINDOWS_ID 0x0002 /* James Harper */ >> +#define PVDRIVERS_GPLPV_WINDOWS_NAME "gplpv-windows" > > And also the Oracle one :-) > > The Novell one looks to be using 107?Where did you spot that one? I was only able to locate use of 0xffff... Jan
Konrad Rzeszutek Wilk
2012-Sep-28 17:41 UTC
Re: [PATCH 1/2] Add a new pvdrivers header to serve as the register of product numbers.
On Thu, Sep 27, 2012 at 09:06:52AM +0100, Jan Beulich wrote:> >>> On 26.09.12 at 14:49, Konrad Rzeszutek Wilk <konrad@kernel.org> wrote: > > On Wed, Sep 26, 2012 at 01:23:31PM +0100, Paul Durrant wrote: > >> +#define PVDRIVERS_XENSOURCE_WINDOWS_ID 0x0001 /* Citrix */ > >> +#define PVDRIVERS_XENSOURCE_WINDOWS_NAME "xensource-windows" > >> + > >> +#define PVDRIVERS_GPLPV_WINDOWS_ID 0x0002 /* James Harper */ > >> +#define PVDRIVERS_GPLPV_WINDOWS_NAME "gplpv-windows" > > > > And also the Oracle one :-) > > > > The Novell one looks to be using 107? > > Where did you spot that one? I was only able to locate use of > 0xffff...Let me doublecheck then. I saw it from the /var/log/xen/qemu.. being printed. This was a Win2K guest.> > Jan > > > _______________________________________________ > Xen-devel mailing list > Xen-devel@lists.xen.org > http://lists.xen.org/xen-devel >
Ian Jackson
2012-Sep-28 17:54 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.> +#define PVDRIVERS_XENSOURCE_WINDOWS_ID 0x0001 /* Citrix */ > +#define PVDRIVERS_XENSOURCE_WINDOWS_NAME "xensource-windows" > + > +#define PVDRIVERS_GPLPV_WINDOWS_ID 0x0002 /* James Harper */ > +#define PVDRIVERS_GPLPV_WINDOWS_NAME "gplpv-windows" > + > +#define PVDRIVERS_EXPERIMENTAL_ID 0xffff > +#define PVDRIVERS_EXPERIMENTAL_NAME "experimental"This form for this list is very ill-suited to many obvious uses. For example it cannot be used to automatically generate a switch statement or a table of values for printing. Can I suggest #define PVDRIVERS_ID_NAME_LIST(EACH) \ EACH(WINDOWS, 0x0001 /* Citrix */, "xensource-windows") \ ... or something ? Ian.