[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] xen: don't use PCI BIOS service for configuration space accesses



On Fri, Apr 13, 2012 at 01:55:11PM +0100, David Vrabel wrote:
> On 13/04/12 13:29, Jan Beulich wrote:
> >>>> On 13.04.12 at 14:08, David Vrabel <david.vrabel@xxxxxxxxxx> wrote:
> >> From: David Vrabel <david.vrabel@xxxxxxxxxx>
> >>
> >> The accessing PCI configuration space with the PCI BIOS service does
> >> not work in PV guests.
> >>
> >> This fixes boot on systems without MMCONFIG or where the BIOS hasn't
> >> marked the MMCONFIG region as reserved in the e820 map.
> > 
> > ... and where "direct" access doesn't work either? Are there really
> > machines where Xen works on but this doesn't work? (Or, in case
> > this is disabled in your config, is it really useful to have
> > CONFIG_PCI_DIRECT disabled?)
> 
> If you have CONFIG_PCI_GOANY (the default) BIOS is preferred over
> direct.  So this change makes it skip BIOS and fall back to direct.
> 
> On the system I had saw the problem, the first call into the BIOS
> service would hang the system.
> 
> > That's just a comment on the description, the patch itself is fine
> > nevertheless (but should probably be sent to the x86 and/or PCI
> > maintainers).
> 
> I was expecting Konrad to pick it up and forward it to the relevant
> maintainer as appropriate.  Konrad, would you prefer if I sent to direct?

You can send it to me. But I think it makes sense to stick
this in arch/x86/pci/xen.c - if it is not to late in teh bootup cycle?

> 
> >> Signed-off-by: David Vrabel <david.vrabel@xxxxxxxxxx>
> > 
> > Acked-by: Jan Beulich <jbeulich@xxxxxxxx>
> > 
> >> Cc: stable@xxxxxxxxxx 
> >> ---
> >>  arch/x86/xen/enlighten.c |    5 ++++-
> >>  1 files changed, 4 insertions(+), 1 deletions(-)
> >>
> >> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
> >> index b132ade..dbb5bb7 100644
> >> --- a/arch/x86/xen/enlighten.c
> >> +++ b/arch/x86/xen/enlighten.c
> >> @@ -63,6 +63,7 @@
> >>  #include <asm/stackprotector.h>
> >>  #include <asm/hypervisor.h>
> >>  #include <asm/mwait.h>
> >> +#include <asm/pci_x86.h>
> >>  
> >>  #ifdef CONFIG_ACPI
> >>  #include <linux/acpi.h>
> >> @@ -1365,7 +1366,9 @@ asmlinkage void __init xen_start_kernel(void)
> >>            /* Make sure ACS will be enabled */
> >>            pci_request_acs();
> >>    }
> >> -          
> >> +
> >> +  /* PCI BIOS service won't work from a PV guest. */
> >> +  pci_probe &= ~PCI_PROBE_BIOS;
> >>  
> >>    xen_raw_console_write("about to get started...\n");
> >>  
> >> -- 
> >> 1.7.2.5
> >>
> >>
> >> _______________________________________________
> >> Xen-devel mailing list
> >> Xen-devel@xxxxxxxxxxxxx 
> >> http://lists.xen.org/xen-devel 
> > 
> > 
> > 

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.