Bug 153205 - [ahci] PIONEER DVD-RW: timeout with ahci(4), OK with ata(4) + ATA_CAM
Summary: [ahci] PIONEER DVD-RW: timeout with ahci(4), OK with ata(4) + ATA_CAM
Status: Open
Alias: None
Product: Base System
Classification: Unclassified
Component: kern (show other bugs)
Version: Unspecified
Hardware: Any Any
: Normal Affects Only Me
Assignee: freebsd-bugs (Nobody)
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-12-16 08:50 UTC by Dmitry Pryanishnikov
Modified: 2017-12-31 22:32 UTC (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Dmitry Pryanishnikov 2010-12-16 08:50:06 UTC
Hardware: INTEL D975XBX2 mb, Intel Core2 Quad CPU (Q6600), 8Gb of ECC RAM, PATA HDD (SAMSUNG SP1614N), SATA HDD (Seagate ST31000520AS), SATA DVD-RW (PIONEER DVR-215D). Both SATA HDD and SATA DVD-RW are connected to Intel ICH7 SATA300 controller. Worked w/o problems using old ata(4) driver, still works OK using ata(4) in ATA_CAM mode. However, loading ahci(4) results in HDD still working, but DVD-RW doesn't even get detected during the boot (I've tried different SATA ports on this controller and different SATA cables - results are the same).

Kernel configuration:

http://sites.google.com/site/lynxripe/freebsd/pr/20101216-ahci/lynx?attredirects=0&d=1

loader.conf for ata(4) case (for using ahci(4) I simply load it from the loader's prompt):

http://sites.google.com/site/lynxripe/freebsd/pr/20101216-ahci/loader.conf?attredirects=0&d=1

Verbose dmesg w/o ahci module (DVD-RW attached by ata(4) and works OK):

http://sites.google.com/site/lynxripe/freebsd/pr/20101216-ahci/dmesg-v.boot?attredirects=0&d=1

Verbose dmesg with ahci module (DVD-RW does not attach):

http://sites.google.com/site/lynxripe/freebsd/pr/20101216-ahci/dmesg-v-ahci.boot?attredirects=0&d=1

I'm ready to provide any additional information about this HW and try patches on it.
Comment 1 Alexander Motin freebsd_committer freebsd_triage 2011-04-28 19:49:51 UTC
Hi.

As I can see from dmesg, controller reports that command is completed,
but driver either haven't received interrupt or mishandled it.

Just an idea, could you try to disable MSI interrupts for the controller
by setting hint.ahci.0.msi=0 in /boot/loader.conf?

-- 
Alexander Motin
Comment 2 Dmitry Pryanishnikov 2011-04-29 19:06:30 UTC
Hello!

2011/4/28 Alexander Motin <mav@freebsd.org>:
> Hi.
>
> As I can see from dmesg, controller reports that command is completed,
> but driver either haven't received interrupt or mishandled it.
>
> Just an idea, could you try to disable MSI interrupts for the controller
> by setting hint.ahci.0.msi=0 in /boot/loader.conf?

  I've made an investigation using the same kernel config as in
original submission:

http://sites.google.com/site/lynxripe/freebsd/pr/20101216-ahci/lynx

but with more recent RELENG_8 sources (as of 2011-03-07). So, without
disabling MSI, problem is the same as originally described (timeout +
no cd0 when using ahci instead of ata with the Intel ICH7 AHCI SATA
controller):

http://sites.google.com/site/lynxripe/freebsd/pr/153205/110429/dmesg.txt

Setting hint.ahci.0.msi=0 _almost_ cures the problem: cd0 works, and
verbose boot logs most often look like this:

http://sites.google.com/site/lynxripe/freebsd/pr/153205/110429/dmesg-nomsi.txt

However, sometimes (I've seen it 2 times out of 6 reboots) vestiges of
the problem still appear in the form of non-fatal timeout:

http://sites.google.com/site/lynxripe/freebsd/pr/153205/110429/dmesg-nomsi2.txt
http://sites.google.com/site/lynxripe/freebsd/pr/153205/110429/dmesg-nomsi3.txt

OTOH, ata(4)+ATA_CAM works with MSI enabled for this controller
(hint.atapci.1.msi=1) just fine:

http://sites.google.com/site/lynxripe/freebsd/pr/153205/110429/dmesg-ata-msi.txt


>
> --
> Alexander Motin
>



-- 
Sincerely, Dmytro
Comment 3 Eitan Adler freebsd_committer freebsd_triage 2017-12-31 07:59:10 UTC
For bugs matching the following criteria:

Status: In Progress Changed: (is less than) 2014-06-01

Reset to default assignee and clear in-progress tags.

Mail being skipped