[Xen-devel] PVHVM drivers in upstream linux kernel

2014-12-02 Thread Juergen Gross

Hi,

looking into the upstream linux sources I realized that the PVHVM
drivers of XEN are only available with the pvops kernel. Is this on
purpose? Shouldn't the frontend drivers, xen/platform-pci.c etc. be
configurable without having to enable CONFIG_PARAVIRT?

Juergen

___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


Re: [Xen-devel] PVHVM drivers in upstream linux kernel

2014-12-02 Thread Juergen Gross

On 12/02/2014 11:54 AM, David Vrabel wrote:

On 02/12/14 09:39, Juergen Gross wrote:

Hi,

looking into the upstream linux sources I realized that the PVHVM
drivers of XEN are only available with the pvops kernel. Is this on
purpose? Shouldn't the frontend drivers, xen/platform-pci.c etc. be
configurable without having to enable CONFIG_PARAVIRT?


I suppose that would be possible but I don't think it's a useful
configuration because you would lose PV spinlocks for example.


Having no pv spinlocks on a single vcpu HVM guest isn't so bad. Having
no pv-drivers for disks and networking is worse.


Juergen

___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


Re: [Xen-devel] PVHVM drivers in upstream linux kernel

2014-12-02 Thread Ian Campbell
On Tue, 2014-12-02 at 10:54 +, David Vrabel wrote:
 On 02/12/14 09:39, Juergen Gross wrote:
  Hi,
  
  looking into the upstream linux sources I realized that the PVHVM
  drivers of XEN are only available with the pvops kernel. Is this on
  purpose? Shouldn't the frontend drivers, xen/platform-pci.c etc. be
  configurable without having to enable CONFIG_PARAVIRT?
 
 I suppose that would be possible but I don't think it's a useful
 configuration because you would lose PV spinlocks for example.

IIRC the reason this hasn't been implemented until now is that
refactoring would be required to the various bits of driver code which
assumes PAE + PARAVIRT when they aren't strictly needed, e.g. grant
table code. Whether its worth the churn at this stage is debatable, but
I think the (in)ability to use PV spinlocks is a red-herring.

Adding PV drivers to an HVM guest is a useful thing to do, even without
PV spinlocks. PV IO gets you far more incremental benefit than the locks
do, adding PV IO paths is the number 1 thing which should be done to any
guest.

One actual usecase is installing from a distro installer which isn't
PAE, let alone PARAVIRT enabled[0], to get far enough that you can
install a more capable PVHVM kernel with more bells and whistles.

If there were distros around who refused wholesale to enable PARAVIRT
even in a non-default kernel then it would be more likely that they
could be convinced to enable a set of PV IO drivers, since they have 0
impact on a non-PARAVIRT system, and still give significant benefit to
Xen users. I don't know of any of the major distros are refusing
PARAVIRT in this way though.

Ian.

[0] The default i386 Debian installer falls into this camp, but you can
use the special PV Xen variant to install as PVHVM too so it's not so
critical.


___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


Re: [Xen-devel] PVHVM drivers in upstream linux kernel

2014-12-02 Thread Juergen Gross

On 12/02/2014 12:05 PM, Ian Campbell wrote:

On Tue, 2014-12-02 at 10:54 +, David Vrabel wrote:

On 02/12/14 09:39, Juergen Gross wrote:

Hi,

looking into the upstream linux sources I realized that the PVHVM
drivers of XEN are only available with the pvops kernel. Is this on
purpose? Shouldn't the frontend drivers, xen/platform-pci.c etc. be
configurable without having to enable CONFIG_PARAVIRT?


I suppose that would be possible but I don't think it's a useful
configuration because you would lose PV spinlocks for example.


IIRC the reason this hasn't been implemented until now is that
refactoring would be required to the various bits of driver code which
assumes PAE + PARAVIRT when they aren't strictly needed, e.g. grant
table code. Whether its worth the churn at this stage is debatable, but
I think the (in)ability to use PV spinlocks is a red-herring.

Adding PV drivers to an HVM guest is a useful thing to do, even without
PV spinlocks. PV IO gets you far more incremental benefit than the locks
do, adding PV IO paths is the number 1 thing which should be done to any
guest.


I take this as an ack to change this. :-)


One actual usecase is installing from a distro installer which isn't
PAE, let alone PARAVIRT enabled[0], to get far enough that you can
install a more capable PVHVM kernel with more bells and whistles.

If there were distros around who refused wholesale to enable PARAVIRT
even in a non-default kernel then it would be more likely that they
could be convinced to enable a set of PV IO drivers, since they have 0
impact on a non-PARAVIRT system, and still give significant benefit to
Xen users. I don't know of any of the major distros are refusing
PARAVIRT in this way though.


I think we have customers wanting to run a default kernel as domU. So it
isn't always the distro refusing paravirt, it might be the user...

Okay, how do the current config settings regarding Xen look like?

We have:
- XEN depending on PARAVIRT
- XEN_DOM0 depending on XEN and others
- XEN_BACKEND depending on XEN_DOM0
- various backend drivers depending on XEN_BACKEND
- XEN_PVHVM depending on XEN
- various frontend drivers depending on XEN (even if some are not
  depending on XEN according to Kconfig, they do as the complete
  drivers/xen directory is made only if CONFIG_XEN is defined)

To sort things out I'd suggest to:
- make XEN independent from PARAVIRT
- let XEN_DOM0 select XEN_BACKEND, PARAVIRT, XEN
- let XEN_BACKEND select PARAVIRT, XEN (I'd like to be able to build
  a driver domain without XEN_DOM0)
- introduce XEN_FRONTEND, let it select XEN
- let frontend drivers and drivers needed by those depend on
  XEN_FRONTEND
- let XEN_PVHVM select XEN_FRONTEND
- don't skip drivers/xen on make, as XEN might be selected via a
  config item in that directory


Juergen


___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


Re: [Xen-devel] PVHVM drivers in upstream linux kernel

2014-12-02 Thread Ian Campbell
On Tue, 2014-12-02 at 12:33 +0100, Juergen Gross wrote:
 On 12/02/2014 12:05 PM, Ian Campbell wrote:
  On Tue, 2014-12-02 at 10:54 +, David Vrabel wrote:
  On 02/12/14 09:39, Juergen Gross wrote:
  Hi,
 
  looking into the upstream linux sources I realized that the PVHVM
  drivers of XEN are only available with the pvops kernel. Is this on
  purpose? Shouldn't the frontend drivers, xen/platform-pci.c etc. be
  configurable without having to enable CONFIG_PARAVIRT?
 
  I suppose that would be possible but I don't think it's a useful
  configuration because you would lose PV spinlocks for example.
 
  IIRC the reason this hasn't been implemented until now is that
  refactoring would be required to the various bits of driver code which
  assumes PAE + PARAVIRT when they aren't strictly needed, e.g. grant
  table code. Whether its worth the churn at this stage is debatable, but
  I think the (in)ability to use PV spinlocks is a red-herring.
 
  Adding PV drivers to an HVM guest is a useful thing to do, even without
  PV spinlocks. PV IO gets you far more incremental benefit than the locks
  do, adding PV IO paths is the number 1 thing which should be done to any
  guest.
 
 I take this as an ack to change this. :-)

It's a best IMHO being able to do this is a useful thing. I can't ack
the actual final patch, a) I'm not a relevant maintainer and b) I've not
seen the patch.

 Okay, how do the current config settings regarding Xen look like?

...I'll leave the mechanics down to you and the maintainers to thrash
out.

Ian.


___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


Re: [Xen-devel] PVHVM drivers in upstream linux kernel

2014-12-02 Thread Juergen Gross

On 12/02/2014 12:36 PM, Ian Campbell wrote:

On Tue, 2014-12-02 at 12:33 +0100, Juergen Gross wrote:

On 12/02/2014 12:05 PM, Ian Campbell wrote:

On Tue, 2014-12-02 at 10:54 +, David Vrabel wrote:

On 02/12/14 09:39, Juergen Gross wrote:

Hi,

looking into the upstream linux sources I realized that the PVHVM
drivers of XEN are only available with the pvops kernel. Is this on
purpose? Shouldn't the frontend drivers, xen/platform-pci.c etc. be
configurable without having to enable CONFIG_PARAVIRT?


I suppose that would be possible but I don't think it's a useful
configuration because you would lose PV spinlocks for example.


IIRC the reason this hasn't been implemented until now is that
refactoring would be required to the various bits of driver code which
assumes PAE + PARAVIRT when they aren't strictly needed, e.g. grant
table code. Whether its worth the churn at this stage is debatable, but
I think the (in)ability to use PV spinlocks is a red-herring.

Adding PV drivers to an HVM guest is a useful thing to do, even without
PV spinlocks. PV IO gets you far more incremental benefit than the locks
do, adding PV IO paths is the number 1 thing which should be done to any
guest.


I take this as an ack to change this. :-)


It's a best IMHO being able to do this is a useful thing. I can't ack
the actual final patch, a) I'm not a relevant maintainer and b) I've not
seen the patch.


It was not meant to be taken as an ack for a not yet written patch. :-)




Okay, how do the current config settings regarding Xen look like?


...I'll leave the mechanics down to you and the maintainers to thrash
out.


Yeah, stay tuned. :-)


Juergen

___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


Re: [Xen-devel] PVHVM drivers in upstream linux kernel

2014-12-02 Thread Juergen Gross

On 12/02/2014 12:59 PM, David Vrabel wrote:

On 02/12/14 11:33, Juergen Gross wrote:


I think we have customers wanting to run a default kernel as domU. So it
isn't always the distro refusing paravirt, it might be the user...


I don't think this is a sensible use case but I'm not adverse to
improving the set of Xen config options.


To sort things out I'd suggest to:
- make XEN independent from PARAVIRT
- let XEN_DOM0 select XEN_BACKEND, PARAVIRT, XEN
- let XEN_BACKEND select PARAVIRT, XEN (I'd like to be able to build
   a driver domain without XEN_DOM0)
- introduce XEN_FRONTEND, let it select XEN
- let frontend drivers and drivers needed by those depend on
   XEN_FRONTEND
- let XEN_PVHVM select XEN_FRONTEND


Rather than looking at the current set of configuration options, can you
look at what user-visible functionality or use cases need to be covered
by a (potentially new) set of configuration options?


I'd see:
- XEN_PV (selects PARAVIRT, XEN_FRONTEND): be able to run as pv-domain
  (x86 only)
- XEN_PVHVM (selects XEN_FRONTEND): be able to run as hvm-domain with
  pv-drivers
- XEN_BACKEND (selects PARAVIRT if x86): be able to run as driver domain
  (dom0 or other)
- XEN_DOM0 (selects PARAVIRT if x86, XEN_BACKEND): be able to run as
  dom0
- XEN_FRONTEND: be able to run as domU with pv-drivers


Juergen


___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


Re: [Xen-devel] PVHVM drivers in upstream linux kernel

2014-12-02 Thread David Vrabel
On 02/12/14 13:00, Juergen Gross wrote:
 
 I'd see:
 - XEN_PV (selects PARAVIRT, XEN_FRONTEND): be able to run as pv-domain
   (x86 only)

Depends on PARAVIRT perhaps?

 - XEN_PVHVM (selects XEN_FRONTEND): be able to run as hvm-domain with
   pv-drivers
 - XEN_BACKEND (selects PARAVIRT if x86): be able to run as driver domain
   (dom0 or other)

Does not need to select PARAVIRT -- HVM domains can run backends.

 - XEN_DOM0 (selects PARAVIRT if x86, XEN_BACKEND): be able to run as
   dom0

XEN_DOM0 depends on XEN_PV or XEN_PVH (if x86) and whatever ARM needs.

 - XEN_FRONTEND: be able to run as domU with pv-drivers

It may also be interesting to consider splitting the PV MMU stuff under
a PARAVIRT_MMU option.  This might address a reason why people want to
disable PARAVIRT completely.

David

___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel


Re: [Xen-devel] PVHVM drivers in upstream linux kernel

2014-12-02 Thread Konrad Rzeszutek Wilk
On Tue, Dec 02, 2014 at 11:05:14AM +, Ian Campbell wrote:
 On Tue, 2014-12-02 at 10:54 +, David Vrabel wrote:
  On 02/12/14 09:39, Juergen Gross wrote:
   Hi,
   
   looking into the upstream linux sources I realized that the PVHVM
   drivers of XEN are only available with the pvops kernel. Is this on
   purpose? Shouldn't the frontend drivers, xen/platform-pci.c etc. be
   configurable without having to enable CONFIG_PARAVIRT?
  
  I suppose that would be possible but I don't think it's a useful
  configuration because you would lose PV spinlocks for example.
 
 IIRC the reason this hasn't been implemented until now is that
 refactoring would be required to the various bits of driver code which
 assumes PAE + PARAVIRT when they aren't strictly needed, e.g. grant
 table code. Whether its worth the churn at this stage is debatable, but
 I think the (in)ability to use PV spinlocks is a red-herring.
 
 Adding PV drivers to an HVM guest is a useful thing to do, even without
 PV spinlocks. PV IO gets you far more incremental benefit than the locks
 do, adding PV IO paths is the number 1 thing which should be done to any
 guest.
 
 One actual usecase is installing from a distro installer which isn't
 PAE, let alone PARAVIRT enabled[0], to get far enough that you can
 install a more capable PVHVM kernel with more bells and whistles.
 
 If there were distros around who refused wholesale to enable PARAVIRT
 even in a non-default kernel then it would be more likely that they
 could be convinced to enable a set of PV IO drivers, since they have 0
 impact on a non-PARAVIRT system, and still give significant benefit to
 Xen users. I don't know of any of the major distros are refusing
 PARAVIRT in this way though.
 
 Ian.
 
 [0] The default i386 Debian installer falls into this camp, but you can
 use the special PV Xen variant to install as PVHVM too so it's not so
 critical.

And the Fedora 21 LiveISO (32-bit) does too.
 
 
 ___
 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


Re: [Xen-devel] PVHVM drivers in upstream linux kernel

2014-12-02 Thread Konrad Rzeszutek Wilk
On Tue, Dec 02, 2014 at 03:13:28PM +, Ian Campbell wrote:
 On Tue, 2014-12-02 at 10:11 -0500, Konrad Rzeszutek Wilk wrote:
   [0] The default i386 Debian installer falls into this camp, but you can
   use the special PV Xen variant to install as PVHVM too so it's not so
   critical.
  
  And the Fedora 21 LiveISO (32-bit) does too.
 
 Interesting, I thought Fedora had switched to requiring PAE as a minimum
 baseline everywhere 

It did, except for the GNOME based LiveCD. And oddly enough it will install
an PAE kernel (since the CPU is capable of it) . But of course it won't
bundle the Xen drivers in the initramfs, so when the new OS boots it
keels over as it unplugs the emulated ones.
 
 Ian.
 

___
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel