All of lore.kernel.org
 help / color / mirror / Atom feed
* Regression with 0b9e2988ab22 ("ahci: use pci_alloc_irq_vectors")
@ 2016-10-21 13:09 Jarkko Nikula
  2016-10-21 13:27 ` Christoph Hellwig
  0 siblings, 1 reply; 3+ messages in thread
From: Jarkko Nikula @ 2016-10-21 13:09 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: linux-ide, linux-kernel

Hi

SATA stopped working on Intel SoCs that have single SATA port after 
v4.9-rc1:

[    8.705008] ata1.00: qc timeout (cmd 0x27)
[    8.709164] ata1.00: failed to read native max address (err_mask=0x4)
[    8.715557] ata1.00: HPA support seems broken, skipping HPA handling
[    9.029754] ata1: SATA link up 6.0 Gbps (SStatus 133 SControl 300)
[   14.337028] ata1.00: qc timeout (cmd 0xef)
[   14.341185] ata1.00: failed to enable AA (error_mask=0x4)
[   14.346557] ata1: limiting SATA link speed to 3.0 Gbps
[   14.666922] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[   14.684359] ata1.00: ATA-9: INTEL SSDSC2BW240A4, DC32, max UDMA/133
[   14.690650] ata1.00: 468862128 sectors, multi 16: LBA48 NCQ (depth 31/32)
[   19.969116] ata1.00: qc timeout (cmd 0x47)
[   19.973307] ata1.00: READ LOG DMA EXT failed, trying unqueued
[   19.979026] ata1.00: failed to set xfermode (err_mask=0x40)
[   19.984559] ata1.00: disabled
[   19.987527] ata1: hard resetting link
[   20.306943] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 320)
[   20.313163] ata1: EH complete

I bisected this into commit 0b9e2988ab22 ("ahci: use 
pci_alloc_irq_vectors").

I did some debugging on a few machines (Skylake, Broxton, Kaby Lake and 
Bay Trail based) in our lab.

Before 0b9e2988ab22:
- All of those machines are using MSI for AHCI
- Number of SATA ports 1-4
- pci_msi_vec_count() returns 1 for all machines

After 0b9e2988ab22:
- SATA stopped working on machines with single port:
   * pci_alloc_irq_vectors() returns 1
   * Allocates the same MSI irq number as before but handler name
     is (null)
- With >1 ports AHCI defaults now to IO-APIC but continues working
   * pci_alloc_irq_vectors() returns -EINVAL from
     __pci_enable_msi_range() due if (nvec < minvec) test.

-- 
Jarkko

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Regression with 0b9e2988ab22 ("ahci: use pci_alloc_irq_vectors")
  2016-10-21 13:09 Regression with 0b9e2988ab22 ("ahci: use pci_alloc_irq_vectors") Jarkko Nikula
@ 2016-10-21 13:27 ` Christoph Hellwig
  2016-10-21 14:05   ` Jarkko Nikula
  0 siblings, 1 reply; 3+ messages in thread
From: Christoph Hellwig @ 2016-10-21 13:27 UTC (permalink / raw)
  To: Jarkko Nikula; +Cc: Christoph Hellwig, linux-ide, linux-kernel

Hi Jarkko,

please try the two fixes queue up in the libata tree for this:

https://git.kernel.org/cgit/linux/kernel/git/tj/libata.git/log/?h=for-4.9-fixes

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Regression with 0b9e2988ab22 ("ahci: use pci_alloc_irq_vectors")
  2016-10-21 13:27 ` Christoph Hellwig
@ 2016-10-21 14:05   ` Jarkko Nikula
  0 siblings, 0 replies; 3+ messages in thread
From: Jarkko Nikula @ 2016-10-21 14:05 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: linux-ide, linux-kernel

On 10/21/2016 04:27 PM, Christoph Hellwig wrote:
> Hi Jarkko,
>
> please try the two fixes queue up in the libata tree for this:
>
> https://git.kernel.org/cgit/linux/kernel/git/tj/libata.git/log/?h=for-4.9-fixes
>
Great! Commit 17a51f12cfbd ("ahci: only try to use multi-MSI mode if 
there is more than 1 port") fixed the non-working SATA on a machine with 
single port and it continues using MSI.

Another machine with more ports still uses IO-APIC (was using MSI before 
0b9e2988ab22 ("ahci: use pci_alloc_irq_vectors")). Then I applied 
a478b097474c ("ahci: fix nvec check") but didn't see changes.

-- 
Jarkko

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2016-10-21 14:05 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-21 13:09 Regression with 0b9e2988ab22 ("ahci: use pci_alloc_irq_vectors") Jarkko Nikula
2016-10-21 13:27 ` Christoph Hellwig
2016-10-21 14:05   ` Jarkko Nikula

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.