From: Mike Anderson <andmike@linux.vnet.ibm.com>
To: Jens Axboe <jens.axboe@oracle.com>
Cc: "Alan D. Brunelle" <Alan.Brunelle@hp.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
LKML-scsi <linux-scsi@vger.kernel.org>,
James.Bottomley@HansenPartnership.com
Subject: Re: [PATCH] Correctly release and allocate a new request on TUR retries
Date: Fri, 5 Dec 2008 10:08:51 -0800 [thread overview]
Message-ID: <20081205180851.GA9671@linux.vnet.ibm.com> (raw)
In-Reply-To: <20081205144954.GO18255@kernel.dk>
Jens Axboe <jens.axboe@oracle.com> wrote:
> On Fri, Dec 05 2008, Alan D. Brunelle wrote:
> >
>
> >
> > Commands needing to be retried (TUR in this case) would result in a block
> > I/O request being re-used, without being re-initialized properly. This
> > patch ensures that the requests are correctly re-initialized via
> > standard allocation means.
> >
> > Prior to this patch, boots were failing consistently as in:
> > http://lkml.org/lkml/2008/12/5/161
> >
> > With this patch in place, the system is booting reliably.
> >
> > Signed-off-by: Alan D. Brunelle <alan.brunelle@hp.com>
> > Cc: Jens Axboe <jens.axboe@oracle.com>
>
> Looks good.
>
> Acked-by: Jens Axboe <jens.axboe@oracle.com>
>
> Perhaps James can push it in, I'm about to shutdown for the day...
>
I know a failure was not detected in the hp_sw_start_stop function, but it
uses the same retry method as hp_sw_tur we should update this function
also.
I made a quick scope of callers of blk_get_request and I did not see a
repeated of this retry usage model. I will make another pass to see if I
missed something.
>
> > ---
> > drivers/scsi/device_handler/scsi_dh_hp_sw.c | 6 ++++--
> > 1 files changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/scsi/device_handler/scsi_dh_hp_sw.c b/drivers/scsi/device_handler/scsi_dh_hp_sw.c
> > index 9aec4ca..1f6b6a8 100644
> > --- a/drivers/scsi/device_handler/scsi_dh_hp_sw.c
> > +++ b/drivers/scsi/device_handler/scsi_dh_hp_sw.c
> > @@ -107,6 +107,7 @@ static int hp_sw_tur(struct scsi_device *sdev, struct hp_sw_dh_data *h)
> > struct request *req;
> > int ret;
> >
> > +retry:
> > req = blk_get_request(sdev->request_queue, WRITE, GFP_NOIO);
> > if (!req)
> > return SCSI_DH_RES_TEMP_UNAVAIL;
> > @@ -121,7 +122,6 @@ static int hp_sw_tur(struct scsi_device *sdev, struct hp_sw_dh_data *h)
> > memset(req->sense, 0, SCSI_SENSE_BUFFERSIZE);
> > req->sense_len = 0;
> >
> > -retry:
> > ret = blk_execute_rq(req->q, NULL, req, 1);
> > if (ret == -EIO) {
> > if (req->sense_len > 0) {
> > @@ -136,8 +136,10 @@ retry:
> > h->path_state = HP_SW_PATH_ACTIVE;
> > ret = SCSI_DH_OK;
> > }
> > - if (ret == SCSI_DH_IMM_RETRY)
> > + if (ret == SCSI_DH_IMM_RETRY) {
> > + blk_put_request(req);
> > goto retry;
> > + }
> > if (ret == SCSI_DH_DEV_OFFLINED) {
> > h->path_state = HP_SW_PATH_PASSIVE;
> > ret = SCSI_DH_OK;
> > --
> > 1.5.6.3
> >
>
>
> --
> Jens Axboe
>
> --
> 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
-andmike
--
Michael Anderson
andmike@linux.vnet.ibm.com
next prev parent reply other threads:[~2008-12-05 18:08 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-05 14:36 [PATCH] Correctly release and allocate a new request on TUR retries Alan D. Brunelle
2008-12-05 14:49 ` Jens Axboe
2008-12-05 18:08 ` Mike Anderson [this message]
2008-12-08 13:15 ` Alan D. Brunelle
2008-12-08 13:20 ` Jens Axboe
2008-12-08 13:25 ` Alan D. Brunelle
2008-12-08 13:29 ` Jens Axboe
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=20081205180851.GA9671@linux.vnet.ibm.com \
--to=andmike@linux.vnet.ibm.com \
--cc=Alan.Brunelle@hp.com \
--cc=James.Bottomley@HansenPartnership.com \
--cc=jens.axboe@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
/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.