All of lore.kernel.org
 help / color / mirror / Atom feed
From: Cornelia Huck <cohuck@redhat.com>
To: Pierre Morel <pmorel@linux.ibm.com>
Cc: kvm@vger.kernel.org, frankja@linux.ibm.com, david@redhat.com,
	thuth@redhat.com, imbrenda@linux.ibm.com
Subject: Re: [kvm-unit-tests PATCH v3 14/16] s390x: css: issuing SSCH when the channel is status pending
Date: Tue, 6 Apr 2021 17:34:56 +0200	[thread overview]
Message-ID: <20210406173456.30d0c246.cohuck@redhat.com> (raw)
In-Reply-To: <1617694853-6881-15-git-send-email-pmorel@linux.ibm.com>

On Tue,  6 Apr 2021 09:40:51 +0200
Pierre Morel <pmorel@linux.ibm.com> wrote:

> We await CC=1 when we issue a SSCH on a channel with status pending.
> 
> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
> ---
>  lib/s390x/css.h |  2 ++
>  s390x/css.c     | 10 ++++++++++
>  2 files changed, 12 insertions(+)
> 
> diff --git a/lib/s390x/css.h b/lib/s390x/css.h
> index 08b2974..3eb6957 100644
> --- a/lib/s390x/css.h
> +++ b/lib/s390x/css.h
> @@ -90,6 +90,8 @@ struct scsw {
>  #define SCSW_ESW_FORMAT		0x04000000
>  #define SCSW_SUSPEND_CTRL	0x08000000
>  #define SCSW_KEY		0xf0000000
> +#define SCSW_SSCH_COMPLETED	(SCSW_CCW_FORMAT | SCSW_FC_START | SCSW_SC_PENDING | SCSW_SC_SECONDARY | \
> +				 SCSW_SC_PRIMARY)
>  	uint32_t ctrl;
>  	uint32_t ccw_addr;
>  #define SCSW_DEVS_DEV_END	0x04
> diff --git a/s390x/css.c b/s390x/css.c
> index f8c6688..52264f2 100644
> --- a/s390x/css.c
> +++ b/s390x/css.c
> @@ -258,6 +258,15 @@ static void ssch_orb_fcx(void)
>  	orb->ctrl = tmp;
>  }
>  
> +static void ssch_status_pending(void)
> +{
> +	assert(ssch(test_device_sid, orb) == 0);
> +	report(ssch(test_device_sid, orb) == 1, "CC = 1");

I don't think that's correct in the general case (although it will work
for QEMU).

The PoP has a note about some models discarding the status pending, if
we have secondary status only (although I don't think that would happen
with this sequence.) You might also end up with cc 2 here, I think. In
theory, you could also get a cc 3 on real hardware, but that would be a
real edge case, and subsequent tests would fail anyway.

> +	/* now we clear the status */
> +	assert(tsch(test_device_sid, &irb) == 0);
> +	check_io_completion(test_device_sid, SCSW_SSCH_COMPLETED);
> +}
> +
>  static struct tests ssh_tests[] = {
>  	{ "privilege", ssch_privilege },
>  	{ "orb cpa zero", ssch_orb_cpa_zero },
> @@ -269,6 +278,7 @@ static struct tests ssh_tests[] = {
>  	{ "ORB reserved CTRL bits", ssch_orb_ctrl },
>  	{ "ORB extensions", ssch_orb_extension},
>  	{ "FC extensions", ssch_orb_fcx},
> +	{ "status pending before ssch", ssch_status_pending},
>  	{ NULL, NULL }
>  };
>  


  reply	other threads:[~2021-04-06 15:36 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-06  7:40 [kvm-unit-tests PATCH v3 00/16] s390x: Testing SSCH, CSCH and HSCH for errors Pierre Morel
2021-04-06  7:40 ` [kvm-unit-tests PATCH v3 01/16] s390x: lib: css: disabling a subchannel Pierre Morel
2021-04-06  7:40 ` [kvm-unit-tests PATCH v3 02/16] s390x: lib: css: SCSW bit definitions Pierre Morel
2021-04-06  7:40 ` [kvm-unit-tests PATCH v3 03/16] s390x: css: simplify skipping tests on no device Pierre Morel
2021-04-06 12:44   ` Cornelia Huck
2021-04-07 10:53     ` Pierre Morel
2021-04-06  7:40 ` [kvm-unit-tests PATCH v3 04/16] s390x: lib: css: separate wait for IRQ and check I/O completion Pierre Morel
2021-04-06  7:40 ` [kvm-unit-tests PATCH v3 05/16] s390x: lib: css: add SCSW ctrl expectations to " Pierre Morel
2021-04-06  7:40 ` [kvm-unit-tests PATCH v3 06/16] s390x: lib: css: checking I/O errors Pierre Morel
2021-04-06  7:40 ` [kvm-unit-tests PATCH v3 07/16] s390x: css: testing ssch errors Pierre Morel
2021-04-06  7:40 ` [kvm-unit-tests PATCH v3 08/16] s390x: css: ssch check for cpa zero Pierre Morel
2021-04-06  7:40 ` [kvm-unit-tests PATCH v3 09/16] s390x: css: ssch with mis aligned ORB Pierre Morel
2021-04-06  7:40 ` [kvm-unit-tests PATCH v3 10/16] s390x: css: ssch checking addressing errors Pierre Morel
2021-04-06  7:40 ` [kvm-unit-tests PATCH v3 11/16] s390x: css: No support for MIDAW Pierre Morel
2021-04-06 15:58   ` Cornelia Huck
2021-04-07 10:06     ` Pierre Morel
2021-04-07 10:14       ` Cornelia Huck
2021-04-06  7:40 ` [kvm-unit-tests PATCH v3 12/16] s390x: css: Check ORB reserved bits Pierre Morel
2021-04-06 15:51   ` Cornelia Huck
2021-04-07 10:07     ` Pierre Morel
2021-04-07 10:15       ` Cornelia Huck
2021-04-06  7:40 ` [kvm-unit-tests PATCH v3 13/16] s390x: css: checking for CSS extensions Pierre Morel
2021-04-06 15:50   ` Cornelia Huck
2021-04-07 10:42     ` Pierre Morel
2021-04-06  7:40 ` [kvm-unit-tests PATCH v3 14/16] s390x: css: issuing SSCH when the channel is status pending Pierre Morel
2021-04-06 15:34   ` Cornelia Huck [this message]
2021-04-07 10:46     ` Pierre Morel
2021-04-06  7:40 ` [kvm-unit-tests PATCH v3 15/16] s390x: css: testing halt subchannel Pierre Morel
2021-04-06  7:40 ` [kvm-unit-tests PATCH v3 16/16] s390x: css: testing clear subchannel Pierre Morel
2021-04-06 12:21 ` [kvm-unit-tests PATCH v3 00/16] s390x: Testing SSCH, CSCH and HSCH for errors Pierre Morel

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=20210406173456.30d0c246.cohuck@redhat.com \
    --to=cohuck@redhat.com \
    --cc=david@redhat.com \
    --cc=frankja@linux.ibm.com \
    --cc=imbrenda@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=pmorel@linux.ibm.com \
    --cc=thuth@redhat.com \
    /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.