linux-ide.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tejun Heo <htejun@gmail.com>
To: Stefan Skotte <sfs@enhance-it.dk>
Cc: linux-ide@vger.kernel.org
Subject: Re: State of Port Multiplier Support in libata?
Date: Tue, 03 Jul 2007 00:07:10 +0900	[thread overview]
Message-ID: <4689149E.5030704@gmail.com> (raw)
In-Reply-To: <4688FC96.7040604@enhance-it.dk>

Hello,

Stefan Skotte wrote:
> ============================
> Here's the full log after a reboot, and me powering up the array
> manually afterwards:
> ============================
> [ 9995.743400] ata1: exception Emask 0x10 SAct 0x0 SErr 0x0 action 0xa
> frozen
> [ 9995.743409] ata1: irq_stat 0x00b40090 <PHY RDY changed>
> [ 9995.743419] ata1: hard resetting link
> [ 9997.936879] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 0)
> [ 9998.080620] ata1.15: Port Multiplier 1.1, 0x1095:0x3726 r23, 6 ports,
> feat 0x9/0x9
> [ 9998.208414] ata1.00: hard resetting link
> [ 9998.691615] ata1.00: softreset failed (SRST command error)
> [ 9998.691623] ata1.00: reset failed (errno=-5), retrying in 10 secs

Hmmm... it seems we can do a bit better here with shorter retry
interval.  The driver probably spins up in 5~7 secs.  The rest is wasted
here.  10secs isn't too bad tho.

> =============================
> Booting with array turned on:
> (disks are spun up one at a time)
> This also includes my slim dvdrw + seagate 500gb drive.
> =============================

Everything looks good.

> =============================
> Array turned of without rmmod'ing sata_sil24:
> =============================
[--snip--]
> [  351.479090] ata1.15: failed to read PMP product ID
> [  351.479096] ata1.15: retrying hardreset
> [  351.479106] ata1.15: hard resetting link
> [  356.566580] ata1.15: SATA link down (SStatus 1 SControl 0)
> [  356.822165] ata1.15: failed to read PMP GSCR[0] (errno=-5)
> [  356.822172] ata1.15: PMP revalidation failed (errno=-5)
> [  356.822179] ata1.15: limiting SATA link speed to 1.5 Gbps
> [  356.822184] ata1.15: retrying hardreset in 5 secs
> [  361.817800] ata1.15: hard resetting link
> [  366.905308] ata1.15: SATA link down (SStatus 1 SControl 10)
> [  367.160893] ata1.15: failed to read PMP GSCR[0] (errno=-5)
> [  367.160900] ata1.15: PMP revalidation failed (errno=-5)
> [  367.160906] ata1.15: retrying hardreset in 5 secs
> .. and continues to retry

The retry limit is 5 times.  Because losing PMP makes all downstream
devices detached, I thought it's worth to try hard.  If you put another
device including another PMP there, libata will give up the current one
quickly (after only two tries).

> =============================
> Array turned on again:
> =============================
> (continued from above)
> [  372.156532] ata1.15: hard resetting link
> [  377.244059] ata1.15: SATA link down (SStatus 1 SControl 10)
> [  377.499621] ata1.15: failed to read PMP GSCR[0] (errno=-5)
> [  377.499628] ata1.15: PMP revalidation failed (errno=-5)
> [  377.499635] ata1.15: retrying hardreset in 5 secs
> [  382.495257] ata1.15: hard resetting link
> [  387.582767] ata1.15: SATA link down (SStatus 1 SControl 10)
> [  387.838349] ata1.15: failed to read PMP GSCR[0] (errno=-5)
> [  387.838356] ata1.15: PMP revalidation failed (errno=-5)

Ah... This is unfortunate.  Even though the array was turned back on, it
failed to respond to the last two tries resulting in detachment.  I
wonder why it failed to respond to two tries.  Is this behavior
reproducible?  If so, does updating firmware of PMP help?

> [  387.838360] ata1.15: failed to recover PMP after 3 tries, giving up

Ummm.... This should have been five.

> [  387.838365] ata1.15: Port Multiplier detaching
> [  387.838391] ata1.00: disabled
> [  387.838398] ata1.04: disabled
> [  387.838403] ata1.00: disabled

The rest looks fine.

> ==============================
> Disk in bay 2 reinserted:
> ==============================
> [  600.263465] ata1.00: exception Emask 0x10 SAct 0x0 SErr 0x4050000
> action 0xb
> [  600.295411] ata1.00: hard resetting link
> [  601.193925] ata1.00: softreset failed (SRST command error)
> [  601.193933] ata1.00: reset failed (errno=-5), retrying in 10 secs
> [  610.278721] ata1.00: hard resetting link
> [  611.305018] ata1.00: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
> [  611.350966] ata1.00: ATA-7: ST3750640AS, 3.AAE, max UDMA/133
> [  611.350974] ata1.00: 1465149168 sectors, multi 0: LBA48 NCQ (depth 31/32)
> [  611.409167] ata1.00: configured for UDMA/100
> [  611.424823] ata1: EH complete

Pretty, isn't it?  :-)

Thanks.

-- 
tejun

  reply	other threads:[~2007-07-02 15:07 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-06-29  9:47 State of Port Multiplier Support in libata? Stefan Skotte
2007-07-02  7:20 ` Tejun Heo
2007-07-02  7:37   ` Stefan Skotte
2007-07-02  7:51     ` Tejun Heo
2007-07-02  9:21       ` Stefan Skotte
2007-07-02  9:36         ` Tejun Heo
2007-07-02 13:24           ` Stefan Skotte
2007-07-02 15:07             ` Tejun Heo [this message]
2007-07-02 21:03               ` Stefan Skotte
2007-07-03  3:06                 ` Tejun Heo
2007-07-08 18:57                   ` Stefan Skotte
2007-07-09  1:42                     ` Tejun Heo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4689149E.5030704@gmail.com \
    --to=htejun@gmail.com \
    --cc=linux-ide@vger.kernel.org \
    --cc=sfs@enhance-it.dk \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).