From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id C948FC61D97 for ; Tue, 21 Nov 2023 22:07:45 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 610E98D0028; Tue, 21 Nov 2023 17:07:45 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 5C0848D0001; Tue, 21 Nov 2023 17:07:45 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 462188D0028; Tue, 21 Nov 2023 17:07:45 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 35CFE8D0001 for ; Tue, 21 Nov 2023 17:07:45 -0500 (EST) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 17D39B5E48 for ; Tue, 21 Nov 2023 22:07:45 +0000 (UTC) X-FDA: 81483349290.10.1CA8F96 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by imf04.hostedemail.com (Postfix) with ESMTP id B8D3D40023 for ; Tue, 21 Nov 2023 22:07:42 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b=ezLj3E15; dmarc=pass (policy=none) header.from=ibm.com; spf=pass (imf04.hostedemail.com: domain of iii@linux.ibm.com designates 148.163.156.1 as permitted sender) smtp.mailfrom=iii@linux.ibm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1700604462; a=rsa-sha256; cv=none; b=YcNXuLU/bhwaMapEuvher3Wy2vmhLyxabCldMf9r4Ng1LH9+prrfzDQPev6/feMXseNpB8 kAVc6Gd4m1vNKpGJ/uOdPaOkdbQ/Drk8IUN1I3WlOnzYQfuRpIekJDA4uWRLu0ubFUSM3A kf2haaUV0fght6afvGOHJD+9koFZl88= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b=ezLj3E15; dmarc=pass (policy=none) header.from=ibm.com; spf=pass (imf04.hostedemail.com: domain of iii@linux.ibm.com designates 148.163.156.1 as permitted sender) smtp.mailfrom=iii@linux.ibm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1700604462; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=4RaOA/Sg5LiWRu5GILmoDX/dU/kL5d44emuuC2WIH+4=; b=DvIzmUbxqJYOLDskwiUI4Nrz0ssJo6qkjZiqZDUQJCfiyuBfX58g+DUGOrzjhOimx3o1Lv SMVte8YhUEmZyY4dkdHzzEyCICCTULOecQFsvtqILAOv0c5updxEDcwv3tE86dxS4uulA9 gdfZq6RIfcolBcHYdcnDydkpu+b0zVY= Received: from pps.filterd (m0360083.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3ALLv7vA004924; Tue, 21 Nov 2023 22:07:36 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding; s=pp1; bh=4RaOA/Sg5LiWRu5GILmoDX/dU/kL5d44emuuC2WIH+4=; b=ezLj3E1531aCoaLE8HnCZ0/F2vEk9oFc+LITitJO5QE8MtoLC+5le9S90yUi9PtQHFXm Dar7byBJxch2ogLsiykcvsY4044zmhvDbTQAqN0sBrm9W3CPqX3ldFGx0BZ2IIAHF/uV TrOVWXZ3QMBlHM9Wg13+976DsO902f4isvq6NtRoVEJvfqOht05bJl7Kg7lXM8MwEK+s uCAfjf5gsw421uDMFWjpqDp+8OWYI6Q1SROge7+azS3Fe0MqvRPBWIeioAYGBQa8JeU/ HSaWeRAWcF9iY9aNe+2YOqidoPPL3db6zOz/0muIsVLne77+Py6wqhGxrh15Eu/RfYh8 8g== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3uh4wn8b0r-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 21 Nov 2023 22:07:35 +0000 Received: from m0360083.ppops.net (m0360083.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 3ALM0GER015220; Tue, 21 Nov 2023 22:07:35 GMT 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 3uh4wn8axk-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 21 Nov 2023 22:07:35 +0000 Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 3ALLnbtg011094; Tue, 21 Nov 2023 22:02:58 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 3uf9tkbbnq-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Tue, 21 Nov 2023 22:02:58 +0000 Received: from smtpav06.fra02v.mail.ibm.com (smtpav06.fra02v.mail.ibm.com [10.20.54.105]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 3ALM2tvA17629900 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 21 Nov 2023 22:02:55 GMT Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 1BA7020065; Tue, 21 Nov 2023 22:02:55 +0000 (GMT) Received: from smtpav06.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A76DA2005A; Tue, 21 Nov 2023 22:02:53 +0000 (GMT) Received: from heavy.boeblingen.de.ibm.com (unknown [9.179.23.98]) by smtpav06.fra02v.mail.ibm.com (Postfix) with ESMTP; Tue, 21 Nov 2023 22:02:53 +0000 (GMT) From: Ilya Leoshkevich To: Alexander Gordeev , Alexander Potapenko , Andrew Morton , Christoph Lameter , David Rientjes , Heiko Carstens , Joonsoo Kim , Marco Elver , Masami Hiramatsu , Pekka Enberg , Steven Rostedt , Vasily Gorbik , Vlastimil Babka Cc: Christian Borntraeger , Dmitry Vyukov , Hyeonggon Yoo <42.hyeyoo@gmail.com>, kasan-dev@googlegroups.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-s390@vger.kernel.org, linux-trace-kernel@vger.kernel.org, Mark Rutland , Roman Gushchin , Sven Schnelle , Ilya Leoshkevich Subject: [PATCH v2 27/33] s390/mm: Define KMSAN metadata for vmalloc and modules Date: Tue, 21 Nov 2023 23:01:21 +0100 Message-ID: <20231121220155.1217090-28-iii@linux.ibm.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20231121220155.1217090-1-iii@linux.ibm.com> References: <20231121220155.1217090-1-iii@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 X-Proofpoint-GUID: jEnlnvjW__i_LbTWx-W7S62a6qYl7uUJ X-Proofpoint-ORIG-GUID: HljdlJiOL-60qRArOlIXIwpUORUdqkXz X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.987,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-11-21_12,2023-11-21_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 lowpriorityscore=0 priorityscore=1501 suspectscore=0 adultscore=0 malwarescore=0 impostorscore=0 mlxscore=0 bulkscore=0 phishscore=0 clxscore=1015 spamscore=0 mlxlogscore=840 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311060000 definitions=main-2311210172 X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: B8D3D40023 X-Stat-Signature: pmip83b8oqu5k5fzwnn8gkudh9ctuo13 X-HE-Tag: 1700604462-206003 X-HE-Meta: U2FsdGVkX19UXk7DdJ/idhyrQCTsZSNlsCbWxEbq+j8FqeLD7Bx88gci3Ji4L5VqBF/migoxKjbEiGl0y6xjME5F7TnRcpSum/sCi4q0prSGufL/pBPZvXMcUioz2ezazbmr1Ra5xoQ/uSktJ9RLQGTpNYhpGQzMQi9d5cMbBp9RyRVX62g4bF51scsqhTijd0ao6St5dEq3VfHFlPSeat0xnzhrROCKV2PqK90CJMNVMPxpXGhjDtJbH1HNkn6t0dhO/kUks8n7Na7qh3eLtb7uEjFSoFfdilGRTBMl4HmNhgd5M2TdB1pEfwK4xVmFghWTL8cj1tBehhZvfZDeT7JGGFmYTMMd64QYTj9a2CLUzNqzwKYW4PSQpleZNQpxCM7Vg0oBXN7TQRiLxpPLIwE8tIWujbc15n1Mqg7JTcv21uHT2y/Ma9hbEuoEKVugSjXu7cHjANoW6feKpgs83Tk7/4o37IkDMFASJt5iBilmBUmG7q2TR78GiTvYZ28Ah4l2C5bs/Y/xk+7pES8E0C6mWYN10wjIttVKxilf5GIINPsXzvasoON8M0TYwVBda6ZfEYPROUlICpO0oYRUQh7RqjSX6wkFkaoZ0lAFaVDNJjNn5h4ZqImbsBvyES7MrwHOSKGBNccsGMJnqGyF5VLxhfyUBVRVOUxNx9tfQ/BsP/lp6PuZ70yB4OVjBEvnMBMWAFPVsuOnfhHf9gJhnrpfw5m2UZFUUMUFkWBx6AxsrwOUSLrjkwHQxKWZ7+WRmx6CS6WtcPyh0yAq4eFkRf4Dcq857+Nd/oKlsM8HlFCes3mkX6iv2GwzAj/kalbvBwtS9QRMNWbgOZohrcbYFl7VNxd8m9hwWc/7BRxdEqKaFL2Des3jdV9Wo7USl55ioXMPCzNSZ5IEGEMD8MdwxltNAyeOBvVbxVq8TzY4q8+IaLK0dv631f65Rd4Ibz94noFkGK027fWoEicxYoS TpMea+aY JZoY7upFUMIiibj1EgiGOcDPc19J9PQ0m+ywFciK6wrHwBx25VmzNLbUGE3uFXjmVCtF0og9SeddI7H3+zVUTG0WPfFqw05ROIpiQWV+KjvfwJ2iGrHalpKvY2HmU62RDMyoj1FnHTB+U00b3BHmqCPU3AhcVs+1QD5+IYBQlfgk9J1O8T6j83Jh2HpDjp4y6/9jwfSG/hhw7noFzdPjntqCnul6bkZZ3zZmaK+2BdkRKV2DxBSgeaVovw/Mh5AnKUU6kL51U9DnmswN/v1GJw9vQvCkRQ1g6ykyfOiYrznvkirbbkvDlcHzWsg== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: The pages for the KMSAN metadata associated with most kernel mappings are taken from memblock by the common code. However, vmalloc and module metadata needs to be defined by the architectures. Be a little bit more careful than x86: allocate exactly MODULES_LEN for the module shadow and origins, and then take 2/3 of vmalloc for the vmalloc shadow and origins. This ensures that users passing small vmalloc= values on the command line do not cause module metadata collisions. Signed-off-by: Ilya Leoshkevich --- arch/s390/boot/startup.c | 8 ++++++++ arch/s390/include/asm/pgtable.h | 10 ++++++++++ 2 files changed, 18 insertions(+) diff --git a/arch/s390/boot/startup.c b/arch/s390/boot/startup.c index 8104e0e3d188..e37e7ffda430 100644 --- a/arch/s390/boot/startup.c +++ b/arch/s390/boot/startup.c @@ -253,9 +253,17 @@ static unsigned long setup_kernel_memory_layout(void) MODULES_END = round_down(__abs_lowcore, _SEGMENT_SIZE); MODULES_VADDR = MODULES_END - MODULES_LEN; VMALLOC_END = MODULES_VADDR; +#ifdef CONFIG_KMSAN + VMALLOC_END -= MODULES_LEN * 2; +#endif /* allow vmalloc area to occupy up to about 1/2 of the rest virtual space left */ vmalloc_size = min(vmalloc_size, round_down(VMALLOC_END / 2, _REGION3_SIZE)); +#ifdef CONFIG_KMSAN + /* take 2/3 of vmalloc area for KMSAN shadow and origins */ + vmalloc_size = round_down(vmalloc_size / 3, _REGION3_SIZE); + VMALLOC_END -= vmalloc_size * 2; +#endif VMALLOC_START = VMALLOC_END - vmalloc_size; /* split remaining virtual space between 1:1 mapping & vmemmap array */ diff --git a/arch/s390/include/asm/pgtable.h b/arch/s390/include/asm/pgtable.h index 601e87fa8a9a..d764abeb9e6d 100644 --- a/arch/s390/include/asm/pgtable.h +++ b/arch/s390/include/asm/pgtable.h @@ -107,6 +107,16 @@ static inline int is_module_addr(void *addr) return 1; } +#ifdef CONFIG_KMSAN +#define KMSAN_VMALLOC_SIZE (VMALLOC_END - VMALLOC_START) +#define KMSAN_VMALLOC_SHADOW_START VMALLOC_END +#define KMSAN_VMALLOC_ORIGIN_START (KMSAN_VMALLOC_SHADOW_START + \ + KMSAN_VMALLOC_SIZE) +#define KMSAN_MODULES_SHADOW_START (KMSAN_VMALLOC_ORIGIN_START + \ + KMSAN_VMALLOC_SIZE) +#define KMSAN_MODULES_ORIGIN_START (KMSAN_MODULES_SHADOW_START + MODULES_LEN) +#endif + /* * A 64 bit pagetable entry of S390 has following format: * | PFRA |0IPC| OS | -- 2.41.0