public inbox for linux-s390@vger.kernel.org
 help / color / mirror / Atom feed
From: Janosch Frank <frankja@linux.ibm.com>
To: Claudio Imbrenda <imbrenda@linux.ibm.com>, kvm@vger.kernel.org
Cc: linux-s390@vger.kernel.org, scgl@linux.ibm.com,
	borntraeger@de.ibm.com, pmorel@linux.ibm.com,
	pasic@linux.ibm.com, nrb@linux.ibm.com, thuth@redhat.com,
	david@redhat.com
Subject: Re: [kvm-unit-tests PATCH v1 3/4] lib: s390x: functions for machine models
Date: Thu, 31 Mar 2022 17:21:08 +0200	[thread overview]
Message-ID: <5e81b55b-4dc9-d708-2526-9eccbbc28659@linux.ibm.com> (raw)
In-Reply-To: <20220330144339.261419-4-imbrenda@linux.ibm.com>

On 3/30/22 16:43, Claudio Imbrenda wrote:
> * move existing macros for machine models to hardware.h
> * add macros for all known machine models
> * add machine_is_* functions

While I appreciate the effort that you put into this I question the need 
to check for anything below z13 right now.

I'd suggest we cut down this patch to the move of the z15 defines and be 
done with it for now.

> ---
>   lib/s390x/asm/arch_def.h |  3 --
>   lib/s390x/hardware.h     | 82 ++++++++++++++++++++++++++++++++++++++++
>   s390x/uv-host.c          |  4 +-
>   3 files changed, 84 insertions(+), 5 deletions(-)
> 
> diff --git a/lib/s390x/asm/arch_def.h b/lib/s390x/asm/arch_def.h
> index 40626d72..8d860ccf 100644
> --- a/lib/s390x/asm/arch_def.h
> +++ b/lib/s390x/asm/arch_def.h
> @@ -219,9 +219,6 @@ static inline unsigned short stap(void)
>   	return cpu_address;
>   }
>   
> -#define MACHINE_Z15A	0x8561
> -#define MACHINE_Z15B	0x8562
> -
>   static inline uint16_t get_machine_id(void)
>   {
>   	uint64_t cpuid;
> diff --git a/lib/s390x/hardware.h b/lib/s390x/hardware.h
> index 93f817ca..fb6565ad 100644
> --- a/lib/s390x/hardware.h
> +++ b/lib/s390x/hardware.h
> @@ -13,6 +13,25 @@
>   #define _S390X_HARDWARE_H_
>   #include <asm/arch_def.h>
>   
> +#define MACHINE_Z900	0x2064
> +#define MACHINE_Z800	0x2066
> +#define MACHINE_Z990	0x2084
> +#define MACHINE_Z890	0x2086
> +#define MACHINE_Z9EC	0x2094
> +#define MACHINE_Z9BC	0x2096
> +#define MACHINE_Z10EC	0x2097
> +#define MACHINE_Z10BC	0x2098
> +#define MACHINE_Z196	0x2817
> +#define MACHINE_Z114	0x2818
> +#define MACHINE_ZEC12	0x2827
> +#define MACHINE_ZBC12	0x2828
> +#define MACHINE_Z13	0x2964
> +#define MACHINE_Z13S	0x2965
> +#define MACHINE_Z14	0x3906
> +#define MACHINE_Z14ZR1	0x3907
> +#define MACHINE_Z15	0x8561
> +#define MACHINE_Z15T02	0x8562
> +
>   enum s390_host {
>   	HOST_IS_UNKNOWN,
>   	HOST_IS_LPAR,
> @@ -44,4 +63,67 @@ static inline bool host_is_zvm6(void)
>   	return detect_host() == HOST_IS_ZVM6;
>   }
>   
> +static inline bool machine_is_z900(void)
> +{
> +	uint16_t machine = get_machine_id();
> +
> +	return machine == MACHINE_Z900 || machine == MACHINE_Z800;
> +}
> +
> +static inline bool machine_is_z990(void)
> +{
> +	uint16_t machine = get_machine_id();
> +
> +	return machine == MACHINE_Z990 || machine == MACHINE_Z890;
> +}
> +
> +static inline bool machine_is_z9(void)
> +{
> +	uint16_t machine = get_machine_id();
> +
> +	return machine == MACHINE_Z9EC || machine == MACHINE_Z9BC;
> +}
> +
> +static inline bool machine_is_z10(void)
> +{
> +	uint16_t machine = get_machine_id();
> +
> +	return machine == MACHINE_Z10EC || machine == MACHINE_Z10BC;
> +}
> +
> +static inline bool machine_is_z1xx(void)
> +{
> +	uint16_t machine = get_machine_id();
> +
> +	return machine == MACHINE_Z196 || machine == MACHINE_Z114;
> +}
> +
> +static inline bool machine_is_z12(void)
> +{
> +	uint16_t machine = get_machine_id();
> +
> +	return machine == MACHINE_ZEC12 || machine == MACHINE_ZBC12;
> +}
> +
> +static inline bool machine_is_z13(void)
> +{
> +	uint16_t machine = get_machine_id();
> +
> +	return machine == MACHINE_Z13 || machine == MACHINE_Z13S;
> +}
> +
> +static inline bool machine_is_z14(void)
> +{
> +	uint16_t machine = get_machine_id();
> +
> +	return machine == MACHINE_Z14 || machine == MACHINE_Z14ZR1;
> +}
> +
> +static inline bool machine_is_z15(void)
> +{
> +	uint16_t machine = get_machine_id();
> +
> +	return machine == MACHINE_Z15 || machine == MACHINE_Z15T02;
> +}
> +
>   #endif  /* _S390X_HARDWARE_H_ */
> diff --git a/s390x/uv-host.c b/s390x/uv-host.c
> index de2e4850..d3018e3c 100644
> --- a/s390x/uv-host.c
> +++ b/s390x/uv-host.c
> @@ -9,6 +9,7 @@
>    */
>   
>   #include <libcflat.h>
> +#include <hardware.h>
>   #include <alloc.h>
>   #include <vmalloc.h>
>   #include <sclp.h>
> @@ -111,7 +112,6 @@ static void test_config_destroy(void)
>   static void test_cpu_destroy(void)
>   {
>   	int rc;
> -	uint16_t machineid = get_machine_id();
>   	struct uv_cb_nodata uvcb = {
>   		.header.len = sizeof(uvcb),
>   		.header.cmd = UVC_CMD_DESTROY_SEC_CPU,
> @@ -126,7 +126,7 @@ static void test_cpu_destroy(void)
>   	       "hdr invalid length");
>   	uvcb.header.len += 8;
>   
> -	if (machineid != MACHINE_Z15A && machineid != MACHINE_Z15B) {
> +	if (!machine_is_z15()) {
>   		uvcb.handle += 1;
>   		rc = uv_call(0, (uint64_t)&uvcb);
>   		report(rc == 1 && uvcb.header.rc == UVC_RC_INV_CHANDLE, "invalid handle");


  reply	other threads:[~2022-03-31 15:21 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-30 14:43 [kvm-unit-tests PATCH v1 0/4] lib: s390x: Refactor and rename vm.[ch] Claudio Imbrenda
2022-03-30 14:43 ` [kvm-unit-tests PATCH v1 1/4] s390x: remove spurious includes Claudio Imbrenda
2022-03-31 15:04   ` Janosch Frank
2022-03-30 14:43 ` [kvm-unit-tests PATCH v1 2/4] lib: s390: rename and refactor vm.[ch] Claudio Imbrenda
2022-03-31 15:15   ` Janosch Frank
2022-03-30 14:43 ` [kvm-unit-tests PATCH v1 3/4] lib: s390x: functions for machine models Claudio Imbrenda
2022-03-31 15:21   ` Janosch Frank [this message]
2022-03-30 14:43 ` [kvm-unit-tests PATCH v1 4/4] lib: s390x: stidp wrapper and move get_machine_id Claudio Imbrenda
2022-03-31 15:24   ` 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=5e81b55b-4dc9-d708-2526-9eccbbc28659@linux.ibm.com \
    --to=frankja@linux.ibm.com \
    --cc=borntraeger@de.ibm.com \
    --cc=david@redhat.com \
    --cc=imbrenda@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=nrb@linux.ibm.com \
    --cc=pasic@linux.ibm.com \
    --cc=pmorel@linux.ibm.com \
    --cc=scgl@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox