From: James Bottomley <James.Bottomley@HansenPartnership.com>
To: KY Srinivasan <kys@microsoft.com>
Cc: "gregkh@linuxfoundation.org" <gregkh@linuxfoundation.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"devel@linuxdriverproject.org" <devel@linuxdriverproject.org>,
"ohering@suse.com" <ohering@suse.com>,
"hch@infradead.org" <hch@infradead.org>,
"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>
Subject: RE: [PATCH RESEND 1/2] Drivers: scsi: storvsc: Set the scsi result correctly when SRB status is INVALID
Date: Mon, 19 Mar 2012 22:41:58 +0000 [thread overview]
Message-ID: <1332196918.3152.78.camel@dabdike> (raw)
In-Reply-To: <6E21E5352C11B742B20C142EB499E0481B769E88@TK5EX14MBXC126.redmond.corp.microsoft.com>
On Mon, 2012-03-19 at 16:50 +0000, KY Srinivasan wrote:
>
> > -----Original Message-----
> > From: James Bottomley [mailto:James.Bottomley@HansenPartnership.com]
> > Sent: Monday, March 19, 2012 12:13 PM
> > To: KY Srinivasan
> > Cc: gregkh@linuxfoundation.org; linux-kernel@vger.kernel.org;
> > devel@linuxdriverproject.org; ohering@suse.com; hch@infradead.org; linux-
> > scsi@vger.kernel.org
> > Subject: Re: [PATCH RESEND 1/2] Drivers: scsi: storvsc: Set the scsi result correctly
> > when SRB status is INVALID
> >
> > On Sun, 2012-03-18 at 17:12 -0700, K. Y. Srinivasan wrote:
> > > Currently Windows hosts only support a subset of scsi commands and for
> > commands
> > > that are not supported, the host returns a generic SRB failure status.
> > > However, they have agreed to change the return value to indicate that
> > > the command is not supported. In preparation for that, handle the
> > > SRB_STATUS_INVALID_REQUEST return value correctly.
> > >
> > > I would like to thank Jeff Garzik <jgpobox@gmail.com> and
> > > Douglas Gilbert <dgilbert@interlog.com> for suggesting the correct approach
> > > here.
> > >
> > > Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
> > > Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
> > > ---
> > > drivers/scsi/storvsc_drv.c | 12 ++++++++++++
> > > 1 files changed, 12 insertions(+), 0 deletions(-)
> > >
> > > diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c
> > > index 44c7a48..018c363 100644
> > > --- a/drivers/scsi/storvsc_drv.c
> > > +++ b/drivers/scsi/storvsc_drv.c
> > > @@ -202,6 +202,7 @@ enum storvsc_request_type {
> > > #define SRB_STATUS_INVALID_LUN 0x20
> > > #define SRB_STATUS_SUCCESS 0x01
> > > #define SRB_STATUS_ERROR 0x04
> > > +#define SRB_STATUS_INVALID_REQUEST 0x06
> >
> > I don't really think this is the correct approach. We already have a
> > SCSI error return for this, which you're now translating in the driver
> > and hypervisor. Rather than have a special byte return of
> > SRB_STATUS_INVALID_REQUEST, why not have the hypervisor do the right
> > thing and fill in the ILLEGAL_REQUEST sense return. That way you don't
> > need a special error code and you don't need to construct the sense
> > buffer in the driver. Now HyperV will be correctly set up for both pass
> > through and emulated responses. It's surely not much work and you
> > already process sense data correctly in storvsc_command_completion(), so
> > you wouldn't need any patches to the driver for this approach.
>
> James, the issue here is that currently shipping Windows hosts don't even do
> what I am handling here.
Right, I understand that.
> Based on the input I got from you and Christoph,
> I convinced the windows team to at least return the SRB status that indicates
> an illegal request. I will suggest to them that perhaps they should also set the
> correct sense code and so I would not need this patch.
Not also; instead of. There's no need for an extra SRB status. Just
return the standard check condition sense data.
> However, keep in mind
> that there is no current ETA on when Windows will ship with these changes - Windows 8
> may ship with code where they would return an invalid SRB status, but they are not
> setting the sense code, hence this patch. When the Window host does the "right thing"
> I will clean this up, but I don't know when that will be.
I thought you just said you'd only just asked them if they could
implemented it, in which case no version of windows currently ships with
this, correct?
> More importantly, the second patch in this series where I filter out
> the ATA_16 command
> on the guest is really important for us. Without that patch on a range
> on windows hosts
> including the current beta version of windows8 where the host is
> returning a generic
> error in response to ATA_16 command, we cannot boot many Linux
> distros. If you
> prefer, I can drop the first patch and re-submit the second patch for
> consideration now.
I'm not sure about that either. You presumably translate
SRB_STATUS_ERROR into DID_TARGET_FAILURE. That should cause the
termination of the command with prejudice in exactly the same way as an
ILLEGAL_REQUEST sense code would (minus the useful error information),
so what's causing the boot failure?
James
next prev parent reply other threads:[~2012-03-19 22:42 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-19 0:11 [PATCH RESEND 0000/0002] drivers: scsi: storvsc K. Y. Srinivasan
2012-03-19 0:12 ` [PATCH RESEND 1/2] Drivers: scsi: storvsc: Set the scsi result correctly when SRB status is INVALID K. Y. Srinivasan
2012-03-19 0:12 ` [PATCH RESEND 2/2] Drivers: scsi: storvsc: Don't pass ATA_16 command to the host K. Y. Srinivasan
2012-03-19 16:12 ` [PATCH RESEND 1/2] Drivers: scsi: storvsc: Set the scsi result correctly when SRB status is INVALID James Bottomley
2012-03-19 16:50 ` KY Srinivasan
2012-03-19 16:50 ` KY Srinivasan
2012-03-19 22:40 ` James Bottomley
2012-03-19 22:52 ` KY Srinivasan
2012-03-19 22:52 ` KY Srinivasan
2012-03-20 8:51 ` James Bottomley
2012-03-20 14:42 ` KY Srinivasan
2012-03-20 14:42 ` KY Srinivasan
2012-03-23 15:50 ` KY Srinivasan
2012-03-23 15:50 ` KY Srinivasan
2012-03-26 8:16 ` James Bottomley
2012-03-27 15:32 ` KY Srinivasan
2012-03-27 15:32 ` KY Srinivasan
2012-03-29 8:02 ` James Bottomley
2012-03-29 14:50 ` KY Srinivasan
2012-03-29 14:50 ` KY Srinivasan
2012-03-19 22:41 ` James Bottomley [this message]
-- strict thread matches above, loose matches on Subject: below --
2012-03-18 19:59 [PATCH RESEND 0000/0002] drivers: scsi: storvsc K. Y. Srinivasan
2012-03-18 20:00 ` [PATCH RESEND 1/2] Drivers: scsi: storvsc: Set the scsi result correctly when SRB status is INVALID K. Y. Srinivasan
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=1332196918.3152.78.camel@dabdike \
--to=james.bottomley@hansenpartnership.com \
--cc=devel@linuxdriverproject.org \
--cc=gregkh@linuxfoundation.org \
--cc=hch@infradead.org \
--cc=kys@microsoft.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-scsi@vger.kernel.org \
--cc=ohering@suse.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.