diff mbox series

[hyperv-next] scsi: storvsc: Don't call the packet status the hypercall status

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

Commit Message

Roman Kisel Feb. 27, 2025, 11:31 p.m. UTC
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(-)

Comments

Easwar Hariharan Feb. 28, 2025, 8:21 p.m. UTC | #1
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)
Michael Kelley Feb. 28, 2025, 8:55 p.m. UTC | #2
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>
Roman Kisel Feb. 28, 2025, 10:02 p.m. UTC | #3
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)
Roman Kisel Feb. 28, 2025, 10:54 p.m. UTC | #4
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>
Michael Kelley Feb. 28, 2025, 11:53 p.m. UTC | #5
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 mbox series

Patch

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,