From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AA8EB32C8B; Fri, 20 Feb 2026 10:07:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.158.5 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771582045; cv=none; b=m7FatU8SyDg1FpeMzWLBK6BjwsykLaA2/HVWdydwlFZyfAYOllWpSIOShfeb8P+LsJV3d6ornfP/GRnt4nrgU88Fe07ayIOiQWaZnF2ozvYVGizkXgFxKYwrOgcxHWuwmDvbIHKHdUr8oC5bRaLpG1mgG+zhLnGuwtfEuzQ719w= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1771582045; c=relaxed/simple; bh=Ibc3TAvuNI0qf94Q7fFJQ3q7ky1Xs8FrXXsuloSmEOM=; h=Message-ID:Date:MIME-Version:Subject:To:Cc:References:From: In-Reply-To:Content-Type; b=Nrh2NmksQnZgd1DvP1kIhrLXq+g87YMnd1woh6rcB810wS7HSJ9UT9OJern3KjNmjKCN8OxUkzwqptMfc8EALRoryQgKAY6SuNLGRJjtNqM4Xxp+bxXmSd3WxvEjz6NNec6XjtVFxcAxwKD8Jm/zVq95fSLdOAh3GBY8nI29PcE= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com; spf=pass smtp.mailfrom=linux.ibm.com; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b=osituTUF; arc=none smtp.client-ip=148.163.158.5 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linux.ibm.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ibm.com header.i=@ibm.com header.b="osituTUF" Received: from pps.filterd (m0353725.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 61JLjUqC1271274; Fri, 20 Feb 2026 10:07:23 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to; s=pp1; bh=SFfCFS yiYSXckpPmQKrTcIqCcB1uoEEniETC1hKkCIQ=; b=osituTUFPvF5XjEu9HQqqm 7YoUqrg38mlWwyPohRPXdF5YzkNd6WQokwMXKZVR+ljmicmF+uo5vqjO7NYRJeS5 uhaw70pp0RKVVBVzaXYctpSEwZPK70AlrxFIv4EnLWXyt7Jm1cxION4YIwrJy7eM S41Fc0dx/tTlvGU/Nedn+C9r3JhPAUaG2AHccf785tQs679nHFcj49AGHL7fiFJ8 IF7JKtpMOiK5afxKMIxc4WUHCmE8/iAiPEZ0Hj3IOGrd1fSNY5c0CzzqlBvOHxp4 6MUsFLTmfzbm9trMqkiDPqetVIA2b3hOXCotagnOQaUNiRCUU7o/CvYH8I3bj3iQ == Received: from ppma11.dal12v.mail.ibm.com (db.9e.1632.ip4.static.sl-reverse.com [50.22.158.219]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4caj4kryr1-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 20 Feb 2026 10:07:23 +0000 (GMT) Received: from pps.filterd (ppma11.dal12v.mail.ibm.com [127.0.0.1]) by ppma11.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 61K9ZRgI030217; Fri, 20 Feb 2026 10:07:22 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma11.dal12v.mail.ibm.com (PPS) with ESMTPS id 4ccb45fy1k-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 20 Feb 2026 10:07:22 +0000 Received: from smtpav07.fra02v.mail.ibm.com (smtpav07.fra02v.mail.ibm.com [10.20.54.106]) by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 61KA7IZS42664288 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 20 Feb 2026 10:07:19 GMT Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id DF19020071; Fri, 20 Feb 2026 10:07:18 +0000 (GMT) Received: from smtpav07.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5C0D72006A; Fri, 20 Feb 2026 10:07:18 +0000 (GMT) Received: from [9.111.87.59] (unknown [9.111.87.59]) by smtpav07.fra02v.mail.ibm.com (Postfix) with ESMTP; Fri, 20 Feb 2026 10:07:18 +0000 (GMT) Message-ID: Date: Fri, 20 Feb 2026 11:07:18 +0100 Precedence: bulk X-Mailing-List: kvm@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 4/4] KVM: s390: vsie: Implement ASTFLEIE facility 2 To: Christoph Schlameuss , linux-s390@vger.kernel.org Cc: Christian Borntraeger , Claudio Imbrenda , Heiko Carstens , Vasily Gorbik , Alexander Gordeev , Sven Schnelle , Hendrik Brueckner , Nina Schoetterl-Glausch , kvm@vger.kernel.org References: <20260212-vsie-alter-stfle-fac-v1-0-d772be74a4da@linux.ibm.com> <20260212-vsie-alter-stfle-fac-v1-4-d772be74a4da@linux.ibm.com> Content-Language: en-US From: Janosch Frank Autocrypt: addr=frankja@linux.ibm.com; keydata= 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 In-Reply-To: <20260212-vsie-alter-stfle-fac-v1-4-d772be74a4da@linux.ibm.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwMjIwMDA4NCBTYWx0ZWRfX2NoMqonqINLP EaRRyKAMQLN7R7BnG88tOtyC6JhOY2IOSWuqgyq0C7BGX46nP3MS4fTn6rwYbRBZEArpxDNZO+I DSVsLxYeIojQoFzbGjvnsNnkO/3M7TfYTFSBSyE1mpIVyHQMpIdj1jCxfCr5HMcuBll4Ehz1pue F/GyGf+W0yuNl2USWdMegGc3kDUIVw1/5Ar3MrLNg7yF8vVxi+XYiczWuY2OYmDBvsbV3HijJM0 RZM4y1qVxI+Gia41NTmo++Zs3cm9k0h8s/fmdkd/cQZBtXhw9DaxqDg2XfSYPeVPNJvuZgadlYM gM1DFT7fPlQeyWH2G4rVoKZsDCO7lEjyHdqsRaKhHBC9mXTXOO+3S/WvnqiB48A90nSd3/wp4mx Ps1ePQrZuxtqJGD/nIFUbo2cbU+i9c8kZqgzUe43R0GsOxeiDx5PYbwwctz2gjVIWOqaJvW/i1V vXNQs3EfhyBKMtjAmuA== X-Proofpoint-ORIG-GUID: Z5Ev3OsYegN6SH5SBeTrID7fncXv5IK2 X-Proofpoint-GUID: Z5Ev3OsYegN6SH5SBeTrID7fncXv5IK2 X-Authority-Analysis: v=2.4 cv=M7hA6iws c=1 sm=1 tr=0 ts=6998325b cx=c_pps a=aDMHemPKRhS1OARIsFnwRA==:117 a=aDMHemPKRhS1OARIsFnwRA==:17 a=IkcTkHD0fZMA:10 a=HzLeVaNsDn8A:10 a=VkNPw1HP01LnGYTKEx00:22 a=Mpw57Om8IfrbqaoTuvik:22 a=GgsMoib0sEa3-_RKJdDe:22 a=VnNF1IyMAAAA:8 a=2RXC6-HPI0MhK04gqZUA:9 a=QEXdDO2ut3YA:10 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-02-20_01,2026-02-20_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 spamscore=0 malwarescore=0 lowpriorityscore=0 clxscore=1015 phishscore=0 impostorscore=0 suspectscore=0 priorityscore=1501 adultscore=0 bulkscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2601150000 definitions=main-2602200084 On 2/12/26 10:24, Christoph Schlameuss wrote: > From: Nina Schoetterl-Glausch > > 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 > Co-developed-by: Christoph Schlameuss > Signed-off-by: Christoph Schlameuss > --- [...] > +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. > + 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? > + 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; >