Re: [PATCH v2 4/4] KVM: s390: vsie: Implement ASTFLEIE facility 2

Janosch Frank
2026-04-22T13:02:22Z

On 2/26/26 13:49, Christoph Schlameuss wrote:
> From: Nina Schoetterl-Glausch <nsg@linux.ibm.com>
>
> Implement shadowing of format-2 facility list when running in VSIE.
>
> ASTFLEIE2 is available since IBM z16.
> To function G1 has to run this KVM code and G1 and G2 have to run QEMU
> with ASTFLEIE2 support.
>
> Signed-off-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com>
> Co-developed-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
> Signed-off-by: Christoph Schlameuss <schlameuss@linux.ibm.com>
> ---
> arch/s390/include/asm/kvm_host.h | 7 +++++++
> arch/s390/kvm/kvm-s390.c | 2 ++
> arch/s390/kvm/vsie.c | 34 ++++++++++++++++++++++++++++++----
> 3 files changed, 39 insertions(+), 4 deletions(-)
>
> diff --git a/arch/s390/include/asm/kvm_host.h b/arch/s390/include/asm/kvm_host.h
> index 23d17700319a5ef2031eabcad34b6191d1ef9b21..89a797e436336b9671119d93b02f3b39b0ed45e6 100644
> --- a/arch/s390/include/asm/kvm_host.h
> +++ b/arch/s390/include/asm/kvm_host.h
> @@ -506,6 +506,13 @@ struct kvm_s390_cpu_model {
> struct kvm_s390_vm_cpu_uv_feat uv_feat_guest;
> };
>
> +#define S390_ARCH_FAC_FORMAT_2 2
> +struct kvm_s390_f2_flcb {

Time to bikeshed.
I think the format should be at the end and we should name it like we
named the apcbs.

kvm_s390_flcb2

[...]

> static_assert(sizeof(struct vsie_page) == PAGE_SIZE);
> @@ -999,6 +999,28 @@ static int handle_stfle_0(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page,
> return 0;
> }
>
> +static int handle_stfle_2(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page, u32 fac_list_origin)
> +{
> + struct kvm_s390_f2_flcb *flcb_s = (struct kvm_s390_f2_flcb *)vsie_page->fac;
> + struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s;
> + u64 len;
> +
> + if (read_guest_real(vcpu, fac_list_origin, &len, sizeof(len)))
> + return set_validity_icpt(scb_s, 0x1090U);
> +
> + /* discard reserved bits */
> + len = (len & U8_MAX);

Was that the reason why we needed to include stddef.h?

I don't see functional problems.