All of lore.kernel.org
 help / color / mirror / Atom feed
From: Claudio Imbrenda <imbrenda@linux.ibm.com>
To: Janosch Frank <frankja@linux.ibm.com>
Cc: kvm@vger.kernel.org, linux-s390@vger.kernel.org,
	david@redhat.com, thuth@redhat.com, cohuck@redhat.com
Subject: Re: [kvm-unit-tests PATCH 1/4] s390x: sie: Add sie lib validity handling
Date: Thu, 29 Jul 2021 16:42:45 +0200	[thread overview]
Message-ID: <20210729164245.6536e73c@p-imbrenda> (raw)
In-Reply-To: <9847c3cc-2cfe-e4db-5495-ca259ff3c982@linux.ibm.com>

On Thu, 29 Jul 2021 16:33:31 +0200
Janosch Frank <frankja@linux.ibm.com> wrote:

> On 7/29/21 4:11 PM, Claudio Imbrenda wrote:
> > On Thu, 29 Jul 2021 13:48:00 +0000
> > Janosch Frank <frankja@linux.ibm.com> wrote:
> >   
> >> Let's start off the SIE lib with validity handling code since that
> >> has the least amount of dependencies to other files.
> >>
> >> Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
> >> ---
> >>  lib/s390x/sie.c  | 41 +++++++++++++++++++++++++++++++++++++++++
> >>  lib/s390x/sie.h  |  3 +++
> >>  s390x/Makefile   |  1 +
> >>  s390x/mvpg-sie.c |  2 +-
> >>  s390x/sie.c      |  7 +------
> >>  5 files changed, 47 insertions(+), 7 deletions(-)
> >>  create mode 100644 lib/s390x/sie.c
> >>
> >> diff --git a/lib/s390x/sie.c b/lib/s390x/sie.c
> >> new file mode 100644
> >> index 00000000..9107519f
> >> --- /dev/null
> >> +++ b/lib/s390x/sie.c
> >> @@ -0,0 +1,41 @@
> >> +/* SPDX-License-Identifier: GPL-2.0-only */
> >> +/*
> >> + * Virtualization library that speeds up managing guests.
> >> + *
> >> + * Copyright (c) 2021 IBM Corp
> >> + *
> >> + * Authors:
> >> + *  Janosch Frank <frankja@linux.ibm.com>
> >> + */
> >> +
> >> +#include <asm/barrier.h>
> >> +#include <libcflat.h>
> >> +#include <sie.h>
> >> +
> >> +static bool validity_expected;
> >> +static uint16_t vir;
> >> +
> >> +void sie_expect_validity(void)
> >> +{
> >> +	validity_expected = true;
> >> +	vir = 0;
> >> +}
> >> +
> >> +void sie_check_validity(uint16_t vir_exp)
> >> +{
> >> +	report(vir_exp == vir, "VALIDITY: %x", vir);
> >> +	mb();  
> > 
> > why the barrier?  
> 
> That's left over, I'll remove it.

with the barrier removed:

Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>

> >   
> >> +	vir = 0;
> >> +}
> >> +
> >> +void sie_handle_validity(struct vm *vm)
> >> +{
> >> +	if (vm->sblk->icptcode != ICPT_VALIDITY)
> >> +		return;
> >> +
> >> +	vir = vm->sblk->ipb >> 16;
> >> +
> >> +	if (!validity_expected)
> >> +		report_abort("VALIDITY: %x", vir);
> >> +	validity_expected = false;
> >> +}
> >> diff --git a/lib/s390x/sie.h b/lib/s390x/sie.h
> >> index 6ba858a2..7ff98d2d 100644
> >> --- a/lib/s390x/sie.h
> >> +++ b/lib/s390x/sie.h
> >> @@ -197,5 +197,8 @@ struct vm {
> >>  extern void sie_entry(void);
> >>  extern void sie_exit(void);
> >>  extern void sie64a(struct kvm_s390_sie_block *sblk, struct
> >> vm_save_area *save_area); +void sie_expect_validity(void);
> >> +void sie_check_validity(uint16_t vir_exp);
> >> +void sie_handle_validity(struct vm *vm);
> >>  
> >>  #endif /* _S390X_SIE_H_ */
> >> diff --git a/s390x/Makefile b/s390x/Makefile
> >> index 6565561b..ef8041a6 100644
> >> --- a/s390x/Makefile
> >> +++ b/s390x/Makefile
> >> @@ -71,6 +71,7 @@ cflatobjs += lib/s390x/css_dump.o
> >>  cflatobjs += lib/s390x/css_lib.o
> >>  cflatobjs += lib/s390x/malloc_io.o
> >>  cflatobjs += lib/s390x/uv.o
> >> +cflatobjs += lib/s390x/sie.o
> >>  
> >>  OBJDIRS += lib/s390x
> >>  
> >> diff --git a/s390x/mvpg-sie.c b/s390x/mvpg-sie.c
> >> index 5e70f591..2ac91eec 100644
> >> --- a/s390x/mvpg-sie.c
> >> +++ b/s390x/mvpg-sie.c
> >> @@ -39,7 +39,7 @@ static void sie(struct vm *vm)
> >>  
> >>  	while (vm->sblk->icptcode == 0) {
> >>  		sie64a(vm->sblk, &vm->save_area);
> >> -		assert(vm->sblk->icptcode != ICPT_VALIDITY);
> >> +		sie_handle_validity(vm);
> >>  	}
> >>  	vm->save_area.guest.grs[14] = vm->sblk->gg14;
> >>  	vm->save_area.guest.grs[15] = vm->sblk->gg15;
> >> diff --git a/s390x/sie.c b/s390x/sie.c
> >> index 134d3c4f..5c798a9e 100644
> >> --- a/s390x/sie.c
> >> +++ b/s390x/sie.c
> >> @@ -24,17 +24,12 @@ static u8 *guest;
> >>  static u8 *guest_instr;
> >>  static struct vm vm;
> >>  
> >> -static void handle_validity(struct vm *vm)
> >> -{
> >> -	report(0, "VALIDITY: %x", vm->sblk->ipb >> 16);
> >> -}
> >>  
> >>  static void sie(struct vm *vm)
> >>  {
> >>  	while (vm->sblk->icptcode == 0) {
> >>  		sie64a(vm->sblk, &vm->save_area);
> >> -		if (vm->sblk->icptcode == ICPT_VALIDITY)
> >> -			handle_validity(vm);
> >> +		sie_handle_validity(vm);
> >>  	}
> >>  	vm->save_area.guest.grs[14] = vm->sblk->gg14;
> >>  	vm->save_area.guest.grs[15] = vm->sblk->gg15;  
> >   
> 


  reply	other threads:[~2021-07-29 14:43 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-29 13:47 [kvm-unit-tests PATCH 0/4] s390x: SIE cleanup 2 Janosch Frank
2021-07-29 13:48 ` [kvm-unit-tests PATCH 1/4] s390x: sie: Add sie lib validity handling Janosch Frank
2021-07-29 14:11   ` Claudio Imbrenda
2021-07-29 14:33     ` Janosch Frank
2021-07-29 14:42       ` Claudio Imbrenda [this message]
2021-07-30 14:45   ` Thomas Huth
2021-08-03 13:47     ` Janosch Frank
2021-08-03 13:57   ` [kvm-unit-tests PATCH v2] " Janosch Frank
2021-08-03 14:47     ` Thomas Huth
2021-07-29 13:48 ` [kvm-unit-tests PATCH 2/4] s390x: lib: Introduce HPAGE_* constants Janosch Frank
2021-07-29 14:11   ` Claudio Imbrenda
2021-07-30 14:46   ` Thomas Huth
2021-07-29 13:48 ` [kvm-unit-tests PATCH 3/4] s390x: lib: sie: Add struct vm (de)initialization functions Janosch Frank
2021-07-29 14:21   ` Claudio Imbrenda
2021-07-29 14:32     ` Janosch Frank
2021-07-30 14:52   ` Thomas Huth
2021-07-29 13:48 ` [kvm-unit-tests PATCH 4/4] lib: s390x: sie: Move sie function into library Janosch Frank
2021-07-29 14:23   ` Claudio Imbrenda
2021-07-30 14:54   ` Thomas Huth

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=20210729164245.6536e73c@p-imbrenda \
    --to=imbrenda@linux.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=david@redhat.com \
    --cc=frankja@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.