All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2] include/public: add command result definitions to vscsiif.h
@ 2022-03-23  8:58 Juergen Gross
  2022-03-23 11:10 ` Luca Fancellu
  2022-04-19  8:34 ` Juergen Gross
  0 siblings, 2 replies; 7+ messages in thread
From: Juergen Gross @ 2022-03-23  8:58 UTC (permalink / raw)
  To: xen-devel; +Cc: Juergen Gross

The result field of struct vscsiif_response is lacking a detailed
definition. Today the Linux kernel internal scsi definitions are being
used, which is not a sane interface for a PV device driver.

Add macros to change that by using today's values in the XEN namespace.

Signed-off-by: Juergen Gross <jgross@suse.com>
---
V2:
- put macro parameters in parentheses (Jan Beulich)
- correct XEN_VSCSIIF_RSLT_HOST() (Jan Beulich)
- more verbose result defines (Jan Beulich)
- add reset result defines (Jan Beulich)
---
 xen/include/public/io/vscsiif.h | 51 +++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/xen/include/public/io/vscsiif.h b/xen/include/public/io/vscsiif.h
index c9ceb1884d..8553b17cc6 100644
--- a/xen/include/public/io/vscsiif.h
+++ b/xen/include/public/io/vscsiif.h
@@ -315,6 +315,57 @@ struct vscsiif_response {
 };
 typedef struct vscsiif_response vscsiif_response_t;
 
+/* SCSI I/O status from vscsiif_response->rslt */
+#define XEN_VSCSIIF_RSLT_STATUS(x)  ((x) & 0x00ff)
+
+/* Host I/O status from vscsiif_response->rslt */
+#define XEN_VSCSIIF_RSLT_HOST(x)    (((x) & 0x00ff0000) >> 16)
+#define XEN_VSCSIIF_RSLT_HOST_OK                   0
+/* Couldn't connect before timeout */
+#define XEN_VSCSIIF_RSLT_HOST_NO_CONNECT           1
+/* Bus busy through timeout */
+#define XEN_VSCSIIF_RSLT_HOST_BUS_BUSY             2
+/* Timed out for other reason */
+#define XEN_VSCSIIF_RSLT_HOST_TIME_OUT             3
+/* Bad target */
+#define XEN_VSCSIIF_RSLT_HOST_BAD_TARGET           4
+/* Abort for some other reason */
+#define XEN_VSCSIIF_RSLT_HOST_ABORT                5
+/* Parity error */
+#define XEN_VSCSIIF_RSLT_HOST_PARITY               6
+/* Internal error */
+#define XEN_VSCSIIF_RSLT_HOST_ERROR                7
+/* Reset by somebody */
+#define XEN_VSCSIIF_RSLT_HOST_RESET                8
+/* Unexpected interrupt */
+#define XEN_VSCSIIF_RSLT_HOST_BAD_INTR             9
+/* Force command past mid-layer */
+#define XEN_VSCSIIF_RSLT_HOST_PASSTHROUGH         10
+/* Retry requested */
+#define XEN_VSCSIIF_RSLT_HOST_SOFT_ERROR          11
+/* Hidden retry requested */
+#define XEN_VSCSIIF_RSLT_HOST_IMM_RETRY           12
+/* Requeue command requested */
+#define XEN_VSCSIIF_RSLT_HOST_REQUEUE             13
+/* Transport error disrupted I/O */
+#define XEN_VSCSIIF_RSLT_HOST_TRANSPORT_DISRUPTED 14
+/* Transport class fastfailed */
+#define XEN_VSCSIIF_RSLT_HOST_TRANSPORT_FAILFAST  15
+/* Permanent target failure */
+#define XEN_VSCSIIF_RSLT_HOST_TARGET_FAILURE      16
+/* Permanent nexus failure on path */
+#define XEN_VSCSIIF_RSLT_HOST_NEXUS_FAILURE       17
+/* Space allocation on device failed */
+#define XEN_VSCSIIF_RSLT_HOST_ALLOC_FAILURE       18
+/* Medium error */
+#define XEN_VSCSIIF_RSLT_HOST_MEDIUM_ERROR        19
+/* Transport marginal errors */
+#define XEN_VSCSIIF_RSLT_HOST_TRANSPORT_MARGINAL  20
+
+/* Result values of reset operations */
+#define XEN_VSCSIIF_RSLT_RESET_SUCCESS  0x2002
+#define XEN_VSCSIIF_RSLT_RESET_FAILED   0x2003
+
 DEFINE_RING_TYPES(vscsiif, struct vscsiif_request, struct vscsiif_response);
 
 
-- 
2.34.1



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] include/public: add command result definitions to vscsiif.h
  2022-03-23  8:58 [PATCH v2] include/public: add command result definitions to vscsiif.h Juergen Gross
@ 2022-03-23 11:10 ` Luca Fancellu
  2022-03-23 11:22   ` Luca Fancellu
  2022-03-23 12:12   ` Juergen Gross
  2022-04-19  8:34 ` Juergen Gross
  1 sibling, 2 replies; 7+ messages in thread
From: Luca Fancellu @ 2022-03-23 11:10 UTC (permalink / raw)
  To: Juergen Gross; +Cc: xen-devel



> On 23 Mar 2022, at 08:58, Juergen Gross <jgross@suse.com> wrote:
> 
> The result field of struct vscsiif_response is lacking a detailed
> definition. Today the Linux kernel internal scsi definitions are being
> used, which is not a sane interface for a PV device driver.
> 
> Add macros to change that by using today's values in the XEN namespace.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
> V2:
> - put macro parameters in parentheses (Jan Beulich)
> - correct XEN_VSCSIIF_RSLT_HOST() (Jan Beulich)
> - more verbose result defines (Jan Beulich)
> - add reset result defines (Jan Beulich)
> ---
> xen/include/public/io/vscsiif.h | 51 +++++++++++++++++++++++++++++++++
> 1 file changed, 51 insertions(+)
> 
> diff --git a/xen/include/public/io/vscsiif.h b/xen/include/public/io/vscsiif.h
> index c9ceb1884d..8553b17cc6 100644
> --- a/xen/include/public/io/vscsiif.h
> +++ b/xen/include/public/io/vscsiif.h
> @@ -315,6 +315,57 @@ struct vscsiif_response {
> };
> typedef struct vscsiif_response vscsiif_response_t;
> 
> +/* SCSI I/O status from vscsiif_response->rslt */
> +#define XEN_VSCSIIF_RSLT_STATUS(x)  ((x) & 0x00ff)
> +
> +/* Host I/O status from vscsiif_response->rslt */
> +#define XEN_VSCSIIF_RSLT_HOST(x)    (((x) & 0x00ff0000) >> 16)
> +#define XEN_VSCSIIF_RSLT_HOST_OK                   0
> +/* Couldn't connect before timeout */
> +#define XEN_VSCSIIF_RSLT_HOST_NO_CONNECT           1
> +/* Bus busy through timeout */
> +#define XEN_VSCSIIF_RSLT_HOST_BUS_BUSY             2
> +/* Timed out for other reason */
> +#define XEN_VSCSIIF_RSLT_HOST_TIME_OUT             3
> +/* Bad target */
> +#define XEN_VSCSIIF_RSLT_HOST_BAD_TARGET           4
> +/* Abort for some other reason */
> +#define XEN_VSCSIIF_RSLT_HOST_ABORT                5
> +/* Parity error */
> +#define XEN_VSCSIIF_RSLT_HOST_PARITY               6
> +/* Internal error */
> +#define XEN_VSCSIIF_RSLT_HOST_ERROR                7
> +/* Reset by somebody */
> +#define XEN_VSCSIIF_RSLT_HOST_RESET                8
> +/* Unexpected interrupt */
> +#define XEN_VSCSIIF_RSLT_HOST_BAD_INTR             9
> +/* Force command past mid-layer */
> +#define XEN_VSCSIIF_RSLT_HOST_PASSTHROUGH         10
> +/* Retry requested */
> +#define XEN_VSCSIIF_RSLT_HOST_SOFT_ERROR          11
> +/* Hidden retry requested */
> +#define XEN_VSCSIIF_RSLT_HOST_IMM_RETRY           12
> +/* Requeue command requested */
> +#define XEN_VSCSIIF_RSLT_HOST_REQUEUE             13
> +/* Transport error disrupted I/O */
> +#define XEN_VSCSIIF_RSLT_HOST_TRANSPORT_DISRUPTED 14
> +/* Transport class fastfailed */
> +#define XEN_VSCSIIF_RSLT_HOST_TRANSPORT_FAILFAST  15
> +/* Permanent target failure */
> +#define XEN_VSCSIIF_RSLT_HOST_TARGET_FAILURE      16
> +/* Permanent nexus failure on path */
> +#define XEN_VSCSIIF_RSLT_HOST_NEXUS_FAILURE       17
> +/* Space allocation on device failed */
> +#define XEN_VSCSIIF_RSLT_HOST_ALLOC_FAILURE       18
> +/* Medium error */
> +#define XEN_VSCSIIF_RSLT_HOST_MEDIUM_ERROR        19
> +/* Transport marginal errors */
> +#define XEN_VSCSIIF_RSLT_HOST_TRANSPORT_MARGINAL  20

Hi Juergen,

Would it makes sense to define the values in hex like in include/scsi/scsi_status.h
so that they are more easy to compare?

However this looks good to me,

Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>


> +
> +/* Result values of reset operations */
> +#define XEN_VSCSIIF_RSLT_RESET_SUCCESS  0x2002
> +#define XEN_VSCSIIF_RSLT_RESET_FAILED   0x2003
> +
> DEFINE_RING_TYPES(vscsiif, struct vscsiif_request, struct vscsiif_response);
> 
> 
> -- 
> 2.34.1
> 
> 



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] include/public: add command result definitions to vscsiif.h
  2022-03-23 11:10 ` Luca Fancellu
@ 2022-03-23 11:22   ` Luca Fancellu
  2022-03-23 12:13     ` Juergen Gross
  2022-03-23 12:12   ` Juergen Gross
  1 sibling, 1 reply; 7+ messages in thread
From: Luca Fancellu @ 2022-03-23 11:22 UTC (permalink / raw)
  To: Juergen Gross; +Cc: xen-devel



> On 23 Mar 2022, at 11:10, Luca Fancellu <Luca.Fancellu@arm.com> wrote:
> 
> 
> 
>> On 23 Mar 2022, at 08:58, Juergen Gross <jgross@suse.com> wrote:
>> 
>> The result field of struct vscsiif_response is lacking a detailed
>> definition. Today the Linux kernel internal scsi definitions are being
>> used, which is not a sane interface for a PV device driver.
>> 
>> Add macros to change that by using today's values in the XEN namespace.
>> 
>> Signed-off-by: Juergen Gross <jgross@suse.com>
>> ---
>> V2:
>> - put macro parameters in parentheses (Jan Beulich)
>> - correct XEN_VSCSIIF_RSLT_HOST() (Jan Beulich)
>> - more verbose result defines (Jan Beulich)
>> - add reset result defines (Jan Beulich)
>> ---
>> xen/include/public/io/vscsiif.h | 51 +++++++++++++++++++++++++++++++++
>> 1 file changed, 51 insertions(+)
>> 
>> diff --git a/xen/include/public/io/vscsiif.h b/xen/include/public/io/vscsiif.h
>> index c9ceb1884d..8553b17cc6 100644
>> --- a/xen/include/public/io/vscsiif.h
>> +++ b/xen/include/public/io/vscsiif.h
>> @@ -315,6 +315,57 @@ struct vscsiif_response {
>> };
>> typedef struct vscsiif_response vscsiif_response_t;
>> 
>> +/* SCSI I/O status from vscsiif_response->rslt */
>> +#define XEN_VSCSIIF_RSLT_STATUS(x)  ((x) & 0x00ff)

Sorry Juergen,

A thing came to me after sending my first message, is XEN_VSCSIIF_RSLT_STATUS meant
to be used to compare the result with XEN_VSCSIIF_RSLT_RESET_SUCCESS or 
XEN_VSCSIIF_RSLT_RESET_FAILED?

Because I think the mask should be 0xFFFF instead of 0xFF since we have the bit 13 set

Cheers,
Luca

>> +
>> +/* Host I/O status from vscsiif_response->rslt */
>> +#define XEN_VSCSIIF_RSLT_HOST(x)    (((x) & 0x00ff0000) >> 16)
>> +#define XEN_VSCSIIF_RSLT_HOST_OK                   0
>> +/* Couldn't connect before timeout */
>> +#define XEN_VSCSIIF_RSLT_HOST_NO_CONNECT           1
>> +/* Bus busy through timeout */
>> +#define XEN_VSCSIIF_RSLT_HOST_BUS_BUSY             2
>> +/* Timed out for other reason */
>> +#define XEN_VSCSIIF_RSLT_HOST_TIME_OUT             3
>> +/* Bad target */
>> +#define XEN_VSCSIIF_RSLT_HOST_BAD_TARGET           4
>> +/* Abort for some other reason */
>> +#define XEN_VSCSIIF_RSLT_HOST_ABORT                5
>> +/* Parity error */
>> +#define XEN_VSCSIIF_RSLT_HOST_PARITY               6
>> +/* Internal error */
>> +#define XEN_VSCSIIF_RSLT_HOST_ERROR                7
>> +/* Reset by somebody */
>> +#define XEN_VSCSIIF_RSLT_HOST_RESET                8
>> +/* Unexpected interrupt */
>> +#define XEN_VSCSIIF_RSLT_HOST_BAD_INTR             9
>> +/* Force command past mid-layer */
>> +#define XEN_VSCSIIF_RSLT_HOST_PASSTHROUGH         10
>> +/* Retry requested */
>> +#define XEN_VSCSIIF_RSLT_HOST_SOFT_ERROR          11
>> +/* Hidden retry requested */
>> +#define XEN_VSCSIIF_RSLT_HOST_IMM_RETRY           12
>> +/* Requeue command requested */
>> +#define XEN_VSCSIIF_RSLT_HOST_REQUEUE             13
>> +/* Transport error disrupted I/O */
>> +#define XEN_VSCSIIF_RSLT_HOST_TRANSPORT_DISRUPTED 14
>> +/* Transport class fastfailed */
>> +#define XEN_VSCSIIF_RSLT_HOST_TRANSPORT_FAILFAST  15
>> +/* Permanent target failure */
>> +#define XEN_VSCSIIF_RSLT_HOST_TARGET_FAILURE      16
>> +/* Permanent nexus failure on path */
>> +#define XEN_VSCSIIF_RSLT_HOST_NEXUS_FAILURE       17
>> +/* Space allocation on device failed */
>> +#define XEN_VSCSIIF_RSLT_HOST_ALLOC_FAILURE       18
>> +/* Medium error */
>> +#define XEN_VSCSIIF_RSLT_HOST_MEDIUM_ERROR        19
>> +/* Transport marginal errors */
>> +#define XEN_VSCSIIF_RSLT_HOST_TRANSPORT_MARGINAL  20
> 
> Hi Juergen,
> 
> Would it makes sense to define the values in hex like in include/scsi/scsi_status.h
> so that they are more easy to compare?
> 
> However this looks good to me,
> 
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>
> 
> 
>> +
>> +/* Result values of reset operations */
>> +#define XEN_VSCSIIF_RSLT_RESET_SUCCESS  0x2002
>> +#define XEN_VSCSIIF_RSLT_RESET_FAILED   0x2003
>> +
>> DEFINE_RING_TYPES(vscsiif, struct vscsiif_request, struct vscsiif_response);
>> 
>> 
>> -- 
>> 2.34.1



^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] include/public: add command result definitions to vscsiif.h
  2022-03-23 11:10 ` Luca Fancellu
  2022-03-23 11:22   ` Luca Fancellu
@ 2022-03-23 12:12   ` Juergen Gross
  1 sibling, 0 replies; 7+ messages in thread
From: Juergen Gross @ 2022-03-23 12:12 UTC (permalink / raw)
  To: Luca Fancellu; +Cc: xen-devel


[-- Attachment #1.1.1: Type: text/plain, Size: 3636 bytes --]

On 23.03.22 12:10, Luca Fancellu wrote:
> 
> 
>> On 23 Mar 2022, at 08:58, Juergen Gross <jgross@suse.com> wrote:
>>
>> The result field of struct vscsiif_response is lacking a detailed
>> definition. Today the Linux kernel internal scsi definitions are being
>> used, which is not a sane interface for a PV device driver.
>>
>> Add macros to change that by using today's values in the XEN namespace.
>>
>> Signed-off-by: Juergen Gross <jgross@suse.com>
>> ---
>> V2:
>> - put macro parameters in parentheses (Jan Beulich)
>> - correct XEN_VSCSIIF_RSLT_HOST() (Jan Beulich)
>> - more verbose result defines (Jan Beulich)
>> - add reset result defines (Jan Beulich)
>> ---
>> xen/include/public/io/vscsiif.h | 51 +++++++++++++++++++++++++++++++++
>> 1 file changed, 51 insertions(+)
>>
>> diff --git a/xen/include/public/io/vscsiif.h b/xen/include/public/io/vscsiif.h
>> index c9ceb1884d..8553b17cc6 100644
>> --- a/xen/include/public/io/vscsiif.h
>> +++ b/xen/include/public/io/vscsiif.h
>> @@ -315,6 +315,57 @@ struct vscsiif_response {
>> };
>> typedef struct vscsiif_response vscsiif_response_t;
>>
>> +/* SCSI I/O status from vscsiif_response->rslt */
>> +#define XEN_VSCSIIF_RSLT_STATUS(x)  ((x) & 0x00ff)
>> +
>> +/* Host I/O status from vscsiif_response->rslt */
>> +#define XEN_VSCSIIF_RSLT_HOST(x)    (((x) & 0x00ff0000) >> 16)
>> +#define XEN_VSCSIIF_RSLT_HOST_OK                   0
>> +/* Couldn't connect before timeout */
>> +#define XEN_VSCSIIF_RSLT_HOST_NO_CONNECT           1
>> +/* Bus busy through timeout */
>> +#define XEN_VSCSIIF_RSLT_HOST_BUS_BUSY             2
>> +/* Timed out for other reason */
>> +#define XEN_VSCSIIF_RSLT_HOST_TIME_OUT             3
>> +/* Bad target */
>> +#define XEN_VSCSIIF_RSLT_HOST_BAD_TARGET           4
>> +/* Abort for some other reason */
>> +#define XEN_VSCSIIF_RSLT_HOST_ABORT                5
>> +/* Parity error */
>> +#define XEN_VSCSIIF_RSLT_HOST_PARITY               6
>> +/* Internal error */
>> +#define XEN_VSCSIIF_RSLT_HOST_ERROR                7
>> +/* Reset by somebody */
>> +#define XEN_VSCSIIF_RSLT_HOST_RESET                8
>> +/* Unexpected interrupt */
>> +#define XEN_VSCSIIF_RSLT_HOST_BAD_INTR             9
>> +/* Force command past mid-layer */
>> +#define XEN_VSCSIIF_RSLT_HOST_PASSTHROUGH         10
>> +/* Retry requested */
>> +#define XEN_VSCSIIF_RSLT_HOST_SOFT_ERROR          11
>> +/* Hidden retry requested */
>> +#define XEN_VSCSIIF_RSLT_HOST_IMM_RETRY           12
>> +/* Requeue command requested */
>> +#define XEN_VSCSIIF_RSLT_HOST_REQUEUE             13
>> +/* Transport error disrupted I/O */
>> +#define XEN_VSCSIIF_RSLT_HOST_TRANSPORT_DISRUPTED 14
>> +/* Transport class fastfailed */
>> +#define XEN_VSCSIIF_RSLT_HOST_TRANSPORT_FAILFAST  15
>> +/* Permanent target failure */
>> +#define XEN_VSCSIIF_RSLT_HOST_TARGET_FAILURE      16
>> +/* Permanent nexus failure on path */
>> +#define XEN_VSCSIIF_RSLT_HOST_NEXUS_FAILURE       17
>> +/* Space allocation on device failed */
>> +#define XEN_VSCSIIF_RSLT_HOST_ALLOC_FAILURE       18
>> +/* Medium error */
>> +#define XEN_VSCSIIF_RSLT_HOST_MEDIUM_ERROR        19
>> +/* Transport marginal errors */
>> +#define XEN_VSCSIIF_RSLT_HOST_TRANSPORT_MARGINAL  20
> 
> Hi Juergen,
> 
> Would it makes sense to define the values in hex like in include/scsi/scsi_status.h
> so that they are more easy to compare?

They are not meant to be compared, even if they have (today) the same
value.

> 
> However this looks good to me,
> 
> Reviewed-by: Luca Fancellu <luca.fancellu@arm.com>

Thanks,


Juergen

[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3149 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] include/public: add command result definitions to vscsiif.h
  2022-03-23 11:22   ` Luca Fancellu
@ 2022-03-23 12:13     ` Juergen Gross
  0 siblings, 0 replies; 7+ messages in thread
From: Juergen Gross @ 2022-03-23 12:13 UTC (permalink / raw)
  To: Luca Fancellu; +Cc: xen-devel


[-- Attachment #1.1.1: Type: text/plain, Size: 1683 bytes --]

On 23.03.22 12:22, Luca Fancellu wrote:
> 
> 
>> On 23 Mar 2022, at 11:10, Luca Fancellu <Luca.Fancellu@arm.com> wrote:
>>
>>
>>
>>> On 23 Mar 2022, at 08:58, Juergen Gross <jgross@suse.com> wrote:
>>>
>>> The result field of struct vscsiif_response is lacking a detailed
>>> definition. Today the Linux kernel internal scsi definitions are being
>>> used, which is not a sane interface for a PV device driver.
>>>
>>> Add macros to change that by using today's values in the XEN namespace.
>>>
>>> Signed-off-by: Juergen Gross <jgross@suse.com>
>>> ---
>>> V2:
>>> - put macro parameters in parentheses (Jan Beulich)
>>> - correct XEN_VSCSIIF_RSLT_HOST() (Jan Beulich)
>>> - more verbose result defines (Jan Beulich)
>>> - add reset result defines (Jan Beulich)
>>> ---
>>> xen/include/public/io/vscsiif.h | 51 +++++++++++++++++++++++++++++++++
>>> 1 file changed, 51 insertions(+)
>>>
>>> diff --git a/xen/include/public/io/vscsiif.h b/xen/include/public/io/vscsiif.h
>>> index c9ceb1884d..8553b17cc6 100644
>>> --- a/xen/include/public/io/vscsiif.h
>>> +++ b/xen/include/public/io/vscsiif.h
>>> @@ -315,6 +315,57 @@ struct vscsiif_response {
>>> };
>>> typedef struct vscsiif_response vscsiif_response_t;
>>>
>>> +/* SCSI I/O status from vscsiif_response->rslt */
>>> +#define XEN_VSCSIIF_RSLT_STATUS(x)  ((x) & 0x00ff)
> 
> Sorry Juergen,
> 
> A thing came to me after sending my first message, is XEN_VSCSIIF_RSLT_STATUS meant
> to be used to compare the result with XEN_VSCSIIF_RSLT_RESET_SUCCESS or
> XEN_VSCSIIF_RSLT_RESET_FAILED?

No.

XEN_VSCSIIF_RSLT_RESET_* are meant to be compared with vscsiif_response->rslt.


Juergen

[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3149 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] include/public: add command result definitions to vscsiif.h
  2022-03-23  8:58 [PATCH v2] include/public: add command result definitions to vscsiif.h Juergen Gross
  2022-03-23 11:10 ` Luca Fancellu
@ 2022-04-19  8:34 ` Juergen Gross
  2022-04-19  9:24   ` Jan Beulich
  1 sibling, 1 reply; 7+ messages in thread
From: Juergen Gross @ 2022-04-19  8:34 UTC (permalink / raw)
  To: xen-devel


[-- Attachment #1.1.1: Type: text/plain, Size: 3404 bytes --]

Ping?

On 23.03.22 09:58, Juergen Gross wrote:
> The result field of struct vscsiif_response is lacking a detailed
> definition. Today the Linux kernel internal scsi definitions are being
> used, which is not a sane interface for a PV device driver.
> 
> Add macros to change that by using today's values in the XEN namespace.
> 
> Signed-off-by: Juergen Gross <jgross@suse.com>
> ---
> V2:
> - put macro parameters in parentheses (Jan Beulich)
> - correct XEN_VSCSIIF_RSLT_HOST() (Jan Beulich)
> - more verbose result defines (Jan Beulich)
> - add reset result defines (Jan Beulich)
> ---
>   xen/include/public/io/vscsiif.h | 51 +++++++++++++++++++++++++++++++++
>   1 file changed, 51 insertions(+)
> 
> diff --git a/xen/include/public/io/vscsiif.h b/xen/include/public/io/vscsiif.h
> index c9ceb1884d..8553b17cc6 100644
> --- a/xen/include/public/io/vscsiif.h
> +++ b/xen/include/public/io/vscsiif.h
> @@ -315,6 +315,57 @@ struct vscsiif_response {
>   };
>   typedef struct vscsiif_response vscsiif_response_t;
>   
> +/* SCSI I/O status from vscsiif_response->rslt */
> +#define XEN_VSCSIIF_RSLT_STATUS(x)  ((x) & 0x00ff)
> +
> +/* Host I/O status from vscsiif_response->rslt */
> +#define XEN_VSCSIIF_RSLT_HOST(x)    (((x) & 0x00ff0000) >> 16)
> +#define XEN_VSCSIIF_RSLT_HOST_OK                   0
> +/* Couldn't connect before timeout */
> +#define XEN_VSCSIIF_RSLT_HOST_NO_CONNECT           1
> +/* Bus busy through timeout */
> +#define XEN_VSCSIIF_RSLT_HOST_BUS_BUSY             2
> +/* Timed out for other reason */
> +#define XEN_VSCSIIF_RSLT_HOST_TIME_OUT             3
> +/* Bad target */
> +#define XEN_VSCSIIF_RSLT_HOST_BAD_TARGET           4
> +/* Abort for some other reason */
> +#define XEN_VSCSIIF_RSLT_HOST_ABORT                5
> +/* Parity error */
> +#define XEN_VSCSIIF_RSLT_HOST_PARITY               6
> +/* Internal error */
> +#define XEN_VSCSIIF_RSLT_HOST_ERROR                7
> +/* Reset by somebody */
> +#define XEN_VSCSIIF_RSLT_HOST_RESET                8
> +/* Unexpected interrupt */
> +#define XEN_VSCSIIF_RSLT_HOST_BAD_INTR             9
> +/* Force command past mid-layer */
> +#define XEN_VSCSIIF_RSLT_HOST_PASSTHROUGH         10
> +/* Retry requested */
> +#define XEN_VSCSIIF_RSLT_HOST_SOFT_ERROR          11
> +/* Hidden retry requested */
> +#define XEN_VSCSIIF_RSLT_HOST_IMM_RETRY           12
> +/* Requeue command requested */
> +#define XEN_VSCSIIF_RSLT_HOST_REQUEUE             13
> +/* Transport error disrupted I/O */
> +#define XEN_VSCSIIF_RSLT_HOST_TRANSPORT_DISRUPTED 14
> +/* Transport class fastfailed */
> +#define XEN_VSCSIIF_RSLT_HOST_TRANSPORT_FAILFAST  15
> +/* Permanent target failure */
> +#define XEN_VSCSIIF_RSLT_HOST_TARGET_FAILURE      16
> +/* Permanent nexus failure on path */
> +#define XEN_VSCSIIF_RSLT_HOST_NEXUS_FAILURE       17
> +/* Space allocation on device failed */
> +#define XEN_VSCSIIF_RSLT_HOST_ALLOC_FAILURE       18
> +/* Medium error */
> +#define XEN_VSCSIIF_RSLT_HOST_MEDIUM_ERROR        19
> +/* Transport marginal errors */
> +#define XEN_VSCSIIF_RSLT_HOST_TRANSPORT_MARGINAL  20
> +
> +/* Result values of reset operations */
> +#define XEN_VSCSIIF_RSLT_RESET_SUCCESS  0x2002
> +#define XEN_VSCSIIF_RSLT_RESET_FAILED   0x2003
> +
>   DEFINE_RING_TYPES(vscsiif, struct vscsiif_request, struct vscsiif_response);
>   
>   


[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3149 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 495 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH v2] include/public: add command result definitions to vscsiif.h
  2022-04-19  8:34 ` Juergen Gross
@ 2022-04-19  9:24   ` Jan Beulich
  0 siblings, 0 replies; 7+ messages in thread
From: Jan Beulich @ 2022-04-19  9:24 UTC (permalink / raw)
  To: Juergen Gross; +Cc: xen-devel

On 19.04.2022 10:34, Juergen Gross wrote:
> Ping?

Actually this patch is ready for committing - you have got an R-b already.
I merely failed to tag it as such in my respective folder, and hence I've
overlooked it during earlier commit swipes. Will include it next time
round.

Jan



^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2022-04-19  9:24 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-23  8:58 [PATCH v2] include/public: add command result definitions to vscsiif.h Juergen Gross
2022-03-23 11:10 ` Luca Fancellu
2022-03-23 11:22   ` Luca Fancellu
2022-03-23 12:13     ` Juergen Gross
2022-03-23 12:12   ` Juergen Gross
2022-04-19  8:34 ` Juergen Gross
2022-04-19  9:24   ` Jan Beulich

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.