Tejun Heo wrote:
> Igor Durdanovic wrote:
>> Tejun Heo writes:
>>>> Can you try to update the firmware as explained in the SIMG support page
>>>> and see whether that fixes the problem?
>> I am actually trying to put all the sw on the array, will try to
>> update firmware later.
>>
>> Have some weird problems .. the whole thing just froze, sigh.
>> Also, why can't I enable write-caching on each drive behind PM?
>
> You should be. What do you mean by not being able to enable write-caching?
>
>>> Hmmm... Before doing that, do your drives spin up one-by-one as the
>>> above probing progresses?
>> Yes, the probing starts with the bottom drive and progresses to the
>> top. But it seems for each drive it resets (from the bottom) all
>> already probed drives.
>
> SRST failure puts the host port into non-responding state and the driver
> resets the host port which in turn resets the PMP, so libata tries to
> reinitialize everything. Can you post boot log with printk timestamp
> (CONFIG_PRINTK_TIME) turned on?
>
Also, does the attached patch change the behavior?
--
tejun
---
drivers/ata/libata-eh.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Index: work/drivers/ata/libata-eh.c
===================================================================
--- work.orig/drivers/ata/libata-eh.c
+++ work/drivers/ata/libata-eh.c
@@ -2180,7 +2180,8 @@ int ata_eh_reset(struct ata_link *link,
"(errno=%d), retrying in %u secs\n",
rc, (jiffies_to_msecs(delta) + 999) / 1000);
- schedule_timeout_uninterruptible(delta);
+ while (delta)
+ delta = schedule_timeout_uninterruptible(delta);
}
if (rc == -EPIPE ||