Re: [kvm-unit-tests PATCH v5 4/6] s390x: css: implementing Set CHannel Monitor

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue,  9 Mar 2021 13:51:15 +0100
Pierre Morel <pmorel@xxxxxxxxxxxxx> wrote:

> We implement the call of the Set CHannel Monitor instruction,
> starting the monitoring of the all Channel Sub System, and
> initializing channel subsystem monitoring.
> 
> Initial tests report the presence of the extended measurement block
> feature, and verify the error reporting of the hypervisor for SCHM.
> 
> Signed-off-by: Pierre Morel <pmorel@xxxxxxxxxxxxx>
> Reviewed-by: Cornelia Huck <cohuck@xxxxxxxxxx>
> Acked-by: Janosch Frank <frankja@xxxxxxxxxxxxx>
> ---
>  lib/s390x/css.h     | 16 ++++++++++++++--
>  lib/s390x/css_lib.c |  4 ++--
>  s390x/css.c         | 35 +++++++++++++++++++++++++++++++++++
>  3 files changed, 51 insertions(+), 4 deletions(-)
> 
> diff --git a/lib/s390x/css.h b/lib/s390x/css.h
> index 3c50fa8..7158423 100644
> --- a/lib/s390x/css.h
> +++ b/lib/s390x/css.h
> @@ -309,6 +309,7 @@ struct chsc_scsc {
>  	uint8_t reserved[9];
>  	struct chsc_header res;
>  	uint32_t res_fmt;
> +#define CSSC_EXTENDED_MEASUREMENT_BLOCK 48
>  	uint64_t general_char[255];
>  	uint64_t chsc_char[254];
>  };
> @@ -356,8 +357,19 @@ static inline int _chsc(void *p)
>  bool chsc(void *p, uint16_t code, uint16_t len);
>  
>  #include <bitops.h>
> -#define css_general_feature(bit) test_bit_inv(bit, chsc_scsc->general_char)
> -#define css_chsc_feature(bit) test_bit_inv(bit, chsc_scsc->chsc_char)
> +#define css_test_general_feature(bit) test_bit_inv(bit, chsc_scsc->general_char)
> +#define css_test_chsc_feature(bit) test_bit_inv(bit, chsc_scsc->chsc_char)

I think the renaming belongs in patch 1?

> +
> +#define SCHM_DCTM	1 /* activate Device Connection TiMe */
> +#define SCHM_MBU	2 /* activate Measurement Block Update */
> +
> +static inline void schm(void *mbo, unsigned int flags)
> +{
> +	register void *__gpr2 asm("2") = mbo;
> +	register long __gpr1 asm("1") = flags;
> +
> +	asm("schm" : : "d" (__gpr2), "d" (__gpr1));
> +}
>  
>  bool css_enable_mb(int sid, uint64_t mb, uint16_t mbi, uint16_t flg, bool fmt1);
>  bool css_disable_mb(int schid);
> diff --git a/lib/s390x/css_lib.c b/lib/s390x/css_lib.c
> index 77b39c7..95d9a78 100644
> --- a/lib/s390x/css_lib.c
> +++ b/lib/s390x/css_lib.c
> @@ -94,7 +94,7 @@ bool get_chsc_scsc(void)
>  		return false;
>  
>  	for (i = 0, p = buffer; i < CSS_GENERAL_FEAT_BITLEN; i++) {
> -		if (css_general_feature(i)) {
> +		if (css_test_general_feature(i)) {

and here...

>  			n = snprintf(p, sizeof(buffer), "%d,", i);
>  			p += n;
>  		}
> @@ -102,7 +102,7 @@ bool get_chsc_scsc(void)
>  	report_info("General features: %s", buffer);
>  
>  	for (i = 0, p = buffer; i < CSS_CHSC_FEAT_BITLEN; i++) {
> -		if (css_chsc_feature(i)) {
> +		if (css_test_chsc_feature(i)) {

...and here.

>  			n = snprintf(p, sizeof(buffer), "%d,", i);
>  			p += n;
>  		}




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux