From: David Milburn <dmilburn@redhat.com>
To: Audio Haven <audiohaven@gmail.com>
Cc: linux-scsi@vger.kernel.org, James.Bottomley@suse.de,
sgruszka@redhat.com, satyasrinivasp@hcl.in, jeff@garzik.org
Subject: Re: [PATCH] mvsas: mvs_lu_reset iterates phy num times when releasing task
Date: Tue, 10 Aug 2010 16:22:31 -0500 [thread overview]
Message-ID: <4C61C317.8010609@redhat.com> (raw)
In-Reply-To: <AANLkTink9DyvHmgRDDe8WqwTJhAVX=DFQ8_b-U6Fy+Fi@mail.gmail.com>
Audio Haven wrote:
> Hello David,
Hello Frederic,
>
> Does this patch solve the Unplug Notice issues ?
No, it is not directly related to the problem you are seeing.
>
> When copying lots of large video files in sequence to a 6 TB XFS
> filesystem on top of a 8 TB software raid6 set, I frequently see my
> copy (over samba) being stalled for a while, then the following is
> reported:
>
> drivers/scsi/mvsas/mv_sas.c 1701:<7>mv_abort_task()
> mvi=ffff88003d1c0000 task=ffff880004285080 slot=ffff88003d1de478
> slot_idx=x1
The abort task is initiated from the error handler.
> drivers/scsi/mvsas/mv_sas.c 1632:mvs_query_task:rc= 5
> drivers/scsi/mvsas/mv_sas.c 2081:port 4 ctrl sts=0x89800.
> drivers/scsi/mvsas/mv_sas.c 2083:Port 4 irq sts = 0x1001
> drivers/scsi/mvsas/mv_sas.c 2109:phy4 Unplug Notice
Here the driver read interrupt status which showed
PHYEV_POOF (phy ready from 1 -> 0) | PHYEV_RDY_CH (phy ready
changed state)
Then mvs_is_phy_ready reports phy is not ready resulting
in the "Unplug Notice".
David
> drivers/scsi/mvsas/mv_sas.c 2081:port 4 ctrl sts=0x199800.
> drivers/scsi/mvsas/mv_sas.c 2083:Port 4 irq sts = 0x1081
> drivers/scsi/mvsas/mv_sas.c 2081:port 4 ctrl sts=0x199800.
> drivers/scsi/mvsas/mv_sas.c 2083:Port 4 irq sts = 0x10000
> drivers/scsi/mvsas/mv_sas.c 2136:notify plug in on phy[4]
> drivers/scsi/mvsas/mv_sas.c 1224:port 4 attach dev info is 4
> drivers/scsi/mvsas/mv_sas.c 1226:port 4 attach sas addr is 4
> drivers/scsi/mvsas/mv_sas.c 378:phy 4 byte dmaded.
> drivers/scsi/mvsas/mv_sas.c 1586:mvs_I_T_nexus_reset for device[4]:rc= 0
> ata13: translated ATA stat/err 0x01/04 to SCSI SK/ASC/ASCQ 0xb/00/00
> ata13: status=0x01 { Error }
> ata13: error=0x04 { DriveStatusError }
>
> I'm using the SuperMicro AOC-SASLP-MV8 to control 8 1TB disks, which
> are never physically unplugged. Used kernel is 2.6.35.
> Raid never breaks so no data loss occurs, but the samba copy
> frequently breaks when the above error occurs, so copying always needs
> a double check, which is quite annoying.
>
> Best regards,
>
> Frederic Vanden Poel
>
>
> On Fri, Aug 6, 2010 at 6:16 PM, David Milburn <dmilburn@redhat.com> wrote:
>> mvs_lu_reset should not call mvs_release_task phy number of times,
>> each phy is handled in mvs_release_task.
>>
>> Signed-off-by: David Milburn <dmilburn@redhat.com>
>> Cc: Stanislaw Gruszka <sgruszka@redhat.com>
>> Cc: Srinivas <satyasrinivasp@hcl.in>
>> Cc: Andy Yan <ayan@marvell.com>
>> ---
>> drivers/scsi/mvsas/mv_sas.c | 6 ++----
>> 1 files changed, 2 insertions(+), 4 deletions(-)
>>
>> diff --git a/drivers/scsi/mvsas/mv_sas.c b/drivers/scsi/mvsas/mv_sas.c
>> index adedaa9..013ab8d 100644
>> --- a/drivers/scsi/mvsas/mv_sas.c
>> +++ b/drivers/scsi/mvsas/mv_sas.c
>> @@ -1551,7 +1551,7 @@ static int mvs_debug_I_T_nexus_reset(struct domain_device *dev)
>> int mvs_lu_reset(struct domain_device *dev, u8 *lun)
>> {
>> unsigned long flags;
>> - int i, phyno[WIDE_PORT_MAX_PHY], num , rc = TMF_RESP_FUNC_FAILED;
>> + int rc = TMF_RESP_FUNC_FAILED;
>> struct mvs_tmf_task tmf_task;
>> struct mvs_device * mvi_dev = dev->lldd_dev;
>> struct mvs_info *mvi = mvi_dev->mvi_info;
>> @@ -1560,10 +1560,8 @@ int mvs_lu_reset(struct domain_device *dev, u8 *lun)
>> mvi_dev->dev_status = MVS_DEV_EH;
>> rc = mvs_debug_issue_ssp_tmf(dev, lun, &tmf_task);
>> if (rc == TMF_RESP_FUNC_COMPLETE) {
>> - num = mvs_find_dev_phyno(dev, phyno);
>> spin_lock_irqsave(&mvi->lock, flags);
>> - for (i = 0; i < num; i++)
>> - mvs_release_task(mvi, dev);
>> + mvs_release_task(mvi, dev);
>> spin_unlock_irqrestore(&mvi->lock, flags);
>> }
>> /* If failed, fall-through I_T_Nexus reset */
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at http://vger.kernel.org/majordomo-info.html
>>
prev parent reply other threads:[~2010-08-10 21:22 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-06 16:16 [PATCH] mvsas: mvs_lu_reset iterates phy num times when releasing task David Milburn
2010-08-06 17:21 ` Konstantinos Skarlatos
2010-08-06 19:01 ` David Milburn
2010-08-09 8:17 ` Konstantinos Skarlatos
2010-09-03 22:13 ` David Milburn
2010-09-04 19:04 ` Konstantinos Skarlatos
2010-09-08 10:53 ` Konstantinos Skarlatos
2010-09-09 10:49 ` Konstantinos Skarlatos
2010-09-09 14:13 ` David Milburn
2010-09-11 15:57 ` Konstantinos Skarlatos
2010-09-15 13:49 ` David Milburn
2010-09-20 21:38 ` Konstantinos Skarlatos
2010-09-11 15:05 ` Konstantinos Skarlatos
2010-08-07 8:26 ` Jeff Garzik
2010-08-10 19:10 ` Audio Haven
2010-08-10 21:22 ` David Milburn [this message]
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=4C61C317.8010609@redhat.com \
--to=dmilburn@redhat.com \
--cc=James.Bottomley@suse.de \
--cc=audiohaven@gmail.com \
--cc=jeff@garzik.org \
--cc=linux-scsi@vger.kernel.org \
--cc=satyasrinivasp@hcl.in \
--cc=sgruszka@redhat.com \
/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 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.