From: Cornelia Huck <cohuck@redhat.com>
To: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
Cc: qemu-devel@nongnu.org, borntraeger@de.ibm.com, agraf@suse.de,
rth@twiddle.net, pasic@linux.vnet.ibm.com,
pmorel@linux.vnet.ibm.com
Subject: Re: [Qemu-devel] [PATCH 2/3] s390x/css: generate solicited crw for rchp completion signaling
Date: Thu, 27 Jul 2017 13:22:59 +0200 [thread overview]
Message-ID: <20170727132259.7102a715@gondolin> (raw)
In-Reply-To: <20170727015418.85407-3-bjsdjshi@linux.vnet.ibm.com>
On Thu, 27 Jul 2017 03:54:17 +0200
Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com> wrote:
> 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.
Sounds legit.
>
> Reported-by: Halil Pasic <pasic@linux.vnet.ibm.com>
> Signed-off-by: Dong Jia Shi <bjsdjshi@linux.vnet.ibm.com>
> ---
> hw/s390x/css.c | 15 +++++++++------
> include/hw/s390x/css.h | 2 +-
> 2 files changed, 10 insertions(+), 7 deletions(-)
>
> diff --git a/hw/s390x/css.c b/hw/s390x/css.c
> index 5321ca016b..60e1592d5c 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,7 @@ 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 s, int chain, uint16_t rsid)
's' is not a very speaking name...
> {
> CrwContainer *crw_cont;
>
> @@ -2040,6 +2040,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 (s) {
> + crw_cont->crw.flags |= CRW_FLAGS_MASK_S;
...as it obviously causes the S flag to be set ;) Let's call it 'solicited'?
> + }
> if (chain) {
> crw_cont->crw.flags |= CRW_FLAGS_MASK_C;
> }
> @@ -2086,9 +2089,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 +2106,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);
Should we want to support OS-triggered channel path vary (via SCLP or
otherwise) in the future, we'll probably need a version that generates a
solicited crw.
> }
> channel_subsys.sei_pending = true;
> }
> diff --git a/include/hw/s390x/css.h b/include/hw/s390x/css.h
> index 5c5fe6b202..d03b4ffeac 100644
> --- a/include/hw/s390x/css.h
> +++ b/include/hw/s390x/css.h
> @@ -150,7 +150,7 @@ 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 s, 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);
Otherwise, patch looks good.
next prev parent reply other threads:[~2017-07-27 11:23 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-27 1:54 [Qemu-devel] [PATCH 0/3] Channel Path realted CRW generation Dong Jia Shi
2017-07-27 1:54 ` [Qemu-devel] [PATCH 1/3] s390x/css: use macro for event-information pending error recover code Dong Jia Shi
2017-07-27 10:10 ` Cornelia Huck
2017-07-28 7:12 ` Dong Jia Shi
2017-07-28 7:26 ` Cornelia Huck
2017-07-27 1:54 ` [Qemu-devel] [PATCH 2/3] s390x/css: generate solicited crw for rchp completion signaling Dong Jia Shi
2017-07-27 11:22 ` Cornelia Huck [this message]
2017-07-28 7:25 ` Dong Jia Shi
2017-07-28 7:29 ` Cornelia Huck
2017-07-27 1:54 ` [Qemu-devel] [PATCH 3/3] s390x/css: generate channel path initialized CRW for channel path hotplug Dong Jia Shi
2017-07-27 11:59 ` Cornelia Huck
2017-07-27 13:37 ` Halil Pasic
2017-07-27 14:14 ` Cornelia Huck
2017-07-27 16:15 ` Halil Pasic
2017-07-28 10:11 ` Cornelia Huck
2017-07-28 12:32 ` Halil Pasic
2017-07-28 12:58 ` Cornelia Huck
2017-07-28 14:29 ` Halil Pasic
2017-07-31 8:26 ` Cornelia Huck
2017-07-31 1:46 ` Dong Jia Shi
2017-07-31 8:41 ` Cornelia Huck
2017-08-01 1:23 ` Dong Jia Shi
2017-07-31 3:51 ` Dong Jia Shi
2017-07-31 11:13 ` Cornelia Huck
2017-07-31 12:30 ` Halil Pasic
2017-08-01 2:02 ` Dong Jia Shi
2017-08-01 2:29 ` Dong Jia Shi
2017-08-01 7:24 ` Cornelia Huck
2017-08-01 7:57 ` Dong Jia Shi
2017-07-27 9:46 ` [Qemu-devel] [PATCH 0/3] Channel Path realted CRW generation Cornelia Huck
2017-07-28 9:21 ` Dong Jia Shi
2017-07-28 11:53 ` Cornelia Huck
2017-07-28 15:50 ` Dong Jia Shi
2017-07-31 8:54 ` Cornelia Huck
2017-08-01 2:12 ` Dong Jia Shi
2017-08-01 7:19 ` Cornelia Huck
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=20170727132259.7102a715@gondolin \
--to=cohuck@redhat.com \
--cc=agraf@suse.de \
--cc=bjsdjshi@linux.vnet.ibm.com \
--cc=borntraeger@de.ibm.com \
--cc=pasic@linux.vnet.ibm.com \
--cc=pmorel@linux.vnet.ibm.com \
--cc=qemu-devel@nongnu.org \
--cc=rth@twiddle.net \
/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.