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 1AA1BC072A2 for ; Wed, 15 Nov 2023 20:35:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B7CA680038; Wed, 15 Nov 2023 15:35:08 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id A1ECF80041; Wed, 15 Nov 2023 15:35:08 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 75FD68003F; Wed, 15 Nov 2023 15:35:08 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 380AE80038 for ; Wed, 15 Nov 2023 15:35:08 -0500 (EST) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id EF83E1204BE for ; Wed, 15 Nov 2023 20:35:07 +0000 (UTC) X-FDA: 81461343054.23.DF98808 Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by imf13.hostedemail.com (Postfix) with ESMTP id A482E20023 for ; Wed, 15 Nov 2023 20:35:05 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b="IoV/CdLK"; dmarc=pass (policy=none) header.from=ibm.com; spf=pass (imf13.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=1700080505; 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=asdPuKgysJe4FAig3LXjVvUDTsM5pyq4fMAhQ66oWUQ=; b=zRRHVlDnP/DNXKKOwm7eMh+PHu03Enewt/4ASET+K+5o447T7qP8w5O3PT52fbKblPK7EM aoASTtWk0arTgA5SY4Ys7LtgoQ7jGmtnSwUMriW9Hisae8HZp/0JN5W6nABf2FfCBthva0 589RGqgxXbWI8+3EX/us7Pka821Mu6k= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b="IoV/CdLK"; dmarc=pass (policy=none) header.from=ibm.com; spf=pass (imf13.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=1700080505; a=rsa-sha256; cv=none; b=TMi26ni3fu0HJFS8lhU0venbbT1ksYr7ZuA5oQKXwmDj7YbHbsXInvUkyWCSbSyjdb1vNE jP3jZ06dcXYYm2xpnZWc/BOa3dqBzvonA32eA5GxPE5C80BpyJ5PSuYVTHcfz+nmlsUytT hBTkWcZ33fEoXbTbQxmZSEaRgxH/3ZQ= 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 3AFKQk3x031373; Wed, 15 Nov 2023 20:34:59 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=asdPuKgysJe4FAig3LXjVvUDTsM5pyq4fMAhQ66oWUQ=; b=IoV/CdLKOtJ8YS59KWbuPK43v6ToOxJkopuPBHzHX1OKEI6lF3VElkjKEuF9Kbs0PJsr 9PY1PEKVxT4j5R4qXvmbaNaHHzqfwQew+POtTAn+FxQ+Pp1rLjk5BR/ywGWuQ4XU1eT6 /zmfHYCIeE3GJKaS0pp9Q9WvrHBJG4d+O93U8UxYaNqnuwCMU1zu1JVBf7JjS0rtnIcv Knh9USFDjtE7XzVFXo+oAMwqoYJeOWLmiVYSqIl0w2Zx9a6S21qA8c1VATKwTLx2mRsv CvcfN77GmQpgw88twaU1JZS7bda0zKJSW/qjoARMYLaZvUcXEsOdj/Jqpun8/jmsBqIY xg== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3ud4tk8fwx-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 15 Nov 2023 20:34:59 +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 3AFKQjbM031266; Wed, 15 Nov 2023 20:34:58 GMT Received: from ppma23.wdc07v.mail.ibm.com (5d.69.3da9.ip4.static.sl-reverse.com [169.61.105.93]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3ud4tk8fw9-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 15 Nov 2023 20:34:58 +0000 Received: from pps.filterd (ppma23.wdc07v.mail.ibm.com [127.0.0.1]) by ppma23.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 3AFKJ070014625; Wed, 15 Nov 2023 20:34:56 GMT Received: from smtprelay05.fra02v.mail.ibm.com ([9.218.2.225]) by ppma23.wdc07v.mail.ibm.com (PPS) with ESMTPS id 3uaneksvxb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 15 Nov 2023 20:34:56 +0000 Received: from smtpav01.fra02v.mail.ibm.com (smtpav01.fra02v.mail.ibm.com [10.20.54.100]) by smtprelay05.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 3AFKYrrj22938112 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 15 Nov 2023 20:34:53 GMT Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 58D382004B; Wed, 15 Nov 2023 20:34:53 +0000 (GMT) Received: from smtpav01.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 0BBD120040; Wed, 15 Nov 2023 20:34:52 +0000 (GMT) Received: from heavy.boeblingen.de.ibm.com (unknown [9.179.9.51]) by smtpav01.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 15 Nov 2023 20:34:51 +0000 (GMT) From: Ilya Leoshkevich To: Alexander Gordeev , Alexander Potapenko , Andrew Morton , Christoph Lameter , David Rientjes , 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 26/32] s390/mm: Define KMSAN metadata for vmalloc and modules Date: Wed, 15 Nov 2023 21:30:58 +0100 Message-ID: <20231115203401.2495875-27-iii@linux.ibm.com> X-Mailer: git-send-email 2.41.0 In-Reply-To: <20231115203401.2495875-1-iii@linux.ibm.com> References: <20231115203401.2495875-1-iii@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: 9rXu4AjXUjT1J9zSVl2CpI0z2C-CA11e X-Proofpoint-GUID: s4ZHT-IpHSSL7EXtoiGwwWPzfBiMndPZ 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-15_20,2023-11-15_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 impostorscore=0 phishscore=0 adultscore=0 clxscore=1015 mlxlogscore=839 mlxscore=0 bulkscore=0 malwarescore=0 spamscore=0 suspectscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311060000 definitions=main-2311150163 X-Rspamd-Queue-Id: A482E20023 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: jsnghemyrmxpijyg8mcxtm8uwppc6e1u X-HE-Tag: 1700080505-840636 X-HE-Meta: U2FsdGVkX18pwY6VewIrTPZDSeH9WLfnCG+S3v37CPhtImycYUcddhImgfxy1WNZlFlLC+3kuaKuwcPuyr/baA3gPr2mA/GYeVUW6lcHw5LEn/tYXuVgmUPEvWwFKCFtueEJ1kHAEHVixXt5ks8jLCWQ2SY+2hGZ+1GeWetbUP08oHdapI4U9VbQ+79RDdufWMdGZR+hupi/XXAdwFCa/4PTr9C3/8Y50ukYtsOZE8jE3Zj/7MXKG6F3XoXo+Nnga+HHWFmn77kPKEAPiXHXvOPS+NcktH+arS4K4sapbAVziT11LBouZkcc74R0tgKiXVHe+QSxLdd+ZQvsWtlmqkaghagKbbh2c+U+lNICQZKh3b9Tgx2+YnaNI4guJbN4jTjpfDWuOzXvUi0fN1BkLdne/OkNmKdENCbbaYGXLiW5mdV8QmfB53y7QajCdaDtdP3UG7BvFolDQHK0QZU25xYBAVssVrniPMKeqAmavRdazcqUuSIfQNQg6ymwpqZ2k0rBGtNMThE+Lewkvz3AG9J9cBBl6DMIp3skDNeBTKTRGiVALVdDbaHL564yOR/DGfxvwJtGRSpaHsx3cDOQ1BDtysnQHH8m9ItEMkzT16kxUkenI30if9lx6nl0NRVtvjIwdp6B/D/1y+I7+yvrL6k7+jl4Q4BA/N6Sk6SyyGb+auelW9OVg7wlHvd1gobDsTUdZx1Zqh8j4sX8Fal6kt1ACoPxt6b7vy/NmS938C2WYH3EV82/FdND66SvhIWGSVT9x/hAMu5oGTLOY7mRsbUXtCsisqzy0fd1nqWbCmTVj6yidN7Senx3m06374yT0I6ULKMUOFWRLKLdHSwlmKZZYyF7r0icKkiKdQnVABlu2vdOpP1LWJi6l6FFyRs9+Ut9XylCZ5qsxHtRhb9+ANzFt7y1upR+eJ0aGL2BkORWmduuSOejNTnuh4THZQWzP176sgSauzjvwHhEOEs NO2ChuNO /+Q0M2WyOkbuEA1xa1rP+0nER9RGfDpWa0M9Ztg2OVFleDHI5ku6qBzT5qRBhEAZPeCvstG5wdDuNVBwjVxS92h+k6EZlZwTzNUWF2SQtLlTVC9alK8mnqxKLiNG2qsOeaaoAuTvG0nfOyxYnJA6wUomebQoND3TiESJ/gShwbrHBaXYK8oOMet+jCsjjkV2ZUhH6HjVEfjJsSu+nHelaj5xfuw== 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..297c1062372a 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, PAGE_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