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, linux-s390@vger.kernel.org,
	frankja@linux.ibm.com, david@redhat.com, thuth@redhat.com,
	drjones@redhat.com
Subject: Re: [kvm-unit-tests PATCH v11 8/9] s390x: css: msch, enable test
Date: Thu, 9 Jul 2020 13:40:56 +0200	[thread overview]
Message-ID: <20200709134056.0d267b6c.cohuck@redhat.com> (raw)
In-Reply-To: <1594282068-11054-9-git-send-email-pmorel@linux.ibm.com>

On Thu,  9 Jul 2020 10:07:47 +0200
Pierre Morel <pmorel@linux.ibm.com> wrote:

> A second step when testing the channel subsystem is to prepare a channel
> for use.
> This includes:
> - Get the current subchannel Information Block (SCHIB) using STSCH
> - Update it in memory to set the ENABLE bit and the specified ISC
> - Tell the CSS that the SCHIB has been modified using MSCH
> - Get the SCHIB from the CSS again to verify that the subchannel is
>   enabled and uses the specified ISC.
> - If the command succeeds but subchannel is not enabled or the ISC
>   field is not as expected, retry a predefined retries count.
> - If the command fails, report the failure and do not retry, even
>   if cc indicates a busy/status pending as we do not expect this.
> 
> This tests the MSCH instruction to enable a channel successfully.
> Retries are done and in case of error, and if the retries count
> is exceeded, a report is made.
> 
> Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
> Acked-by: Thomas Huth <thuth@redhat.com>
> Reviewed-by: Cornelia Huck <cohuck@redhat.com>
> ---
>  lib/s390x/css.h     |  8 +++--
>  lib/s390x/css_lib.c | 72 +++++++++++++++++++++++++++++++++++++++++++++
>  s390x/css.c         | 15 ++++++++++
>  3 files changed, 92 insertions(+), 3 deletions(-)

(...)

> +/*
> + * css_msch: enable subchannel and set with specified ISC

"css_enable: enable the subchannel with the specified ISC"

?

> + * @schid: Subchannel Identifier
> + * @isc  : number of the interruption subclass to use
> + * Return value:
> + *   On success: 0
> + *   On error the CC of the faulty instruction
> + *      or -1 if the retry count is exceeded.
> + */
> +int css_enable(int schid, int isc)
> +{
> +	struct pmcw *pmcw = &schib.pmcw;
> +	int retry_count = 0;
> +	uint16_t flags;
> +	int cc;
> +
> +	/* Read the SCHIB for this subchannel */
> +	cc = stsch(schid, &schib);
> +	if (cc) {
> +		report_info("stsch: sch %08x failed with cc=%d", schid, cc);
> +		return cc;
> +	}
> +
> +	flags = PMCW_ENABLE | (isc << PMCW_ISC_SHIFT);
> +	if ((pmcw->flags & flags) == flags) {

I think you want (pmcw->flags & PMCW_ENABLE) == PMCW_ENABLE -- this
catches the case of "subchannel has been enabled before, but with a
different isc".

> +		report_info("stsch: sch %08x already enabled", schid);
> +		return 0;
> +	}

(...)

  reply	other threads:[~2020-07-09 11:41 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-09  8:07 [kvm-unit-tests PATCH v11 0/9] s390x: Testing the Channel Subsystem I/O Pierre Morel
2020-07-09  8:07 ` [kvm-unit-tests PATCH v11 1/9] s390x: saving regs for interrupts Pierre Morel
2020-07-09  8:07 ` [kvm-unit-tests PATCH v11 2/9] s390x: I/O interrupt registration Pierre Morel
2020-07-09  8:07 ` [kvm-unit-tests PATCH v11 3/9] s390x: export the clock get_clock_ms() utility Pierre Morel
2020-07-09  8:07 ` [kvm-unit-tests PATCH v11 4/9] s390x: clock and delays calculations Pierre Morel
2020-07-09  8:07 ` [kvm-unit-tests PATCH v11 5/9] s390x: define function to wait for interrupt Pierre Morel
2020-07-09  8:07 ` [kvm-unit-tests PATCH v11 6/9] s390x: Library resources for CSS tests Pierre Morel
2020-07-09  8:07 ` [kvm-unit-tests PATCH v11 7/9] s390x: css: stsch, enumeration test Pierre Morel
2020-07-09  8:07 ` [kvm-unit-tests PATCH v11 8/9] s390x: css: msch, enable test Pierre Morel
2020-07-09 11:40   ` Cornelia Huck [this message]
2020-07-09 13:12     ` Pierre Morel
2020-07-09 13:30       ` Cornelia Huck
2020-07-09 13:41         ` Pierre Morel
2020-07-09 13:52           ` Cornelia Huck
2020-07-09 13:58             ` Pierre Morel
2020-07-09 14:22               ` Cornelia Huck
2020-07-09 14:38                 ` Pierre Morel
2020-07-09  8:07 ` [kvm-unit-tests PATCH v11 9/9] s390x: css: ssch/tsch with sense and interrupt Pierre Morel
2020-07-09 12:13   ` Cornelia Huck
2020-07-09 13:18     ` Pierre Morel
2020-07-09 13:33       ` Cornelia Huck
2020-07-09 13:38         ` 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=20200709134056.0d267b6c.cohuck@redhat.com \
    --to=cohuck@redhat.com \
    --cc=david@redhat.com \
    --cc=drjones@redhat.com \
    --cc=frankja@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-s390@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.