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

Re: [Xen-devel] pv_ops dom0 kernel failure with ata_piix / irq problems



On Mon, Feb 02, 2009 at 10:34:55PM +0200, Pasi Kärkkäinen wrote:
> On Mon, Feb 02, 2009 at 10:11:13PM +0200, Pasi Kärkkäinen wrote:
> > On Mon, Feb 02, 2009 at 09:22:17PM +0200, Pasi Kärkkäinen wrote:
> > > On Mon, Feb 02, 2009 at 10:42:30AM +0200, Pasi Kärkkäinen wrote:
> > > > On Fri, Jan 30, 2009 at 10:50:51AM -0800, Jeremy Fitzhardinge wrote:
> > > > > Ian Campbell wrote:
> > > > > >On Fri, 2009-01-30 at 18:12 +0000, Ian Campbell wrote:
> > > > > >  
> > > > > >>Possibly the correct fix might be to use xen_register_gsi() here
> > > > > >>instead of xen_allocate_pirq() and get rid of the special case for 
> > > > > >>IRQ
> > > > > >>14 and 15 in xen_pci_pirq_enable(). Maybe only 14 and 15 need this
> > > > > >>special treatment.
> > > > > >>    
> > > > > >
> > > > > >FWIW this also Works For Me.
> > > > > >  
> > > > > 
> > > > > OK.  I'd noticed that the native code just sets up all the legacy 
> > > > > interrupts at once.  I guess we should follow the lead to avoid these 
> > > > > kinds of init order problems.
> > > > > 
> > > > 
> > > > OK.
> > > > 
> > > > I've been busy, and haven't yet had time to try the patch.
> > > > 
> > > > Hopefully I can try it later today!
> > > > 
> > > 
> > > And now I tried the latest bits. 
> > > 
> > > I also applied Ian's legacy irq fix/patch. 
> > > 
> > > bootlog:
> > > http://pasik.reaktio.net/xen/pv_ops-dom0-debug/pv_ops-dom0-bootlog-8-xen331-linux-2.6.29-rc3.txt
> > > 
> > > Now my (IDE) disk is detected, but it ata_piix still seems to fail..
> > > 
> > > I guess I'll compile new kernel again with libata debug enabled.. 
> > > 
> > 
> > I enabled the following in include/linux/libata.h:
> > 
> > #define ATA_DEBUG
> > #define ATA_VERBOSE_DEBUG
> > #define ATA_IRQ_TRAP
> > 
> > And here's dom0 bootlog with those debugging options enabled:
> > http://pasik.reaktio.net/xen/pv_ops-dom0-debug/pv_ops-dom0-bootlog-9-xen331-linux-2.6.29-rc3-atadebug.txt
> > 
> > Is there something you'd like me to try/test? 
> > 
> 
> Hmm.. I was using this patch, which looks different from what was committed
> to the patches.hg repository 2 hours ago..
> 

I just tried updating to the latest patches repository, which has the legacy
irqs patches. 

It didn't unfortunately help.. I'm still seeing the same problems with
ata_piix.

-- Pasi

> 
> --- a/arch/x86/xen/pci.c        Fri Jan 30 17:39:54 2009 +0000                
>                                                                               
>   
> +++ b/arch/x86/xen/pci.c        Fri Jan 30 18:16:34 2009 +0000                
>                                                                               
>   
> @@ -75,15 +75,6 @@                                                            
>                                                                               
>   
>                                                                               
>                                                                               
>   
>                 printk(KERN_INFO "xen: PCI device %s pin %d -> irq %d\n",     
>                                                                               
>   
>                        pci_name(dev), dev->pin, irq);                         
>                                                                               
>   
> -       } else if (((dev->class >> 8) == PCI_CLASS_STORAGE_IDE) &&            
>                                                                               
>   
> -                   (dev->class & 0x05) == 0) {                               
>                                                                               
>   
> -               /* Legacy IDE devices have hard-coded irq 14/15 */            
>                                                                               
>   
> -               printk(KERN_INFO "xen: %s: legacy IDE\n", pci_name(dev));     
>                                                                               
>   
> -                                                                             
>                                                                               
>   
> -               xen_register_gsi(14, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW);  
>                                                                               
>   
> -               xen_register_gsi(15, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW);  
>                                                                               
>   
> -                                                                             
>                                                                               
>   
> -               rc = 0;                                                       
>                                                                               
>   
>         } else {                                                              
>                                                                               
>   
>                 printk(KERN_INFO "xen: irq enable for %s failed: rc=%d pin=%d 
> irq=%d\n",                                                                    
>   
>                         pci_name(dev), rc, dev->pin, dev->irq);               
>                                                                               
>   
> @@ -133,4 +124,6 @@                                                           
>                                                                               
>   
>         /* Blerk. */                                                          
>                                                                               
>   
>         acpi_gbl_FADT.sci_interrupt = irq;                                    
>                                                                               
>   
>  #endif                                                                       
>                                                                               
>   
> +       xen_register_gsi(14, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW);          
>                                                                               
>   
> +       xen_register_gsi(15, ACPI_LEVEL_SENSITIVE, ACPI_ACTIVE_LOW);          
>                                                                               
>   
>  }        
> 
> 
> -- Pasi
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

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