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 D61C2C4332F for ; Wed, 13 Dec 2023 23:37:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 125E96B05A2; Wed, 13 Dec 2023 18:37:08 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 0555F6B05A1; Wed, 13 Dec 2023 18:37:07 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id D572F8D0079; Wed, 13 Dec 2023 18:37:07 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id B72F36B059F for ; Wed, 13 Dec 2023 18:37:07 -0500 (EST) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 8B82CA0BF7 for ; Wed, 13 Dec 2023 23:37:07 +0000 (UTC) X-FDA: 81563408094.14.12F530E Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by imf04.hostedemail.com (Postfix) with ESMTP id 2E0484000B for ; Wed, 13 Dec 2023 23:37:04 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b=a+xMfSQN; 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=1702510625; 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=KKQ+/x5aBUFVSHNTE5+u0C93kqAMHLy+4zXkcQqC2PY=; b=ltdNHt7Rn8DAzfw6bJHv7uqxNaA7R5YSHLGh7WyRkCwDrYvyfVD6HICdCuMTpkhRGWZozU SzHZCXrChsPCSboZWz6/vRLSE4egQtPOlHad3gxGJpH4tZpRk9oQJe9z5+dwjADMSlcIAq y7uDNMEZXus15F8hh/VfrCxhivyqX2A= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b=a+xMfSQN; 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=1702510625; a=rsa-sha256; cv=none; b=kz1fG0zF8WYppyQmA+kJuvyS1/M6prBzdKeoTruNN9xL9N9d9UaINkuIgFWlFddIuS6+8Z UU9pY/FswsV+Sqjn0C11H2lEd3t+Hzi4uXX8e8wUzBe9IqJz3Y4MdVi12UKTwEsBQrQAWy XzjP+cDu79ToadnaUhn0TzUr+UxVRpA= Received: from pps.filterd (m0353726.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3BDM7CtE015847; Wed, 13 Dec 2023 23:36:57 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=KKQ+/x5aBUFVSHNTE5+u0C93kqAMHLy+4zXkcQqC2PY=; b=a+xMfSQN60Zosn0PI81EMAF4iY520/iP3v9Go9PFZ6MMlXPomoueq2Ez2smx8b0GVB0h /Bj6t51LVnuCeIlcxLRdQLYnMmrLuXgt1/16Wg0BstV79h+ehRTfeOeByPkVLNlJfcj0 FZdPraGjUCULl+aHf7mZwssQpyMKKzPburxiGRZaG6X8tX27PiB9w9Tdeb1yE/HGWRVP 2nvtddCISxWAXZAQ1luQIjaGLqtlnLKyJEBVxSh2TJ+lbEJh4wyXU2NZsZr/Iqg6QoEV kpgM/0LiaDkcYoKUGn6fSQq2aOxqNEZt1vGUnMbqUXwtkRqq3negMXD7hUUCPiX8mdiQ Jw== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3uyn4d1q9y-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 13 Dec 2023 23:36:57 +0000 Received: from m0353726.ppops.net (m0353726.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 3BDNQFao006872; Wed, 13 Dec 2023 23:36:56 GMT 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 3uyn4d1q98-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 13 Dec 2023 23:36:56 +0000 Received: from pps.filterd (ppma22.wdc07v.mail.ibm.com [127.0.0.1]) by ppma22.wdc07v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 3BDLGUp7028201; Wed, 13 Dec 2023 23:36:55 GMT Received: from smtprelay02.fra02v.mail.ibm.com ([9.218.2.226]) by ppma22.wdc07v.mail.ibm.com (PPS) with ESMTPS id 3uw2xyvrsa-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Wed, 13 Dec 2023 23:36:54 +0000 Received: from smtpav02.fra02v.mail.ibm.com (smtpav02.fra02v.mail.ibm.com [10.20.54.101]) by smtprelay02.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 3BDNap6R27263494 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 13 Dec 2023 23:36:51 GMT Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id BA37D20040; Wed, 13 Dec 2023 23:36:51 +0000 (GMT) Received: from smtpav02.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 52BFE20043; Wed, 13 Dec 2023 23:36:50 +0000 (GMT) Received: from heavy.boeblingen.de.ibm.com (unknown [9.171.70.156]) by smtpav02.fra02v.mail.ibm.com (Postfix) with ESMTP; Wed, 13 Dec 2023 23:36:50 +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 v3 27/34] s390/irqflags: Do not instrument arch_local_irq_*() with KMSAN Date: Thu, 14 Dec 2023 00:24:47 +0100 Message-ID: <20231213233605.661251-28-iii@linux.ibm.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20231213233605.661251-1-iii@linux.ibm.com> References: <20231213233605.661251-1-iii@linux.ibm.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: IYnxAzNVYRzPOrpd-XtDyC5bRWSG5SiX X-Proofpoint-GUID: xGq4qQaEqxkSC5s6qSjoXz9Vr7RdbrF2 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-12-13_14,2023-12-13_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 spamscore=0 mlxscore=0 malwarescore=0 phishscore=0 lowpriorityscore=0 mlxlogscore=999 impostorscore=0 clxscore=1015 priorityscore=1501 adultscore=0 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2312130167 X-Rspam-User: X-Stat-Signature: 6h7f8c56qynr8psd5pc1mkp5f17u1uxz X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 2E0484000B X-HE-Tag: 1702510624-736003 X-HE-Meta: U2FsdGVkX18uZcJwcviyHVyPJlvoup4f9E2lX2HoW2LVPSmM6pfB2WoKklmnJ1F60VhQ+p4/8JZK4XdzrOGM1YP0Sza2Bv+WZVn6MLLFCUsrTj4xOxIdHR21xJ3nXz/LyuT4HnOJdM6XHmfg9RJTLpKJv5PikAicYLjYPocHcg4CunbHr4S3csA+k6OS0sy1beO6Avp7Y2b7sDei75zcS/R2PzZLn697a4ylVVeJ6yGZMYlQx7x6pEoFjxtvk3FXnO9f3jFnpbeE+DDkn+1EPjv0ArGz9lRSZn5OZZGynx8DP0z9WruGP59xGjmmxkZPeOj+iD0GUFG4rmbihkA8GOc40iK5nZEVIhGF8I5l7jD8fSaapHNr1pNnOJ8/ykcE8LylyTHswo2REuCU2AyHhi13Fcf7IqUCywPEoI6Bw3CEtzy/U12ofmI+RxA5B/gJIM1BR1VFdcUA1VQnzNkb0tpqiLsqnZorHEgFwP9ejaybQNyqM8ybb4ZIHlrW/iQa5tM+23meC2k81RMxyE8jvBgwMA3tusCfO0XN2nySYRFxljA5fLaA5eM6TFsB3t/XG9X+EZxaWvU12Nr2pzW5RJ8jefMO7z6NPxdhvfCpqaqxw9wVFvsXBU2aJI7b/B9rTxp8Hsv3OvchpzC8hTOdvr3efDS/i4HOdWnTSmfWG+ZklJ1HjIo4skQkgjHkDHK8Ek45vBAIcKGq4xa9BXANFTP5tQp2RkzLbg3MQFqZ3P4wO75fxfU+AL2L3fMJHjsaMFAhSIquuFaKdTYFCJPGRTTTplUo4bIVyPGDQ1mE6Ifug+BgGhtbizo6xFuWyvczz6th8R2Z/LOZPdqIJawUaGEvPiPzWQ67nDTNp9dRVITIBv7gNV2V90UkaT5YMFHZ/mAjNhQ8n6jfLN27/NqKqSM39q/vLes+IFi5lrpr6zzKZ3PRKfnK8/krXBcoaGiOJl34mSXhUsTOC7rJZnL qrS8uD3k xDCIL9x1PnQY9z7WLTm8Hpz8s4BwUGvLaG9QZDH5gcsTwa5B9eXkbfx/ZXxd5k25xKZnYrRpREV8ZScPIBhR1nTQMhQNINkoo4gIeRscpb+PD0/XwM7vZBYucBa0vW3qYWeoFFNgpiQEw+aORAFpoXkxCO2DiGvNoNw0J2M0TiJPlqr02SfsPglDwC/UIxrwcS9N0ycZDyYg2AT4WjPj5+dqyuMuob+GwFkIkLBCWf5HVvK3qv9nVocG6Lpnr5QKwtKbj X-Bogosity: Ham, tests=bogofilter, spamicity=0.000021, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: KMSAN generates the following false positives on s390x: [ 6.063666] DEBUG_LOCKS_WARN_ON(lockdep_hardirqs_enabled()) [ ...] [ 6.577050] Call Trace: [ 6.619637] [<000000000690d2de>] check_flags+0x1fe/0x210 [ 6.665411] ([<000000000690d2da>] check_flags+0x1fa/0x210) [ 6.707478] [<00000000006cec1a>] lock_acquire+0x2ca/0xce0 [ 6.749959] [<00000000069820ea>] _raw_spin_lock_irqsave+0xea/0x190 [ 6.794912] [<00000000041fc988>] __stack_depot_save+0x218/0x5b0 [ 6.838420] [<000000000197affe>] __msan_poison_alloca+0xfe/0x1a0 [ 6.882985] [<0000000007c5827c>] start_kernel+0x70c/0xd50 [ 6.927454] [<0000000000100036>] startup_continue+0x36/0x40 Between trace_hardirqs_on() and `stosm __mask, 3` lockdep thinks that interrupts are on, but on the CPU they are still off. KMSAN instrumentation takes spinlocks, giving lockdep a chance to see and complain about this discrepancy. KMSAN instrumentation is inserted in order to poison the __mask variable. Disable instrumentation in the respective functions. They are very small and it's easy to see that no important metadata updates are lost because of this. Signed-off-by: Ilya Leoshkevich --- arch/s390/include/asm/irqflags.h | 18 +++++++++++++++--- drivers/s390/char/sclp.c | 2 +- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/arch/s390/include/asm/irqflags.h b/arch/s390/include/asm/irqflags.h index 02427b205c11..7353a88b2ae2 100644 --- a/arch/s390/include/asm/irqflags.h +++ b/arch/s390/include/asm/irqflags.h @@ -37,12 +37,19 @@ static __always_inline void __arch_local_irq_ssm(unsigned long flags) asm volatile("ssm %0" : : "Q" (flags) : "memory"); } -static __always_inline unsigned long arch_local_save_flags(void) +#ifdef CONFIG_KMSAN +#define ARCH_LOCAL_IRQ_ATTRIBUTES \ + noinline notrace __no_sanitize_memory __maybe_unused +#else +#define ARCH_LOCAL_IRQ_ATTRIBUTES __always_inline +#endif + +static ARCH_LOCAL_IRQ_ATTRIBUTES unsigned long arch_local_save_flags(void) { return __arch_local_irq_stnsm(0xff); } -static __always_inline unsigned long arch_local_irq_save(void) +static ARCH_LOCAL_IRQ_ATTRIBUTES unsigned long arch_local_irq_save(void) { return __arch_local_irq_stnsm(0xfc); } @@ -52,7 +59,12 @@ static __always_inline void arch_local_irq_disable(void) arch_local_irq_save(); } -static __always_inline void arch_local_irq_enable(void) +static ARCH_LOCAL_IRQ_ATTRIBUTES void arch_local_irq_enable_external(void) +{ + __arch_local_irq_stosm(0x01); +} + +static ARCH_LOCAL_IRQ_ATTRIBUTES void arch_local_irq_enable(void) { __arch_local_irq_stosm(0x03); } diff --git a/drivers/s390/char/sclp.c b/drivers/s390/char/sclp.c index d53ee34d398f..fb1d9949adca 100644 --- a/drivers/s390/char/sclp.c +++ b/drivers/s390/char/sclp.c @@ -736,7 +736,7 @@ sclp_sync_wait(void) cr0_sync.val = cr0.val & ~CR0_IRQ_SUBCLASS_MASK; cr0_sync.val |= 1UL << (63 - 54); local_ctl_load(0, &cr0_sync); - __arch_local_irq_stosm(0x01); + arch_local_irq_enable_external(); /* Loop until driver state indicates finished request */ while (sclp_running_state != sclp_running_state_idle) { /* Check for expired request timer */ -- 2.43.0