From nobody Sun Jun 14 08:33:52 2026 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (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 11D6D47DFBE; Wed, 1 Apr 2026 17:40:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.156.1 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775065212; cv=none; b=ohwGMIXDc/Qv/SIMNGlL+Z0USSnQT51XSNYMildaoiazS0MRCZO6rLJFNS9fJ2s+pNa8dt6ladeDsVJU0KkFw9MLdbcmFq0aEkXKSyVH5ccyfBTP/CB6G3uIndzaV3YIS7H89RzAUafQznzhe5g6vA3Ydsm9qHqOq0rUeDriYO0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775065212; c=relaxed/simple; bh=e/+5/qEEo63UXy1ywVmWm0yTTpZdsmFpd0m/57Ro5Xw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=q17Z32XJBwC20gRy1Hi72BvBcJw9QG/D8nikSrWdUHD73VKcUeqdoccQLQ6e9yGyavP/DAi9Et+enCJogPnW0BidaKeEV0AqliHJ8kJZDyKM7QCdIP74GMrgGUfEtoxHV4gMEjpamsF4MpEqtWA8VokqARhp7LVM3wb+x9bX51M= 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=e80GWXQD; arc=none smtp.client-ip=148.163.156.1 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="e80GWXQD" Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 631B7P4w4078893; Wed, 1 Apr 2026 17:40:06 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=ZSGVAYAeoKV0OpUc8 NfP2xhZ1pjTYesAxfT8FV5dGWM=; b=e80GWXQDDHaivsGm4V+giURVh2aH9upbC N/qLP9XG0TNoTp4B4YyPL+6U3hpwqO7WsUoWvG1f4KqWlU051RPeRuNt9nXf7eMY M2YzYaMJ3Tf/FtFLpiO133ICbxo3P8Qu5wggN0wdFI96CJpV1zkreIdhnrro5+Yc wTXkTN/io4wfh+3pXxSa8vNv/7dQ0M2A6bmcZm8Xf6a7InNz5PuruqUMsmH5fEoV K8s/adBoYYAr4ABpz93y8u1uUrgu93LPvyvhImGDaJZxK4yOl8UEtOm0Sz5IhQ2M GPoElBzOl8KubAF1zWyTg8hTlFPWB61YOnTioMhPqYuMNQfhUjGuA== Received: from ppma22.wdc07v.mail.ibm.com (5c.69.3da9.ip4.static.sl-reverse.com [169.61.105.92]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4d66q39e52-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 01 Apr 2026 17:40:06 +0000 (GMT) Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 631F1WNo005947; Wed, 1 Apr 2026 17:40:04 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4d6spy6ubg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 01 Apr 2026 17:40:03 +0000 Received: from smtpav04.fra02v.mail.ibm.com (smtpav04.fra02v.mail.ibm.com [10.20.54.103]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 631Hdvnf43844024 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 1 Apr 2026 17:39:57 GMT Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B905720040; Wed, 1 Apr 2026 17:39:57 +0000 (GMT) Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 1765420043; Wed, 1 Apr 2026 17:39:57 +0000 (GMT) Received: from p-imbrenda.ibmuc.com (unknown [9.111.24.224]) by smtpav04.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 1 Apr 2026 17:39:57 +0000 (GMT) From: Claudio Imbrenda To: linux-kernel@vger.kernel.org Cc: kvm@vger.kernel.org, linux-s390@vger.kernel.org, borntraeger@de.ibm.com, frankja@linux.ibm.com, nrb@linux.ibm.com, seiden@linux.ibm.com, schlameuss@linux.ibm.com, gra@linux.ibm.com, david@kernel.org Subject: [PATCH v2 1/5] KVM: s390: Add some useful mask macros Date: Wed, 1 Apr 2026 19:39:51 +0200 Message-ID: <20260401173955.314821-2-imbrenda@linux.ibm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260401173955.314821-1-imbrenda@linux.ibm.com> References: <20260401173955.314821-1-imbrenda@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-GUID: W9c7cwAbKJJ1k-arHgoKWfQl30pXRZ9i X-Authority-Analysis: v=2.4 cv=frzRpV4f c=1 sm=1 tr=0 ts=69cd5876 cx=c_pps a=5BHTudwdYE3Te8bg5FgnPg==:117 a=5BHTudwdYE3Te8bg5FgnPg==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=U7nrCbtTmkRpXpFmAIza:22 a=VnNF1IyMAAAA:8 a=Oh1pnlNaMCSVx7q4Av0A:9 X-Proofpoint-ORIG-GUID: W9c7cwAbKJJ1k-arHgoKWfQl30pXRZ9i X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE2MiBTYWx0ZWRfX/3kJ5aTtpqvm slE2i3mF1R6TTcsLvRQl0aeOVXikCPhiV8Nn84rwph58CPw1akxIq76qurfA8IYoq1Wpw9DcVg7 R/691zqKcjy/k5RR7MLXJoPqvpyrHPszuhGNrAW2QzTufP3XypgExtkwC5giaqRidXb5qywYjQ+ UB2npVlxY6KgF/ybRElygbX7Tv+k/qBlptg9kvTjegfAK4BF2WGa8Qf39Yl56k948orA8mVoMdm MiW3SOu77bHLCZGdE073RkECV6l/JDiGfesOc0sxaYv9sXs1RdVMIwtfAteKcNx1Nn5D3cl9LSz mnnLNugGhTfGoEtU/iGbHLJTDhQ/zJP05ra8g+O2Y1l6Hl5V1C8k+nJ6bIJO9Ntq71Ciku+TmSg mLQG+ZODP+zAYiNkAoi6D/sHGvAKfTB92aKCcMo+ZJ2hAqzaiqupJYGvhzx+zDMQjw0FSe65hse gyo3IJD2e09hicjr7SA== X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 spamscore=0 priorityscore=1501 malwarescore=0 clxscore=1015 lowpriorityscore=0 bulkscore=0 adultscore=0 suspectscore=0 phishscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010162 Content-Type: text/plain; charset="utf-8" Add _{SEGMENT,REGION3}_FR_MASK, similar to _{SEGMENT,REGION3}_MASK, but working on gfn/pfn instead of addresses. Use them in gaccess.c instead of using the normal masks plus gpa_to_gfn(). Also add _PAGES_PER_{SEGMENT,REGION3} to make future code more readable. Signed-off-by: Claudio Imbrenda --- arch/s390/kvm/dat.h | 5 +++++ arch/s390/kvm/gaccess.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/arch/s390/kvm/dat.h b/arch/s390/kvm/dat.h index 123e11dcd70d..809cd7a8adb7 100644 --- a/arch/s390/kvm/dat.h +++ b/arch/s390/kvm/dat.h @@ -104,6 +104,11 @@ union pte { } tok; }; =20 +#define _SEGMENT_FR_MASK (_SEGMENT_MASK >> PAGE_SHIFT) +#define _REGION3_FR_MASK (_REGION3_MASK >> PAGE_SHIFT) +#define _PAGES_PER_SEGMENT _PAGE_ENTRIES +#define _PAGES_PER_REGION3 (_PAGES_PER_SEGMENT * _CRST_ENTRIES) + /* Soft dirty, needed as macro for atomic operations on ptes */ #define _PAGE_SD 0x002 =20 diff --git a/arch/s390/kvm/gaccess.c b/arch/s390/kvm/gaccess.c index 4630b2a067ea..a2ad11e2bf61 100644 --- a/arch/s390/kvm/gaccess.c +++ b/arch/s390/kvm/gaccess.c @@ -1461,7 +1461,7 @@ static int _do_shadow_crste(struct gmap *sg, gpa_t ra= ddr, union crste *host, uni lockdep_assert_held(&sg->kvm->mmu_lock); lockdep_assert_held(&sg->parent->children_lock); =20 - gfn =3D f->gfn & gpa_to_gfn(is_pmd(*table) ? _SEGMENT_MASK : _REGION3_MAS= K); + gfn =3D f->gfn & (is_pmd(*table) ? _SEGMENT_FR_MASK : _REGION3_FR_MASK); scoped_guard(spinlock, &sg->host_to_rmap_lock) rc =3D gmap_insert_rmap(sg, gfn, gpa_to_gfn(raddr), host->h.tt); if (rc) --=20 2.53.0 From nobody Sun Jun 14 08:33:52 2026 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 9D8D047DFB2; Wed, 1 Apr 2026 17:40:08 +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=1775065212; cv=none; b=Q1nXlxdZnTFpn1wJGcLzJo1xA8GonjBV1McEFGbqd3nDAdIwHtlTAW7WFlOAD24ZC0YY6foo7FH1m6xQ9j9v6eSh6/tYv7ix8X6mPQCF/dXrK9oNCBn4W8bAIu2bgv7V4zIzjyNIG9y2iJ8x5twJKZzP+ZsbImwFbFB9JogsMho= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775065212; c=relaxed/simple; bh=EmPirQcevw+Nf/B/EQlvIHWhaoy0kaAz1B5Nyns08co=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=SlMWtPeqX/A4tTGIST+uwmI0bslM8tkVpXFm7yzBFN21OLi3nhlWWNAZFkNJlkmslEsFssehX1QDu8ddIod4psy7nziFqfnPk9JZgKydFTshGlanUmayF5gbcRFS1f5/KcgbMU84Ty+mdwEhW81Uw3zPIyqlnAvZYu83dxAOC/s= 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=ZFRChnVO; 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="ZFRChnVO" 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 6319dfLJ3948870; Wed, 1 Apr 2026 17:40:05 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=FS44tKqpgrPrSqxT4 3CY6F5uHOjzNASQqSW9bEv+ZF4=; b=ZFRChnVOaHV95usT83JYsCdBQ0EMFt7tb hv2bF9MrClzBWg7CeIwlhDJxJtKyXWbAtb/Opo7LWHYqfY3+bKf8+c6I65jeTo76 n/4oFHepH5IoKQIrNWIPsXGwid9uIVSmW+HfdWZCGGBfT6BQDHCGdBZBVF1ZjUWJ Gry0SuQvNooNA+GMHJ3glbY7cCLX6SBQXHcQbtk0IapjT8KdulhzzErllMp5VVgG LYFgd2WPS+QqzrtTEhdiHor8dD4HsiINoeBuu9ntOtzWRNwnWxfQg5riVul0t3a/ WXmbpajgsycdcVYumRqDaijMj7FlKTzciLFl8Wz/ZGiMSsHi+RvMw== Received: from ppma12.dal12v.mail.ibm.com (dc.9e.1632.ip4.static.sl-reverse.com [50.22.158.220]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4d65dcgqmj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 01 Apr 2026 17:40:05 +0000 (GMT) Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 631EhCBp021722; Wed, 1 Apr 2026 17:40:04 GMT Received: from smtprelay03.fra02v.mail.ibm.com ([9.218.2.224]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 4d6saspwgj-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 01 Apr 2026 17:40:04 +0000 Received: from smtpav04.fra02v.mail.ibm.com (smtpav04.fra02v.mail.ibm.com [10.20.54.103]) by smtprelay03.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 631HdwoA59703702 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 1 Apr 2026 17:39:58 GMT Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 7EE9120040; Wed, 1 Apr 2026 17:39:58 +0000 (GMT) Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id D274220043; Wed, 1 Apr 2026 17:39:57 +0000 (GMT) Received: from p-imbrenda.ibmuc.com (unknown [9.111.24.224]) by smtpav04.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 1 Apr 2026 17:39:57 +0000 (GMT) From: Claudio Imbrenda To: linux-kernel@vger.kernel.org Cc: kvm@vger.kernel.org, linux-s390@vger.kernel.org, borntraeger@de.ibm.com, frankja@linux.ibm.com, nrb@linux.ibm.com, seiden@linux.ibm.com, schlameuss@linux.ibm.com, gra@linux.ibm.com, david@kernel.org Subject: [PATCH v2 2/5] KVM: s390: Add alignment checks for hugepages Date: Wed, 1 Apr 2026 19:39:52 +0200 Message-ID: <20260401173955.314821-3-imbrenda@linux.ibm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260401173955.314821-1-imbrenda@linux.ibm.com> References: <20260401173955.314821-1-imbrenda@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=RsjI7SmK c=1 sm=1 tr=0 ts=69cd5875 cx=c_pps a=bLidbwmWQ0KltjZqbj+ezA==:117 a=bLidbwmWQ0KltjZqbj+ezA==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=V8glGbnc2Ofi9Qvn3v5h:22 a=VnNF1IyMAAAA:8 a=L0FeP2ZHASatk8IJKvEA:9 X-Proofpoint-GUID: 5myQG2D0trALsb34NemH2n8F1vVtAcVI X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE2MiBTYWx0ZWRfX8wE3EKcTLszq rbaHH9BRBKNF++RAm9sZBnrJJdbvUW7ClZTfpoXLE2m45ZoKtNAs79aQI6cjqC/AQgcFlxXFGmV ZwzOAzvAKouXOdyECiXD/mCtRlVmfmFmdIWr2N1I4Pa/LDMKN/N4kqmnYUAozNyg1m0CD90oMSG xv21JAW70Hs3rKfJuMq+OgciIEeDTTDM4b97zUyazzgrrvTe7Wq59EpfT20YC8CSkelBq2DqkqK /amtXUhw793Y0BwGawdm9qFevckU+VTvIlaV+3zX/7NF4fi3B6QK+VeGztpupKm5iBhOxY9s32+ jxviwNBCmaAPGzV3TpBDWnqrawnsOMSMExFqcnZMcrifOrPdi6yTuRKtZ2uCnKjBqv2+O09n1aU xeQA01ebksmZi1SJz+IIaSnWI28X3lWURSsgLSTqHlLVHXfbJ1UgwRYmobxw7pDkFoql9fCnPa9 R/qNEeVRQjwTyTbNIrg== X-Proofpoint-ORIG-GUID: 5myQG2D0trALsb34NemH2n8F1vVtAcVI X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 bulkscore=0 priorityscore=1501 lowpriorityscore=0 suspectscore=0 malwarescore=0 spamscore=0 clxscore=1015 phishscore=0 adultscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010162 Content-Type: text/plain; charset="utf-8" When backing a guest page with a large page, check that the alignment of the guest page matches the alignment of the host physical page backing it within the large page. Also check that the memslot is large enough to fit the large page. Those checks are currently not needed, because memslots are guaranteed to be 1m-aligned, but this will change. Signed-off-by: Claudio Imbrenda --- arch/s390/kvm/faultin.c | 2 +- arch/s390/kvm/gmap.c | 32 ++++++++++++++++++++++++++------ arch/s390/kvm/gmap.h | 3 ++- 3 files changed, 29 insertions(+), 8 deletions(-) diff --git a/arch/s390/kvm/faultin.c b/arch/s390/kvm/faultin.c index e37cd18200f5..ddf0ca71f374 100644 --- a/arch/s390/kvm/faultin.c +++ b/arch/s390/kvm/faultin.c @@ -109,7 +109,7 @@ int kvm_s390_faultin_gfn(struct kvm_vcpu *vcpu, struct = kvm *kvm, struct guest_fa scoped_guard(read_lock, &kvm->mmu_lock) { if (!mmu_invalidate_retry_gfn(kvm, inv_seq, f->gfn)) { f->valid =3D true; - rc =3D gmap_link(mc, kvm->arch.gmap, f); + rc =3D gmap_link(mc, kvm->arch.gmap, f, slot); kvm_release_faultin_page(kvm, f->page, !!rc, f->write_attempt); f->page =3D NULL; } diff --git a/arch/s390/kvm/gmap.c b/arch/s390/kvm/gmap.c index ef0c6ebfdde2..e3c1b070a11d 100644 --- a/arch/s390/kvm/gmap.c +++ b/arch/s390/kvm/gmap.c @@ -613,17 +613,37 @@ int gmap_try_fixup_minor(struct gmap *gmap, struct gu= est_fault *fault) return rc; } =20 -static inline bool gmap_2g_allowed(struct gmap *gmap, gfn_t gfn) +static inline bool gmap_2g_allowed(struct gmap *gmap, struct guest_fault *= f, + struct kvm_memory_slot *slot) { return false; } =20 -static inline bool gmap_1m_allowed(struct gmap *gmap, gfn_t gfn) +/** + * gmap_1m_allowed() - Check whether a 1M hugepage is allowed. + * @gmap: The gmap of the guest. + * @f: Describes the fault that is being resolved. + * @slot: The memslot the faulting address belongs to. + * + * The function checks whether the GMAP_FLAG_ALLOW_HPAGE_1M flag is set for + * @gmap, whether the offset of the address in the 1M virtual frame is the + * same as the offset in the physical 1M frame, and finally whether the wh= ole + * 1M page would fit in the given memslot. + * + * Return: true if a 1M hugepage is allowed to back the faulting address, = false + * otherwise. + */ +static inline bool gmap_1m_allowed(struct gmap *gmap, struct guest_fault *= f, + struct kvm_memory_slot *slot) { - return test_bit(GMAP_FLAG_ALLOW_HPAGE_1M, &gmap->flags); + return test_bit(GMAP_FLAG_ALLOW_HPAGE_1M, &gmap->flags) && + !((f->gfn ^ f->pfn) & ~_SEGMENT_FR_MASK) && + slot->base_gfn <=3D ALIGN_DOWN(f->gfn, _PAGES_PER_SEGMENT) && + slot->base_gfn + slot->npages >=3D ALIGN(f->gfn + 1, _PAGES_PER_SE= GMENT); } =20 -int gmap_link(struct kvm_s390_mmu_cache *mc, struct gmap *gmap, struct gue= st_fault *f) +int gmap_link(struct kvm_s390_mmu_cache *mc, struct gmap *gmap, struct gue= st_fault *f, + struct kvm_memory_slot *slot) { unsigned int order; int rc, level; @@ -633,9 +653,9 @@ int gmap_link(struct kvm_s390_mmu_cache *mc, struct gma= p *gmap, struct guest_fau level =3D TABLE_TYPE_PAGE_TABLE; if (f->page) { order =3D folio_order(page_folio(f->page)); - if (order >=3D get_order(_REGION3_SIZE) && gmap_2g_allowed(gmap, f->gfn)) + if (order >=3D get_order(_REGION3_SIZE) && gmap_2g_allowed(gmap, f, slot= )) level =3D TABLE_TYPE_REGION3; - else if (order >=3D get_order(_SEGMENT_SIZE) && gmap_1m_allowed(gmap, f-= >gfn)) + else if (order >=3D get_order(_SEGMENT_SIZE) && gmap_1m_allowed(gmap, f,= slot)) level =3D TABLE_TYPE_SEGMENT; } rc =3D dat_link(mc, gmap->asce, level, uses_skeys(gmap), f); diff --git a/arch/s390/kvm/gmap.h b/arch/s390/kvm/gmap.h index ccb5cd751e31..a2f74587ddbf 100644 --- a/arch/s390/kvm/gmap.h +++ b/arch/s390/kvm/gmap.h @@ -90,7 +90,8 @@ struct gmap *gmap_new(struct kvm *kvm, gfn_t limit); struct gmap *gmap_new_child(struct gmap *parent, gfn_t limit); void gmap_remove_child(struct gmap *child); void gmap_dispose(struct gmap *gmap); -int gmap_link(struct kvm_s390_mmu_cache *mc, struct gmap *gmap, struct gue= st_fault *fault); +int gmap_link(struct kvm_s390_mmu_cache *mc, struct gmap *gmap, struct gue= st_fault *fault, + struct kvm_memory_slot *slot); void gmap_sync_dirty_log(struct gmap *gmap, gfn_t start, gfn_t end); int gmap_set_limit(struct gmap *gmap, gfn_t limit); int gmap_ucas_translate(struct kvm_s390_mmu_cache *mc, struct gmap *gmap, = gpa_t *gaddr); --=20 2.53.0 From nobody Sun Jun 14 08:33:52 2026 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 CFBFB3DEFE0; Wed, 1 Apr 2026 17:40:09 +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=1775065213; cv=none; b=PKir4GNckm7m8pUJ44cvJ+Bm71/rWNrP41gx06SisgrBbH/5X7rPWBEMwzQjbNSJYsUw3oS+Kp4ciGtaBJEXastEsHLGVFrCXYc94KFsx//z6IKjAdsxD+zwRkImCg62le7KUPoA08NXLvOPgi+kCU9N4MUR9/njktza5Ckcwbo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775065213; c=relaxed/simple; bh=4bzpiikrqEOg5U6fMhqOPLN+lShirOVWBeTxH4aYvbY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ojthHFxMny3Z8dko9FmSOlfIV0nclZOYV6g029dzVtgn+tJ4w3JTN8i6YCrviF4OpcDVdm7ONOGvxPrv5gMe5xXlXnnesSi8Y+9mMA3BllpRpBjNNk9FWoU9vbfI652aNiPzzaYdWH2kom0XKnHoe9zjiry8WWrwZnmtUI9GzL8= 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=D49UhPzp; 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="D49UhPzp" Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 631AFS3Q3843131; Wed, 1 Apr 2026 17:40:06 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=ANiYZVSOka3t8+Rdk JZAMw4WgJDb2c6+W0sQ9f+lOr0=; b=D49UhPzpsnON2nbEpAjuwBfALXPnDutbR SqaAsw7QupcRhJiO8V4bTVcaovR5a+xRa2BEnAmR1xvf54gVGzu40Yvwjy7lipIT KxEzESw71ul/jz4OvvgRGggVzpB3t2V06CIEhW8ko8S/lpgHfT7kdHR+QntN66dB x5oXph7L90gPEYyEsmGHVJz98TnSHrUDvPlIt/j7S8SgCYYupBdEFG+QVs46aFkP G/9xImOTrKDihUZCn3Vy7U2d0bhqKbpvRgn9M7BtuB5qleNq9cmQrMmy1jq3vLh5 SEJFv70A9ECnwj+Cow1n2HTRK0RmSefBy3q6XVnd2u1kfflQSAn8g== Received: from ppma13.dal12v.mail.ibm.com (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4d66ms8my0-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 01 Apr 2026 17:40:05 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 631G18VI030995; Wed, 1 Apr 2026 17:40:05 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4d6uhjxk7n-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 01 Apr 2026 17:40:05 +0000 Received: from smtpav04.fra02v.mail.ibm.com (smtpav04.fra02v.mail.ibm.com [10.20.54.103]) by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 631HdxoF29885090 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 1 Apr 2026 17:39:59 GMT Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 4780420040; Wed, 1 Apr 2026 17:39:59 +0000 (GMT) Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 98D9820043; Wed, 1 Apr 2026 17:39:58 +0000 (GMT) Received: from p-imbrenda.ibmuc.com (unknown [9.111.24.224]) by smtpav04.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 1 Apr 2026 17:39:58 +0000 (GMT) From: Claudio Imbrenda To: linux-kernel@vger.kernel.org Cc: kvm@vger.kernel.org, linux-s390@vger.kernel.org, borntraeger@de.ibm.com, frankja@linux.ibm.com, nrb@linux.ibm.com, seiden@linux.ibm.com, schlameuss@linux.ibm.com, gra@linux.ibm.com, david@kernel.org Subject: [PATCH v2 3/5] KVM: s390: Allow 4k granularity for memslots Date: Wed, 1 Apr 2026 19:39:53 +0200 Message-ID: <20260401173955.314821-4-imbrenda@linux.ibm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260401173955.314821-1-imbrenda@linux.ibm.com> References: <20260401173955.314821-1-imbrenda@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=J6enLQnS c=1 sm=1 tr=0 ts=69cd5875 cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=RzCfie-kr_QcCd8fBx8p:22 a=VnNF1IyMAAAA:8 a=oKVxSbr36kwotj49NyIA:9 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE2MiBTYWx0ZWRfX0KgegOcupgtQ FoLWFL3WZBi28lgR13dHzyzAVgUHJ8eZ0Y+vIFaCCtb9p8bmG5bAtNETZKd8Hbf5f9fcliCvZgZ 88NofQ/VZce6Qdph7sHdfOhI6L2iXM6/cfBOBlcWugyuYzK180UQtbhfQiGsYXLuzTj8S9jmCvM kOmKZsBDJLlxL452b46XbBLsCZeNxr7bJqpiko6yi30Bm8o510/Wa1Dz+xGzzWYTGhhCRUnxJP1 iRUgL2sI3o3+BWThJ2t7jjr8HFv2DEW+h2yTnNfdlQR03R3jYiycMcoeeiwqD1DWKX11GP0p0ln rUp8hIsII0TTU3YPZ6gG6zPHc3SOT4FmXJJwPhzQ1lc4/fhyslhhUCsX6jzDdY/FO3cLfkAevdW Chxt2kTuRfZzL3rCz+1Y1X36TOuHFtnzmCAq/caA7kpcLq4YwK+gUXCXlJoKmtNRPS7jakm7dsy 58Djeien5YXlZaGniDg== X-Proofpoint-GUID: H33jeiz8H-5H4ryQX7UshpCFIzusDHHP X-Proofpoint-ORIG-GUID: H33jeiz8H-5H4ryQX7UshpCFIzusDHHP X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 suspectscore=0 clxscore=1015 adultscore=0 priorityscore=1501 bulkscore=0 phishscore=0 malwarescore=0 lowpriorityscore=0 spamscore=0 impostorscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010162 Content-Type: text/plain; charset="utf-8" Until now memslots on s390 needed to have 1M granularity and be 1M aligned. Since the new gmap code can handle memslots with 4k granularity and alignment, remove the restrictions. Signed-off-by: Claudio Imbrenda Reviewed-by: Christian Borntraeger --- arch/s390/kvm/kvm-s390.c | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c index bc7d6fa66eaf..be2a721e2574 100644 --- a/arch/s390/kvm/kvm-s390.c +++ b/arch/s390/kvm/kvm-s390.c @@ -5636,8 +5636,6 @@ int kvm_arch_prepare_memory_region(struct kvm *kvm, struct kvm_memory_slot *new, enum kvm_mr_change change) { - gpa_t size; - if (kvm_is_ucontrol(kvm) && new->id < KVM_USER_MEM_SLOTS) return -EINVAL; =20 @@ -5647,20 +5645,14 @@ int kvm_arch_prepare_memory_region(struct kvm *kvm, =20 if (change !=3D KVM_MR_DELETE && change !=3D KVM_MR_FLAGS_ONLY) { /* - * A few sanity checks. We can have memory slots which have to be - * located/ended at a segment boundary (1MB). The memory in userland is - * ok to be fragmented into various different vmas. It is okay to mmap() - * and munmap() stuff in this slot after doing this call at any time + * A few sanity checks. The memory in userland is ok to be + * fragmented into various different vmas. It is okay to mmap() + * and munmap() stuff in this slot after doing this call at any + * time. */ - - if (new->userspace_addr & 0xffffful) + if (new->userspace_addr & ~PAGE_MASK) return -EINVAL; - - size =3D new->npages * PAGE_SIZE; - if (size & 0xffffful) - return -EINVAL; - - if ((new->base_gfn * PAGE_SIZE) + size > kvm->arch.mem_limit) + if ((new->base_gfn + new->npages) * PAGE_SIZE > kvm->arch.mem_limit) return -EINVAL; } =20 --=20 2.53.0 From nobody Sun Jun 14 08:33:52 2026 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) (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 3FBDC47DD61; Wed, 1 Apr 2026 17:40:10 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=148.163.156.1 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775065216; cv=none; b=o4NH4EwZ+zMMJBoikWrBiS/oeKUHrRYjVxYefwgy9PEuy1AShXKXyRifZ4M4yiZ+0caXtqUnKVksMtTyKu5ZwaUWN/BgCVQUMvY0/DtpdpnCxBb4x7B8ymF52E5FZBfpAaA32nl4SG80ESC0E7GOoilucsSEqMgBXDmpAJQyfvw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775065216; c=relaxed/simple; bh=alUmo1jFUVxy2lfouq4BqOdKVM2W75j/mEINF9RYMlk=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EOotX9S/vw2UtmhA1K7K5AzdGtueytgtkUe0KkyFQq26AWXaF7cIDxjPoMPjNEZwc5kbZr3NTlbVLW6ZlzDe0PMtfnezJNBXFJQabGxrwQkYxBxwO717Gga8zLfPmFL+HUxzle8PuX4qNaWETnGalmQybTZoBnSysCF/NzoKp9Y= 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=rGFI80if; arc=none smtp.client-ip=148.163.156.1 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="rGFI80if" Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 631GnTvC3012799; Wed, 1 Apr 2026 17:40:07 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=azZqOZ7bsexxLHvTh VMxk4QQTqaW6/A9H3X16uWdo0I=; b=rGFI80ifYayHU6BjXJwrIFAxsy+e5uyEL mNKdYYllwlrqwrqlthlBjO378VVTB6W0dYaFHtumiGTsuJckwI65+Pkqy9jYhFaE oTlN0q64lRb+Vb153qEmnJxN6TZGXIQhHrMLUeu7DdKt0GuGeF0pyIZb4YPldD0Q G4Q0AeCRE+G7ycGwtDXmEuhs4yeLWJhZkXM7tLVCZ/wGyyViHSkFK6FrVZz9XrJ+ 5HImtGK78KOREUgac2j9170pb8U2MVtHmRRWucQcYiIwF157cwFBTbytr/9xslFd 9O7K+LAZkQaTvZ4Nf6wX2jzjoTk6wdKI9ScVy09T51MeJCbzA4QBA== Received: from ppma21.wdc07v.mail.ibm.com (5b.69.3da9.ip4.static.sl-reverse.com [169.61.105.91]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4d66g21gh7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 01 Apr 2026 17:40:07 +0000 (GMT) Received: from pps.filterd (ppma21.wdc07v.mail.ibm.com [127.0.0.1]) by ppma21.wdc07v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 631GHcU1022217; Wed, 1 Apr 2026 17:40:06 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma21.wdc07v.mail.ibm.com (PPS) with ESMTPS id 4d6tan6qe4-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 01 Apr 2026 17:40:06 +0000 Received: from smtpav04.fra02v.mail.ibm.com (smtpav04.fra02v.mail.ibm.com [10.20.54.103]) by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 631He0ij45744618 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 1 Apr 2026 17:40:00 GMT Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0D63020040; Wed, 1 Apr 2026 17:40:00 +0000 (GMT) Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 60F3420043; Wed, 1 Apr 2026 17:39:59 +0000 (GMT) Received: from p-imbrenda.ibmuc.com (unknown [9.111.24.224]) by smtpav04.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 1 Apr 2026 17:39:59 +0000 (GMT) From: Claudio Imbrenda To: linux-kernel@vger.kernel.org Cc: kvm@vger.kernel.org, linux-s390@vger.kernel.org, borntraeger@de.ibm.com, frankja@linux.ibm.com, nrb@linux.ibm.com, seiden@linux.ibm.com, schlameuss@linux.ibm.com, gra@linux.ibm.com, david@kernel.org Subject: [PATCH v2 4/5] KVM: selftests: Remove 1M alignment requirement for s390 Date: Wed, 1 Apr 2026 19:39:54 +0200 Message-ID: <20260401173955.314821-5-imbrenda@linux.ibm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260401173955.314821-1-imbrenda@linux.ibm.com> References: <20260401173955.314821-1-imbrenda@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Authority-Analysis: v=2.4 cv=Fdo6BZ+6 c=1 sm=1 tr=0 ts=69cd5877 cx=c_pps a=GFwsV6G8L6GxiO2Y/PsHdQ==:117 a=GFwsV6G8L6GxiO2Y/PsHdQ==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=iQ6ETzBq9ecOQQE5vZCe:22 a=VnNF1IyMAAAA:8 a=Jr3PCXUVmlYdUNPdThEA:9 X-Proofpoint-ORIG-GUID: 5a3igfdH59egTVf8X_D48pQXGQ-BQzD3 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE2MiBTYWx0ZWRfX4C9ebgAOTpw2 BxSU+weycUQPB5KMYFwUO2RPA0rBAvcnYHkZFb8NIGLDnJPTTSB8sS/lj8XB7VwxUgnXW+1Rg28 PvWllInF4IU7UnVJ3wTnZuMa1roR+ZSGJvxGzv/+zmwmWCIEHP8iFCmVGuX1W7D30KP3ylukDRi XBvWRMdIK3kJykrWCH+BHIErRssMY+eFX1UsHVx5A6iJHLz7xSIn04Nmf5oM7aRmB1JQ7IURH3q 2dEFIil0Tf78sjD/9L5CYQaQbxkHpyPvuFsV6OhsqcIWDGDws1L5oSpQkt2HF3McBM4OFXZd5yD oYPQi6YvCjuR/vFptU4Yx+GR+L51goULZ9INe1iGz3j/XfM+bg2jWWTU9uH49yBWAnetDpDyfOV l8ibc5zGj9YdVq7Sqyn/LEPQ+1D3xXgHq9TWxyQV7xh8UKdWGLxF9vx95V7hV30XN06zBpbI8fA E2QcJ71KKefUDqKyC2w== X-Proofpoint-GUID: 5a3igfdH59egTVf8X_D48pQXGQ-BQzD3 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 impostorscore=0 clxscore=1015 bulkscore=0 suspectscore=0 priorityscore=1501 adultscore=0 malwarescore=0 phishscore=0 spamscore=0 lowpriorityscore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010162 Content-Type: text/plain; charset="utf-8" Remove the 1M memslot alignment requirement for s390, since it is not needed anymore. Signed-off-by: Claudio Imbrenda --- tools/testing/selftests/kvm/include/kvm_util.h | 4 ---- tools/testing/selftests/kvm/lib/kvm_util.c | 9 +-------- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/tools/testing/selftests/kvm/include/kvm_util.h b/tools/testing= /selftests/kvm/include/kvm_util.h index 8b39cb919f4f..f861242b4ae8 100644 --- a/tools/testing/selftests/kvm/include/kvm_util.h +++ b/tools/testing/selftests/kvm/include/kvm_util.h @@ -1127,10 +1127,6 @@ vm_adjust_num_guest_pages(enum vm_guest_mode mode, u= nsigned int num_guest_pages) { unsigned int n; n =3D vm_num_guest_pages(mode, vm_num_host_pages(mode, num_guest_pages)); -#ifdef __s390x__ - /* s390 requires 1M aligned guest sizes */ - n =3D (n + 255) & ~255; -#endif return n; } =20 diff --git a/tools/testing/selftests/kvm/lib/kvm_util.c b/tools/testing/sel= ftests/kvm/lib/kvm_util.c index 1959bf556e88..f5e076591c64 100644 --- a/tools/testing/selftests/kvm/lib/kvm_util.c +++ b/tools/testing/selftests/kvm/lib/kvm_util.c @@ -985,7 +985,7 @@ void vm_mem_add(struct kvm_vm *vm, enum vm_mem_backing_= src_type src_type, struct userspace_mem_region *region; size_t backing_src_pagesz =3D get_backing_src_pagesz(src_type); size_t mem_size =3D npages * vm->page_size; - size_t alignment; + size_t alignment =3D 1; =20 TEST_REQUIRE_SET_USER_MEMORY_REGION2(); =20 @@ -1039,13 +1039,6 @@ void vm_mem_add(struct kvm_vm *vm, enum vm_mem_backi= ng_src_type src_type, TEST_ASSERT(region !=3D NULL, "Insufficient Memory"); region->mmap_size =3D mem_size; =20 -#ifdef __s390x__ - /* On s390x, the host address must be aligned to 1M (due to PGSTEs) */ - alignment =3D 0x100000; -#else - alignment =3D 1; -#endif - /* * When using THP mmap is not guaranteed to returned a hugepage aligned * address so we have to pad the mmap. Padding is not needed for HugeTLB --=20 2.53.0 From nobody Sun Jun 14 08:33:52 2026 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 C63D947ECD0; Wed, 1 Apr 2026 17:40:11 +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=1775065220; cv=none; b=Z4OyhPVXSafIiSbDjdJP+hOcP2brt8WW38JmgCLvpI1SHoGeRU0AKhEXe05KaMTy73gugXnegbw5DfpyMzqTdEG3+0cDe4krjScP0rFNwXF7LIx2GkyyYKojukutQRqPPYdFKcRTCaEcbiIG3+p5Q0Zqk5zEOswMQ4HBUcUvbR8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775065220; c=relaxed/simple; bh=OZkTKksphmUcQcwebXL1oZnWFw6Vwl2QcS4Gw75qxVg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=S73almA9lSda5bCqyQz4A8671G3xgRjTyYtg2287gZJiNeFvM95FMRlSb4UsVkg0Bn7NYAIn2JIBr3odAVpGX/b/Nbl851wq/yD+09hFyPjBDpCGGBT02zapoelp6eCIf1t4FDcqEnqbnGYW1jroGkZhRzzXPKNZks4Kwz0Xtoc= 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=oodgGYS5; 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="oodgGYS5" Received: from pps.filterd (m0356516.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.18.1.11/8.18.1.11) with ESMTP id 631801cZ3551491; Wed, 1 Apr 2026 17:40:07 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=cc :content-transfer-encoding:date:from:in-reply-to:message-id :mime-version:references:subject:to; s=pp1; bh=FVdNftKXVYlsMwXQw Tw9p/OWnVGP/380ZQIOoxEV21s=; b=oodgGYS5hSz7Hea2YUVNuRg2LRBfDAsFK mHMgXKfbkb66UVo9vGA6u74Kghv9rWfb2Zql8+gRiI86ZacwUGQNDfu4zDbJE+q8 /TcqmzAncHDLVWeRHpyMkWhmwYVYuoDR2krE8WoVzch4v5bYcg3AlB67dMbiVC4L YBv0E8YcFYdILbCnqHSMmu7fTL4QeCRg4s1r7W1/X2ZGaSPW0XfV9xRJZermZTVk qyM3a7/8DPnsIR4wrIVPNJKEDXo7mvwf6xJ6826bgS6PsLv2xZ9SEj99OHUeR67i vSUGeUcD1fm01xRfZBGaispHxhXhWnE6SfDhyPv0L5lhX15QZySXw== Received: from ppma13.dal12v.mail.ibm.com (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 4d64dgrupa-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 01 Apr 2026 17:40:07 +0000 (GMT) Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.18.1.2/8.18.1.2) with ESMTP id 631GNNfk030947; Wed, 1 Apr 2026 17:40:06 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 4d6uhjxk7u-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 01 Apr 2026 17:40:06 +0000 Received: from smtpav04.fra02v.mail.ibm.com (smtpav04.fra02v.mail.ibm.com [10.20.54.103]) by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 631He0cU43450872 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 1 Apr 2026 17:40:01 GMT Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C675B2004B; Wed, 1 Apr 2026 17:40:00 +0000 (GMT) Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 271C520043; Wed, 1 Apr 2026 17:40:00 +0000 (GMT) Received: from p-imbrenda.ibmuc.com (unknown [9.111.24.224]) by smtpav04.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 1 Apr 2026 17:40:00 +0000 (GMT) From: Claudio Imbrenda To: linux-kernel@vger.kernel.org Cc: kvm@vger.kernel.org, linux-s390@vger.kernel.org, borntraeger@de.ibm.com, frankja@linux.ibm.com, nrb@linux.ibm.com, seiden@linux.ibm.com, schlameuss@linux.ibm.com, gra@linux.ibm.com, david@kernel.org Subject: [PATCH v2 5/5] KVM: s390: selftests: enable some common memory-related tests Date: Wed, 1 Apr 2026 19:39:55 +0200 Message-ID: <20260401173955.314821-6-imbrenda@linux.ibm.com> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260401173955.314821-1-imbrenda@linux.ibm.com> References: <20260401173955.314821-1-imbrenda@linux.ibm.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable X-TM-AS-GCONF: 00 X-Proofpoint-Spam-Details-Enc: AW1haW4tMjYwNDAxMDE2MiBTYWx0ZWRfX1YFBzsG8EqgD 3476x41h5nH3WfIA2zdbSe5uCt/RfDm4EAnvr+clAiuzTjoB8BehujKJfmc8xXObuE+1U47S/HH JYGDB5G7Tuyvr561byzPJVAct9Qsl9tItrSZmOOVVxSF4z5p0O80zsMh8QNkbgtRfMWcQk4unsY xbbbMhEEvCz0rKqlte61D6fcJ7qbUS3sSTc8r5Z1CNiZlYpMg0LCyDa1ITL7Us7agjUXkmGZq59 hBCgewI5+4OVytEfaRMslE7FyLq4nc1jjZH5c+11QpyD+N/d47hsKZIrXBoSn81E08lU4uoPPci WGSqNj52CiYhTmUfzwOx0ZwyGePRJ0rOkyiEhGkgw6mOCwrtZ1Xevc7I2/qxxA28Uav49DAjqyM jFP+O+l0Y2YhDGBKo+wpBkhiKvorXmKz3Y404Z/6tplBCGrBLyLYlbK8/j76DYAjjzZbHDjOyZA AW/+ManVrrqQEEyDyhw== X-Authority-Analysis: v=2.4 cv=QKZlhwLL c=1 sm=1 tr=0 ts=69cd5877 cx=c_pps a=AfN7/Ok6k8XGzOShvHwTGQ==:117 a=AfN7/Ok6k8XGzOShvHwTGQ==:17 a=A5OVakUREuEA:10 a=VkNPw1HP01LnGYTKEx00:22 a=RnoormkPH1_aCDwRdu11:22 a=Y2IxJ9c9Rs8Kov3niI8_:22 a=VnNF1IyMAAAA:8 a=TmFg2SzGmbXOhQH8FJgA:9 X-Proofpoint-GUID: 1m3HkYx8HaSgE6FHPjEdxYJ_FfrSQ558 X-Proofpoint-ORIG-GUID: 1m3HkYx8HaSgE6FHPjEdxYJ_FfrSQ558 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.293,Aquarius:18.0.1143,Hydra:6.1.51,FMLib:17.12.100.49 definitions=2026-04-01_04,2026-04-01_02,2025-10-01_01 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 phishscore=0 adultscore=0 impostorscore=0 clxscore=1015 spamscore=0 bulkscore=0 priorityscore=1501 suspectscore=0 malwarescore=0 classifier=typeunknown authscore=0 authtc= authcc= route=outbound adjust=0 reason=mlx scancount=1 engine=8.22.0-2603050001 definitions=main-2604010162 Content-Type: text/plain; charset="utf-8" Enable the following tests on s390: * memslot_modification_stress_test * memslot_perf_test * mmu_stress_test Since the first two tests are now supported on all architectures, move them into TEST_GEN_PROGS_COMMON and out of the indiviual architectures. Signed-off-by: Claudio Imbrenda --- tools/testing/selftests/kvm/Makefile.kvm | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/tools/testing/selftests/kvm/Makefile.kvm b/tools/testing/selft= ests/kvm/Makefile.kvm index fdec90e85467..765a51599668 100644 --- a/tools/testing/selftests/kvm/Makefile.kvm +++ b/tools/testing/selftests/kvm/Makefile.kvm @@ -64,6 +64,8 @@ TEST_GEN_PROGS_COMMON +=3D kvm_binary_stats_test TEST_GEN_PROGS_COMMON +=3D kvm_create_max_vcpus TEST_GEN_PROGS_COMMON +=3D kvm_page_table_test TEST_GEN_PROGS_COMMON +=3D set_memory_region_test +TEST_GEN_PROGS_COMMON +=3D memslot_modification_stress_test +TEST_GEN_PROGS_COMMON +=3D memslot_perf_test =20 # Compiled test targets TEST_GEN_PROGS_x86 =3D $(TEST_GEN_PROGS_COMMON) @@ -147,8 +149,6 @@ TEST_GEN_PROGS_x86 +=3D coalesced_io_test TEST_GEN_PROGS_x86 +=3D dirty_log_perf_test TEST_GEN_PROGS_x86 +=3D guest_memfd_test TEST_GEN_PROGS_x86 +=3D hardware_disable_test -TEST_GEN_PROGS_x86 +=3D memslot_modification_stress_test -TEST_GEN_PROGS_x86 +=3D memslot_perf_test TEST_GEN_PROGS_x86 +=3D mmu_stress_test TEST_GEN_PROGS_x86 +=3D rseq_test TEST_GEN_PROGS_x86 +=3D steal_time @@ -186,8 +186,6 @@ TEST_GEN_PROGS_arm64 +=3D coalesced_io_test TEST_GEN_PROGS_arm64 +=3D dirty_log_perf_test TEST_GEN_PROGS_arm64 +=3D get-reg-list TEST_GEN_PROGS_arm64 +=3D guest_memfd_test -TEST_GEN_PROGS_arm64 +=3D memslot_modification_stress_test -TEST_GEN_PROGS_arm64 +=3D memslot_perf_test TEST_GEN_PROGS_arm64 +=3D mmu_stress_test TEST_GEN_PROGS_arm64 +=3D rseq_test TEST_GEN_PROGS_arm64 +=3D steal_time @@ -205,6 +203,7 @@ TEST_GEN_PROGS_s390 +=3D s390/ucontrol_test TEST_GEN_PROGS_s390 +=3D s390/user_operexec TEST_GEN_PROGS_s390 +=3D s390/keyop TEST_GEN_PROGS_s390 +=3D rseq_test +TEST_GEN_PROGS_s390 +=3D mmu_stress_test =20 TEST_GEN_PROGS_riscv =3D $(TEST_GEN_PROGS_COMMON) TEST_GEN_PROGS_riscv +=3D riscv/sbi_pmu_test @@ -214,8 +213,6 @@ TEST_GEN_PROGS_riscv +=3D arch_timer TEST_GEN_PROGS_riscv +=3D coalesced_io_test TEST_GEN_PROGS_riscv +=3D dirty_log_perf_test TEST_GEN_PROGS_riscv +=3D get-reg-list -TEST_GEN_PROGS_riscv +=3D memslot_modification_stress_test -TEST_GEN_PROGS_riscv +=3D memslot_perf_test TEST_GEN_PROGS_riscv +=3D mmu_stress_test TEST_GEN_PROGS_riscv +=3D rseq_test TEST_GEN_PROGS_riscv +=3D steal_time @@ -230,8 +227,6 @@ TEST_GEN_PROGS_loongarch +=3D hardware_disable_test TEST_GEN_PROGS_loongarch +=3D kvm_binary_stats_test TEST_GEN_PROGS_loongarch +=3D kvm_create_max_vcpus TEST_GEN_PROGS_loongarch +=3D kvm_page_table_test -TEST_GEN_PROGS_loongarch +=3D memslot_modification_stress_test -TEST_GEN_PROGS_loongarch +=3D memslot_perf_test TEST_GEN_PROGS_loongarch +=3D set_memory_region_test TEST_GEN_PROGS_loongarch +=3D steal_time =20 --=20 2.53.0