All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v3 0/2] ERC cleanup and CRW bugfix
@ 2017-08-03  0:35 Dong Jia Shi
  2017-08-03  0:35 ` [Qemu-devel] [PATCH v3 1/2] s390x/css: use macro for event-information pending error recover code Dong Jia Shi
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Dong Jia Shi @ 2017-08-03  0:35 UTC (permalink / raw)
  To: qemu-devel; +Cc: cohuck, borntraeger, agraf, rth, bjsdjshi, pasic, pmorel

This series is trying to:
1. clear up ERC related code
2. bugfix for channel path related CRW generation

Change log
----------
v2->v3:
Added Halil's R-B on both patches.
Patch #1:
  Added ERC "installed parameters restored".

v1->v2:
Patch #1:
  Add all ERCs.
  Commit message update.
Patch #2:
  Rename the new added parameter to more speaking name -- solicited.

Dong Jia Shi (2):
  s390x/css: use macro for event-information pending error recover code
  s390x/css: generate solicited crw for rchp completion signaling

 hw/s390x/css.c            | 16 ++++++++++------
 include/hw/s390x/css.h    |  3 ++-
 include/hw/s390x/ioinst.h | 12 ++++++++++--
 3 files changed, 22 insertions(+), 9 deletions(-)

-- 
2.11.2

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

* [Qemu-devel] [PATCH v3 1/2] s390x/css: use macro for event-information pending error recover code
  2017-08-03  0:35 [Qemu-devel] [PATCH v3 0/2] ERC cleanup and CRW bugfix Dong Jia Shi
@ 2017-08-03  0:35 ` Dong Jia Shi
  2017-08-03  0:35 ` [Qemu-devel] [PATCH v3 2/2] s390x/css: generate solicited crw for rchp completion signaling Dong Jia Shi
  2017-08-03  8:25 ` [Qemu-devel] [PATCH v3 0/2] ERC cleanup and CRW bugfix Cornelia Huck
  2 siblings, 0 replies; 4+ messages in thread
From: Dong Jia Shi @ 2017-08-03  0:35 UTC (permalink / raw)
  To: qemu-devel; +Cc: cohuck, borntraeger, agraf, rth, bjsdjshi, pasic, pmorel

Let's use a macro for the ERC (error recover code) when generating a
Channel Subsystem Event-information pending CRW (channel report word).

While we are at it, let's also add all other ERCs.

Signed-off-by: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
Reviewed-by: Halil Pasic <pasic@linux.vnet.ibm.com>
---
 hw/s390x/css.c            |  2 +-
 include/hw/s390x/ioinst.h | 12 ++++++++++--
 2 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/hw/s390x/css.c b/hw/s390x/css.c
index 6a42b95cee..5321ca016b 100644
--- a/hw/s390x/css.c
+++ b/hw/s390x/css.c
@@ -2103,7 +2103,7 @@ void css_generate_chp_crws(uint8_t cssid, uint8_t chpid)
 void css_generate_css_crws(uint8_t cssid)
 {
     if (!channel_subsys.sei_pending) {
-        css_queue_crw(CRW_RSC_CSS, 0, 0, cssid);
+        css_queue_crw(CRW_RSC_CSS, CRW_ERC_EVENT, 0, cssid);
     }
     channel_subsys.sei_pending = true;
 }
diff --git a/include/hw/s390x/ioinst.h b/include/hw/s390x/ioinst.h
index 92d15655e4..5f2db6949d 100644
--- a/include/hw/s390x/ioinst.h
+++ b/include/hw/s390x/ioinst.h
@@ -201,8 +201,16 @@ typedef struct CRW {
 #define CRW_FLAGS_MASK_A 0x0080
 #define CRW_FLAGS_MASK_ERC 0x003f
 
-#define CRW_ERC_INIT 0x02
-#define CRW_ERC_IPI  0x04
+#define CRW_ERC_EVENT    0x00 /* event information pending */
+#define CRW_ERC_AVAIL    0x01 /* available */
+#define CRW_ERC_INIT     0x02 /* initialized */
+#define CRW_ERC_TERROR   0x03 /* temporary error */
+#define CRW_ERC_IPI      0x04 /* installed parm initialized */
+#define CRW_ERC_TERM     0x05 /* terminal */
+#define CRW_ERC_PERRN    0x06 /* perm. error, facility not init */
+#define CRW_ERC_PERRI    0x07 /* perm. error, facility init */
+#define CRW_ERC_PMOD     0x08 /* installed parameters modified */
+#define CRW_ERC_IPR      0x0A /* installed parameters restored */
 
 #define CRW_RSC_SUBCH 0x3
 #define CRW_RSC_CHP   0x4
-- 
2.11.2

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

* [Qemu-devel] [PATCH v3 2/2] s390x/css: generate solicited crw for rchp completion signaling
  2017-08-03  0:35 [Qemu-devel] [PATCH v3 0/2] ERC cleanup and CRW bugfix Dong Jia Shi
  2017-08-03  0:35 ` [Qemu-devel] [PATCH v3 1/2] s390x/css: use macro for event-information pending error recover code Dong Jia Shi
@ 2017-08-03  0:35 ` Dong Jia Shi
  2017-08-03  8:25 ` [Qemu-devel] [PATCH v3 0/2] ERC cleanup and CRW bugfix Cornelia Huck
  2 siblings, 0 replies; 4+ messages in thread
From: Dong Jia Shi @ 2017-08-03  0:35 UTC (permalink / raw)
  To: qemu-devel; +Cc: cohuck, borntraeger, agraf, rth, bjsdjshi, pasic, pmorel

A successful completion of rchp should signal a solicited channel path
initialized CRW (channel report word), while the current implementation
always generates an un-solicited one. Let's fix this.

Reported-by: Halil Pasic <pasic@linux.vnet.ibm.com>
Signed-off-by: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
Reviewed-by: Halil Pasic <pasic@linux.vnet.ibm.com>
---
 hw/s390x/css.c         | 16 ++++++++++------
 include/hw/s390x/css.h |  3 ++-
 2 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/hw/s390x/css.c b/hw/s390x/css.c
index 5321ca016b..bfa56f4b12 100644
--- a/hw/s390x/css.c
+++ b/hw/s390x/css.c
@@ -1745,10 +1745,10 @@ int css_do_rchp(uint8_t cssid, uint8_t chpid)
     }
 
     /* We don't really use a channel path, so we're done here. */
-    css_queue_crw(CRW_RSC_CHP, CRW_ERC_INIT,
+    css_queue_crw(CRW_RSC_CHP, CRW_ERC_INIT, 1,
                   channel_subsys.max_cssid > 0 ? 1 : 0, chpid);
     if (channel_subsys.max_cssid > 0) {
-        css_queue_crw(CRW_RSC_CHP, CRW_ERC_INIT, 0, real_cssid << 8);
+        css_queue_crw(CRW_RSC_CHP, CRW_ERC_INIT, 1, 0, real_cssid << 8);
     }
     return 0;
 }
@@ -2028,7 +2028,8 @@ void css_subch_assign(uint8_t cssid, uint8_t ssid, uint16_t schid,
     }
 }
 
-void css_queue_crw(uint8_t rsc, uint8_t erc, int chain, uint16_t rsid)
+void css_queue_crw(uint8_t rsc, uint8_t erc, int solicited,
+                   int chain, uint16_t rsid)
 {
     CrwContainer *crw_cont;
 
@@ -2040,6 +2041,9 @@ void css_queue_crw(uint8_t rsc, uint8_t erc, int chain, uint16_t rsid)
         return;
     }
     crw_cont->crw.flags = (rsc << 8) | erc;
+    if (solicited) {
+        crw_cont->crw.flags |= CRW_FLAGS_MASK_S;
+    }
     if (chain) {
         crw_cont->crw.flags |= CRW_FLAGS_MASK_C;
     }
@@ -2086,9 +2090,9 @@ void css_generate_sch_crws(uint8_t cssid, uint8_t ssid, uint16_t schid,
     }
     chain_crw = (channel_subsys.max_ssid > 0) ||
             (channel_subsys.max_cssid > 0);
-    css_queue_crw(CRW_RSC_SUBCH, CRW_ERC_IPI, chain_crw ? 1 : 0, schid);
+    css_queue_crw(CRW_RSC_SUBCH, CRW_ERC_IPI, 0, chain_crw ? 1 : 0, schid);
     if (chain_crw) {
-        css_queue_crw(CRW_RSC_SUBCH, CRW_ERC_IPI, 0,
+        css_queue_crw(CRW_RSC_SUBCH, CRW_ERC_IPI, 0, 0,
                       (guest_cssid << 8) | (ssid << 4));
     }
     /* RW_ERC_IPI --> clear pending interrupts */
@@ -2103,7 +2107,7 @@ void css_generate_chp_crws(uint8_t cssid, uint8_t chpid)
 void css_generate_css_crws(uint8_t cssid)
 {
     if (!channel_subsys.sei_pending) {
-        css_queue_crw(CRW_RSC_CSS, CRW_ERC_EVENT, 0, cssid);
+        css_queue_crw(CRW_RSC_CSS, CRW_ERC_EVENT, 0, 0, cssid);
     }
     channel_subsys.sei_pending = true;
 }
diff --git a/include/hw/s390x/css.h b/include/hw/s390x/css.h
index 5c5fe6b202..5b017e1fc3 100644
--- a/include/hw/s390x/css.h
+++ b/include/hw/s390x/css.h
@@ -150,7 +150,8 @@ void copy_scsw_to_guest(SCSW *dest, const SCSW *src);
 void css_inject_io_interrupt(SubchDev *sch);
 void css_reset(void);
 void css_reset_sch(SubchDev *sch);
-void css_queue_crw(uint8_t rsc, uint8_t erc, int chain, uint16_t rsid);
+void css_queue_crw(uint8_t rsc, uint8_t erc, int solicited,
+                   int chain, uint16_t rsid);
 void css_generate_sch_crws(uint8_t cssid, uint8_t ssid, uint16_t schid,
                            int hotplugged, int add);
 void css_generate_chp_crws(uint8_t cssid, uint8_t chpid);
-- 
2.11.2

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

* Re: [Qemu-devel] [PATCH v3 0/2] ERC cleanup and CRW bugfix
  2017-08-03  0:35 [Qemu-devel] [PATCH v3 0/2] ERC cleanup and CRW bugfix Dong Jia Shi
  2017-08-03  0:35 ` [Qemu-devel] [PATCH v3 1/2] s390x/css: use macro for event-information pending error recover code Dong Jia Shi
  2017-08-03  0:35 ` [Qemu-devel] [PATCH v3 2/2] s390x/css: generate solicited crw for rchp completion signaling Dong Jia Shi
@ 2017-08-03  8:25 ` Cornelia Huck
  2 siblings, 0 replies; 4+ messages in thread
From: Cornelia Huck @ 2017-08-03  8:25 UTC (permalink / raw)
  To: Dong Jia Shi; +Cc: qemu-devel, borntraeger, agraf, rth, pasic, pmorel

On Thu,  3 Aug 2017 02:35:25 +0200
Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> wrote:

> This series is trying to:
> 1. clear up ERC related code
> 2. bugfix for channel path related CRW generation
> 
> Change log
> ----------
> v2->v3:
> Added Halil's R-B on both patches.
> Patch #1:
>   Added ERC "installed parameters restored".
> 
> v1->v2:
> Patch #1:
>   Add all ERCs.
>   Commit message update.
> Patch #2:
>   Rename the new added parameter to more speaking name -- solicited.
> 
> Dong Jia Shi (2):
>   s390x/css: use macro for event-information pending error recover code
>   s390x/css: generate solicited crw for rchp completion signaling
> 
>  hw/s390x/css.c            | 16 ++++++++++------
>  include/hw/s390x/css.h    |  3 ++-
>  include/hw/s390x/ioinst.h | 12 ++++++++++--
>  3 files changed, 22 insertions(+), 9 deletions(-)
> 

Thanks, applied.

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

end of thread, other threads:[~2017-08-03  8:25 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-08-03  0:35 [Qemu-devel] [PATCH v3 0/2] ERC cleanup and CRW bugfix Dong Jia Shi
2017-08-03  0:35 ` [Qemu-devel] [PATCH v3 1/2] s390x/css: use macro for event-information pending error recover code Dong Jia Shi
2017-08-03  0:35 ` [Qemu-devel] [PATCH v3 2/2] s390x/css: generate solicited crw for rchp completion signaling Dong Jia Shi
2017-08-03  8:25 ` [Qemu-devel] [PATCH v3 0/2] ERC cleanup and CRW bugfix Cornelia Huck

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.