All of lore.kernel.org
 help / color / mirror / Atom feed
From: Janosch Frank <frankja@linux.ibm.com>
To: Eric Farman <farman@linux.ibm.com>,
	Thomas Huth <thuth@redhat.com>,
	Claudio Imbrenda <imbrenda@linux.ibm.com>
Cc: David Hildenbrand <david@redhat.com>,
	kvm@vger.kernel.org, linux-s390@vger.kernel.org
Subject: Re: [PATCH kvm-unit-tests v1 3/6] s390x: smp: Fix checks for SIGP STOP STORE STATUS
Date: Fri, 4 Mar 2022 11:40:22 +0100	[thread overview]
Message-ID: <fcacf11f-6469-8c70-9db5-0bb55e77fcdf@linux.ibm.com> (raw)
In-Reply-To: <20220303210425.1693486-4-farman@linux.ibm.com>

On 3/3/22 22:04, Eric Farman wrote:
> In the routine test_stop_store_status(), the "running" part of
> the test checks a few of the fields in lowcore (to verify the
> "STORE STATUS" part of the SIGP order), and then ensures that
> the CPU has stopped. But this is backwards, and leads to false
> errors.
> 
> According to the Principles of Operation:
>    The addressed CPU performs the stop function, fol-
>    lowed by the store-status operation (see “Store Sta-
>    tus” on page 4-82).
> 
> By checking the results how they are today, the contents of
> the lowcore fields are unreliable until the CPU is stopped.
> Thus, check that the CPU is stopped first, before ensuring
> that the STORE STATUS was performed correctly.

The results are undefined until the cpu is not busy via SIGP sense, no?
You cover that via doing the smp_cpu_stopped() check since that does a 
sigp sense.

Where the stop check is located doesn't really matter since the library 
waits until the cpu is stopped and it does that via smp_cpu_stopped()


So:
Are we really fixing something here?

Please improve the commit description.
For me this looks more like making checks more explicit and symmetrical 
which I'm generally ok with. We just need to specify correctly why we're 
doing that.

> 
> While here, add the same check to the second part of the test,
> even though the CPU is explicitly stopped prior to the SIGP.
> 
> Fixes: fc67b07a4 ("s390x: smp: Test stop and store status on a running and stopped cpu")
> Signed-off-by: Eric Farman <farman@linux.ibm.com>
> ---
>   s390x/smp.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/s390x/smp.c b/s390x/smp.c
> index 2f4af820..50811bd0 100644
> --- a/s390x/smp.c
> +++ b/s390x/smp.c
> @@ -98,9 +98,9 @@ static void test_stop_store_status(void)
>   	lc->grs_sa[15] = 0;
>   	smp_cpu_stop_store_status(1);
>   	mb();
> +	report(smp_cpu_stopped(1), "cpu stopped");
>   	report(lc->prefix_sa == (uint32_t)(uintptr_t)cpu->lowcore, "prefix");
>   	report(lc->grs_sa[15], "stack");
> -	report(smp_cpu_stopped(1), "cpu stopped");
>   	report_prefix_pop();
>   
>   	report_prefix_push("stopped");
> @@ -108,6 +108,7 @@ static void test_stop_store_status(void)
>   	lc->grs_sa[15] = 0;
>   	smp_cpu_stop_store_status(1);
>   	mb();
> +	report(smp_cpu_stopped(1), "cpu stopped");
>   	report(lc->prefix_sa == (uint32_t)(uintptr_t)cpu->lowcore, "prefix");
>   	report(lc->grs_sa[15], "stack");
>   	report_prefix_pop();


  reply	other threads:[~2022-03-04 10:40 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-03 21:04 [PATCH kvm-unit-tests v1 0/6] s390x: SIGP fixes Eric Farman
2022-03-03 21:04 ` [PATCH kvm-unit-tests v1 1/6] lib: s390x: smp: Retry SIGP SENSE on CC2 Eric Farman
2022-03-07 11:50   ` Nico Boehr
2022-03-07 15:20   ` Claudio Imbrenda
2022-03-03 21:04 ` [PATCH kvm-unit-tests v1 2/6] s390x: smp: Test SIGP RESTART against stopped CPU Eric Farman
2022-03-04 10:43   ` Janosch Frank
2022-03-04 14:20     ` Eric Farman
2022-03-07 12:42   ` Nico Boehr
2022-03-07 15:22   ` Claudio Imbrenda
2022-03-03 21:04 ` [PATCH kvm-unit-tests v1 3/6] s390x: smp: Fix checks for SIGP STOP STORE STATUS Eric Farman
2022-03-04 10:40   ` Janosch Frank [this message]
2022-03-04 14:38     ` Eric Farman
2022-03-07 18:30       ` Eric Farman
2022-03-03 21:04 ` [PATCH kvm-unit-tests v1 4/6] s390x: smp: Create and use a non-waiting CPU stop Eric Farman
2022-03-07 13:31   ` Nico Boehr
2022-03-07 19:01     ` Eric Farman
2022-03-07 15:30   ` Claudio Imbrenda
2022-03-07 19:03     ` Eric Farman
2022-03-08 10:31       ` Claudio Imbrenda
2022-03-08 21:18         ` Eric Farman
2022-03-09  9:27           ` Claudio Imbrenda
2022-03-03 21:04 ` [PATCH kvm-unit-tests v1 5/6] s390x: smp: Create and use a non-waiting CPU restart Eric Farman
2022-03-07 15:31   ` Claudio Imbrenda
2022-03-03 21:04 ` [PATCH kvm-unit-tests v1 6/6] lib: s390x: smp: Convert remaining smp_sigp to _retry Eric Farman
2022-03-04 10:56   ` Janosch Frank
2022-03-04 14:15     ` Eric Farman
2022-03-07 14:42     ` Nico Boehr
2022-03-07 20:15       ` Eric Farman
2022-03-08  9:03         ` Janosch Frank

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=fcacf11f-6469-8c70-9db5-0bb55e77fcdf@linux.ibm.com \
    --to=frankja@linux.ibm.com \
    --cc=david@redhat.com \
    --cc=farman@linux.ibm.com \
    --cc=imbrenda@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --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.