Re: [PATCH v2 09/10] s390x: smp: Add restart when running test

David Hildenbrand
2020-04-24T10:13:25Z

On 23.04.20 11:10, Janosch Frank wrote:
> Let's make sure we can restart a cpu that is already running.
> Restarting it if it is stopped is implicitely tested by the the other
> restart calls in the smp test.
>
> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
> Reviewed-by: Cornelia Huck <cohuck@redhat.com>
> ---
> s390x/smp.c | 29 +++++++++++++++++++++++++++++
> 1 file changed, 29 insertions(+)
>
> diff --git a/s390x/smp.c b/s390x/smp.c
> index 48321f4..35ca9c7 100644
> --- a/s390x/smp.c
> +++ b/s390x/smp.c
> @@ -52,6 +52,34 @@ static void test_start(void)
> report(1, "start");
> }
>
> +/*
> + * Does only test restart when the target is running.
> + * The other tests do restarts when stopped multiple times already.
> + */
> +static void test_restart(void)
> +{
> + struct cpu *cpu = smp_cpu_from_addr(1);
> + struct lowcore *lc = cpu->lowcore;
> +
> + lc->restart_new_psw.mask = extract_psw_mask();
> + lc->restart_new_psw.addr = (unsigned long)test_func;
> +
> + /* Make sure cpu is running */
> + smp_cpu_stop(0);
> + set_flag(0);
> + smp_cpu_restart(1);
> + wait_for_flag();
> +
> + /*
> + * Wait until cpu 1 has set the flag because it executed the
> + * restart function.
> + */
> + set_flag(0);
> + smp_cpu_restart(1);
> + wait_for_flag();
> + report(1, "restart while running");
> +}
> +
> static void test_stop(void)
> {
> smp_cpu_stop(1);
> @@ -295,6 +323,7 @@ int main(void)
> smp_cpu_stop(1);
>
> test_start();
> + test_restart();
> test_stop();
> test_stop_store_status();
> test_store_status();
>

Reviewed-by: David Hildenbrand <david@redhat.com>

--
Thanks,

David / dhildenb