All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Christoph Schlameuss" <schlameuss@linux.ibm.com>
To: "Janosch Frank" <frankja@linux.ibm.com>,
	"Christoph Schlameuss" <schlameuss@linux.ibm.com>,
	<linux-s390@vger.kernel.org>
Cc: "Christian Borntraeger" <borntraeger@linux.ibm.com>,
	"Claudio Imbrenda" <imbrenda@linux.ibm.com>,
	"Heiko Carstens" <hca@linux.ibm.com>,
	"Vasily Gorbik" <gor@linux.ibm.com>,
	"Alexander Gordeev" <agordeev@linux.ibm.com>,
	"Sven Schnelle" <svens@linux.ibm.com>,
	"Hendrik Brueckner" <brueckner@linux.ibm.com>,
	"Nina Schoetterl-Glausch" <nsg@linux.ibm.com>,
	<kvm@vger.kernel.org>
Subject: Re: [PATCH 4/4] KVM: s390: vsie: Implement ASTFLEIE facility 2
Date: Tue, 24 Feb 2026 10:59:22 +0100	[thread overview]
Message-ID: <DGN3R8SWDO7Q.1HPQ9C03X4YUJ@linux.ibm.com> (raw)
In-Reply-To: <ee72e730-87f2-439e-b6a6-2f153ec055af@linux.ibm.com>

On Fri Feb 20, 2026 at 11:07 AM CET, Janosch Frank wrote:
> On 2/12/26 10:24, 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>
>> ---
>
> [...]
>
>> +static int handle_stfle_2(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page,
>> +			  u32 fac_list_origin)
>> +{
>> +	struct kvm_s390_sie_block *scb_s = &vsie_page->scb_s;
>> +	u8 *shadow_fac = &vsie_page->fac[0];
>> +	u64 len;
>> +
>> +	if (read_guest_real(vcpu, fac_list_origin, &len, sizeof(len)))
>> +		return set_validity_icpt(scb_s, 0x1090U);
>> +	fac_list_origin += sizeof(len);
>> +	len = (len & 0xff);
>> +	memcpy(shadow_fac, &len, sizeof(len)); /* discard reserved bits */
>> +	shadow_fac += sizeof(len);
>
> You can choose between adding a struct for the new format and what you 
> did here. Is this really the better option?
>
>
> Add the struct and add a constant for the format 2 format control used 
> in the second to last line of this function while you're at it.
>

Will do.

>> +	len += 1;
>> +	/* assert no overflow with maximum len */
>> +	BUILD_BUG_ON(sizeof(vsie_page->fac) < 257 * sizeof(u64));> +	if (read_guest_real(vcpu, fac_list_origin, shadow_fac, len * 
> sizeof(u64)))
>> +		return set_validity_icpt(scb_s, 0x1090U);
>
> Sprinkle in some \n between the build bugs and code or just move them to 
> the top as one block.
> I'd much rather have build bugs at the top of the function than inside 
> the code.
>
>> +	BUILD_BUG_ON(!IS_ALIGNED(offsetof(struct vsie_page, fac), 8));
>
> That was already added last patch, no?
>

Yes, it was. Keeping the one in handle_stfle(). We actually can put both newly
introduced build bug macros there.

>> +	scb_s->fac = (u32)virt_to_phys(&vsie_page->fac) | 2;
>> +	return 0;
>> +}
>> +
>>   /*
>>    * Try to shadow + enable the guest 2 provided facility list.
>>    * Retry instruction execution if enabled for and provided by guest 2.
>> @@ -1057,9 +1080,11 @@ static int handle_stfle(struct kvm_vcpu *vcpu, struct vsie_page *vsie_page)
>>   		case 0:
>>   			return handle_stfle_0(vcpu, vsie_page, fac_list_origin);
>>   		case 1:
>> +			return set_validity_icpt(&vsie_page->scb_s, 0x1330U);
>>   		case 2:
>> +			return handle_stfle_2(vcpu, vsie_page, fac_list_origin);
>>   		case 3:
>> -			unreachable();
>> +			return set_validity_icpt(&vsie_page->scb_s, 0x1330U);
>>   		}
>>   	}
>>   	return 0;
>> 


      reply	other threads:[~2026-02-24  9:59 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-12  9:24 [PATCH 0/4] KVM: s390: vsie: Implement ASTFLEIE facility 2 Christoph Schlameuss
2026-02-12  9:24 ` [PATCH 1/4] KVM: s390: Minor refactor of base/ext facility lists Christoph Schlameuss
2026-02-12  9:24 ` [PATCH 2/4] s390/sclp: Detect ASTFLEIE 2 facility Christoph Schlameuss
2026-02-18 12:12   ` Janosch Frank
2026-02-26 10:52   ` Hendrik Brueckner
2026-02-12  9:24 ` [PATCH 3/4] KVM: s390: vsie: Refactor handle_stfle Christoph Schlameuss
2026-02-20  9:19   ` Janosch Frank
2026-02-12  9:24 ` [PATCH 4/4] KVM: s390: vsie: Implement ASTFLEIE facility 2 Christoph Schlameuss
2026-02-20 10:07   ` Janosch Frank
2026-02-24  9:59     ` Christoph Schlameuss [this message]

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=DGN3R8SWDO7Q.1HPQ9C03X4YUJ@linux.ibm.com \
    --to=schlameuss@linux.ibm.com \
    --cc=agordeev@linux.ibm.com \
    --cc=borntraeger@linux.ibm.com \
    --cc=brueckner@linux.ibm.com \
    --cc=frankja@linux.ibm.com \
    --cc=gor@linux.ibm.com \
    --cc=hca@linux.ibm.com \
    --cc=imbrenda@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=nsg@linux.ibm.com \
    --cc=svens@linux.ibm.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.