Message ID | 20250227233110.36596-1-romank@linux.microsoft.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | [hyperv-next] scsi: storvsc: Don't call the packet status the hypercall status | expand |
On 2/27/2025 3:31 PM, Roman Kisel wrote: > The log statement reports the packet status code as the hypercall > status code which causes confusion when debugging. > > Fix the name of the datum being logged. > > Signed-off-by: Roman Kisel <romank@linux.microsoft.com> > --- > drivers/scsi/storvsc_drv.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c > index a8614e54544e..d7ec79536d9a 100644 > --- a/drivers/scsi/storvsc_drv.c > +++ b/drivers/scsi/storvsc_drv.c > @@ -1183,7 +1183,7 @@ static void storvsc_on_io_completion(struct storvsc_device *stor_device, > STORVSC_LOGGING_WARN : STORVSC_LOGGING_ERROR; > > storvsc_log_ratelimited(device, loglevel, > - "tag#%d cmd 0x%x status: scsi 0x%x srb 0x%x hv 0x%x\n", > + "tag#%d cmd 0x%x status: scsi 0x%x srb 0x%x sts 0x%x\n", I'd suggest using "host" than the opaque "sts", since this is already part of the different levels of status (scsi, srb...) being printed out. With "host", for e.g. the print would be seen as the following and clearly point out the offending part of the stack. hv_storvsc fd1d2cbd-ce7c-535c-966b-eb5f811c95f0: tag#599 cmd 0x28 status: scsi 0x2 srb 0x4 host 0xc0000001 Thanks, Easwar (he/him)
From: Roman Kisel <romank@linux.microsoft.com> Sent: Thursday, February 27, 2025 3:31 PM > > The log statement reports the packet status code as the hypercall > status code which causes confusion when debugging. > > Fix the name of the datum being logged. > > Signed-off-by: Roman Kisel <romank@linux.microsoft.com> > --- > drivers/scsi/storvsc_drv.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c > index a8614e54544e..d7ec79536d9a 100644 > --- a/drivers/scsi/storvsc_drv.c > +++ b/drivers/scsi/storvsc_drv.c > @@ -1183,7 +1183,7 @@ static void storvsc_on_io_completion(struct storvsc_device *stor_device, > STORVSC_LOGGING_WARN : STORVSC_LOGGING_ERROR; > > storvsc_log_ratelimited(device, loglevel, > - "tag#%d cmd 0x%x status: scsi 0x%x srb 0x%x hv 0x%x\n", > + "tag#%d cmd 0x%x status: scsi 0x%x srb 0x%x sts 0x%x\n", > scsi_cmd_to_rq(request->cmd)->tag, > stor_pkt->vm_srb.cdb[0], > vstor_packet->vm_srb.scsi_status, FWIW, I added that last status value labelled "hv" in commit 08f76547f08d. And to confirm the discussion on the other thread, it's not a hypercall status -- it's a standard Windows NT status returned by the host-side VMBus or storvsp code. The "hv" is shorthand for Hyper-V, not hypercall. Perhaps that status is interpretable in a Windows guest, but it's not really interpretable in a Linux guest. The hex value would be useful only in the context of a support case where someone on the host side could be engaged to help with the interpretation. I have no strong opinions on the label. Changing it from "hv" to "sts" or to "host" works for me. Reviewed-by: Michael Kelley <mhklinux@outlook.com>
On 2/28/2025 12:21 PM, Easwar Hariharan wrote: > On 2/27/2025 3:31 PM, Roman Kisel wrote: >> The log statement reports the packet status code as the hypercall >> status code which causes confusion when debugging. >> >> Fix the name of the datum being logged. >> >> Signed-off-by: Roman Kisel <romank@linux.microsoft.com> >> --- >> drivers/scsi/storvsc_drv.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c >> index a8614e54544e..d7ec79536d9a 100644 >> --- a/drivers/scsi/storvsc_drv.c >> +++ b/drivers/scsi/storvsc_drv.c >> @@ -1183,7 +1183,7 @@ static void storvsc_on_io_completion(struct storvsc_device *stor_device, >> STORVSC_LOGGING_WARN : STORVSC_LOGGING_ERROR; >> >> storvsc_log_ratelimited(device, loglevel, >> - "tag#%d cmd 0x%x status: scsi 0x%x srb 0x%x hv 0x%x\n", >> + "tag#%d cmd 0x%x status: scsi 0x%x srb 0x%x sts 0x%x\n", > > I'd suggest using "host" than the opaque "sts", since this is already part of the different > levels of status (scsi, srb...) being printed out. With "host", for e.g. the print would be seen > as the following and clearly point out the offending part of the stack. > > hv_storvsc fd1d2cbd-ce7c-535c-966b-eb5f811c95f0: tag#599 cmd 0x28 status: scsi 0x2 srb 0x4 host 0xc0000001 I went with the flow calling this "sts": the rest of the file does that. Your suggestion is better than that, will implement in the next version. Appreciate your help very much! > > Thanks, > Easwar (he/him)
On 2/28/2025 12:55 PM, Michael Kelley wrote: > From: Roman Kisel <romank@linux.microsoft.com> Sent: Thursday, February 27, 2025 3:31 PM >> >> The log statement reports the packet status code as the hypercall >> status code which causes confusion when debugging. >> >> Fix the name of the datum being logged. >> >> Signed-off-by: Roman Kisel <romank@linux.microsoft.com> >> --- >> drivers/scsi/storvsc_drv.c | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) >> >> diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c >> index a8614e54544e..d7ec79536d9a 100644 >> --- a/drivers/scsi/storvsc_drv.c >> +++ b/drivers/scsi/storvsc_drv.c >> @@ -1183,7 +1183,7 @@ static void storvsc_on_io_completion(struct storvsc_device *stor_device, >> STORVSC_LOGGING_WARN : STORVSC_LOGGING_ERROR; >> >> storvsc_log_ratelimited(device, loglevel, >> - "tag#%d cmd 0x%x status: scsi 0x%x srb 0x%x hv 0x%x\n", >> + "tag#%d cmd 0x%x status: scsi 0x%x srb 0x%x sts 0x%x\n", >> scsi_cmd_to_rq(request->cmd)->tag, >> stor_pkt->vm_srb.cdb[0], >> vstor_packet->vm_srb.scsi_status, > > FWIW, I added that last status value labelled "hv" in commit 08f76547f08d. And > to confirm the discussion on the other thread, it's not a hypercall status -- it's a > standard Windows NT status returned by the host-side VMBus or storvsp code. > The "hv" is shorthand for Hyper-V, not hypercall. Perhaps that status is > interpretable in a Windows guest, but it's not really interpretable in a Linux > guest. The hex value would be useful only in the context of a support case > where someone on the host side could be engaged to help with the > interpretation. > > I have no strong opinions on the label. Changing it from "hv" to "sts" or > to "host" works for me. Thank you, Michael, for helping us out with that! I'm leaning towards "host" after Easwar's suggestion. As I understand from your reply, it's fair to keep the tag as you're fine with the "host" option. > > Reviewed-by: Michael Kelley <mhklinux@outlook.com>
From: Roman Kisel <romank@linux.microsoft.com> Sent: Friday, February 28, 2025 2:55 PM > > On 2/28/2025 12:55 PM, Michael Kelley wrote: > > From: Roman Kisel <romank@linux.microsoft.com> Sent: Thursday, February 27, 2025 > 3:31 PM > >> > >> The log statement reports the packet status code as the hypercall > >> status code which causes confusion when debugging. > >> > >> Fix the name of the datum being logged. > >> > >> Signed-off-by: Roman Kisel <romank@linux.microsoft.com> > >> --- > >> drivers/scsi/storvsc_drv.c | 2 +- > >> 1 file changed, 1 insertion(+), 1 deletion(-) > >> > >> diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c > >> index a8614e54544e..d7ec79536d9a 100644 > >> --- a/drivers/scsi/storvsc_drv.c > >> +++ b/drivers/scsi/storvsc_drv.c > >> @@ -1183,7 +1183,7 @@ static void storvsc_on_io_completion(struct storvsc_device *stor_device, > >> STORVSC_LOGGING_WARN : STORVSC_LOGGING_ERROR; > >> > >> storvsc_log_ratelimited(device, loglevel, > >> - "tag#%d cmd 0x%x status: scsi 0x%x srb 0x%x hv 0x%x\n", > >> + "tag#%d cmd 0x%x status: scsi 0x%x srb 0x%x sts 0x%x\n", > >> scsi_cmd_to_rq(request->cmd)->tag, > >> stor_pkt->vm_srb.cdb[0], > >> vstor_packet->vm_srb.scsi_status, > > > > FWIW, I added that last status value labelled "hv" in commit 08f76547f08d. And > > to confirm the discussion on the other thread, it's not a hypercall status -- it's a > > standard Windows NT status returned by the host-side VMBus or storvsp code. > > The "hv" is shorthand for Hyper-V, not hypercall. Perhaps that status is > > interpretable in a Windows guest, but it's not really interpretable in a Linux > > guest. The hex value would be useful only in the context of a support case > > where someone on the host side could be engaged to help with the > > interpretation. > > > > I have no strong opinions on the label. Changing it from "hv" to "sts" or > > to "host" works for me. > > Thank you, Michael, for helping us out with that! I'm leaning towards > "host" after Easwar's suggestion. As I understand from your reply, > it's fair to keep the tag as you're fine with the "host" option. Yes, my Reviewed-by: is good using "host". Also remember to fix the commit message to not call it a "hypercall status code" since it isn't from a hypercall. Michael > > > > > Reviewed-by: Michael Kelley <mhklinux@outlook.com> > > -- > Thank you, > Roman
diff --git a/drivers/scsi/storvsc_drv.c b/drivers/scsi/storvsc_drv.c index a8614e54544e..d7ec79536d9a 100644 --- a/drivers/scsi/storvsc_drv.c +++ b/drivers/scsi/storvsc_drv.c @@ -1183,7 +1183,7 @@ static void storvsc_on_io_completion(struct storvsc_device *stor_device, STORVSC_LOGGING_WARN : STORVSC_LOGGING_ERROR; storvsc_log_ratelimited(device, loglevel, - "tag#%d cmd 0x%x status: scsi 0x%x srb 0x%x hv 0x%x\n", + "tag#%d cmd 0x%x status: scsi 0x%x srb 0x%x sts 0x%x\n", scsi_cmd_to_rq(request->cmd)->tag, stor_pkt->vm_srb.cdb[0], vstor_packet->vm_srb.scsi_status,
The log statement reports the packet status code as the hypercall status code which causes confusion when debugging. Fix the name of the datum being logged. Signed-off-by: Roman Kisel <romank@linux.microsoft.com> --- drivers/scsi/storvsc_drv.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)