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 9B7CEE65D2F for ; Fri, 22 Nov 2024 08:14:44 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 2D3196B00C1; Fri, 22 Nov 2024 03:14:44 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 283CB6B00C2; Fri, 22 Nov 2024 03:14:44 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0FB8D6B00C3; Fri, 22 Nov 2024 03:14:44 -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 E3FB86B00C1 for ; Fri, 22 Nov 2024 03:14:43 -0500 (EST) Received: from smtpin19.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 8D90241762 for ; Fri, 22 Nov 2024 08:14:43 +0000 (UTC) X-FDA: 82813017210.19.2EBF6A2 Received: from galois.linutronix.de (Galois.linutronix.de [193.142.43.55]) by imf28.hostedemail.com (Postfix) with ESMTP id 7FAF8C0002 for ; Fri, 22 Nov 2024 08:13:43 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=linutronix.de header.s=2020 header.b="X8/CePgd"; dkim=pass header.d=linutronix.de header.s=2020e header.b=ty9nn9U9; dmarc=pass (policy=none) header.from=linutronix.de; spf=pass (imf28.hostedemail.com: domain of bigeasy@linutronix.de designates 193.142.43.55 as permitted sender) smtp.mailfrom=bigeasy@linutronix.de ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1732263094; a=rsa-sha256; cv=none; b=Jy6lCjKxteyoJ1gICSZqQabH0bfJU3qRpU7FUNZUr+y1xCvx7e4vmTu7AI1yCHjVsIeV5Q BL1/lxWJl94LdXeuTt2gQLjHQvjurOQcSBx2o8vXZX5X+HaMZDEd1jWdp1HF1r+pXc1T2t MRgvLWy7OOTPblgrQ4sxQWDtsOE8HaU= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=linutronix.de header.s=2020 header.b="X8/CePgd"; dkim=pass header.d=linutronix.de header.s=2020e header.b=ty9nn9U9; dmarc=pass (policy=none) header.from=linutronix.de; spf=pass (imf28.hostedemail.com: domain of bigeasy@linutronix.de designates 193.142.43.55 as permitted sender) smtp.mailfrom=bigeasy@linutronix.de ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1732263094; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=y5f2KKQBZsbL1m3fb5DYI0rcFDbRUsBKOLW2TE7xMXs=; b=QowhKqqR4k1H/2/rw2UYYOR00hRFVDzMSgg+TZgGmtCwZIdcM3xy2Ym46xQWCRGYtSglbl xIMdFoDCGiljE4Qzp3WlZyOTmBEMe5L1EJrfh3M+o+NTgNhn+e0rCfVX2jLetH6WR1oV9E CU6PONnnY/bhvwKLKFtpVy9JjXL3MB0= Date: Fri, 22 Nov 2024 09:14:37 +0100 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020; t=1732263279; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=y5f2KKQBZsbL1m3fb5DYI0rcFDbRUsBKOLW2TE7xMXs=; b=X8/CePgdUUdEnwy6Fi2ZFBHOa9AEprEVeoMWD3xDy01h2FB+x+EirdMXc5Jd9MugW1X2Vm VSS9vV3+uTloDZ7+EqsVPFs5AJ9Z9dpVcBlHQE2Uvj8PhlZ/PNBU2fw/BQiiZmZRASv1E+ 9bZIuLzZPFSZcjYllNDZLvNXiwAvJRL9o+0PGGhzZ1UGk1+OHxF6Slhamz3GX6TEuZjBQx CBAeNE3LF3BeLcshQrS6i6ripYEpVo23sMsNSaj+HrEqbkda4qVXxcjWgzSeH0yhEDnv/m DHXNx2CmDgHsZjCGTQuU3A2cXXp6RnTVGj8+vnfutyqF2/nv0YefyzQrrijH8w== DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=linutronix.de; s=2020e; t=1732263279; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=y5f2KKQBZsbL1m3fb5DYI0rcFDbRUsBKOLW2TE7xMXs=; b=ty9nn9U91upjTVz6kKxbFz/p2pnkJeqnDd60WHqElO+N2rl6a9ra3vA6HupAVB7lKWBnUf 0T8I3AsFwcMeXLBw== From: Sebastian Andrzej Siewior To: Catalin Marinas Cc: Steven Rostedt , Alessandro Carminati , Andrew Morton , Clark Williams , linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-rt-devel@lists.linux.dev, Thomas Weissschuh , Alessandro Carminati , Juri Lelli , Gabriele Paoloni , Eric Chanudet Subject: Re: [PATCH] mm/kmemleak: Fix sleeping function called from invalid context in kmemleak_seq_show Message-ID: <20241122081437.AKxGgM9n@linutronix.de> References: <20241120102325.3538-1-acarmina@redhat.com> <20241120102602.3e17f2d5@gandalf.local.home> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: X-Stat-Signature: 4yo6hmq6n5yeukn3wrgwuyfexe94p51g X-Rspamd-Queue-Id: 7FAF8C0002 X-Rspamd-Server: rspam08 X-Rspam-User: X-HE-Tag: 1732263223-508338 X-HE-Meta: U2FsdGVkX193CVq0iVmLAkOjB4QcaOV0qcJk8K7jBdIfmcsrLqYgVNqZvUxMfBT69O/TsZZCGG8YDF0+QAck9Lq+X9fUJhM48K+etBPWdSzko34ukWc/TC4lAnahYN7VVJXYENOo85YIWOWqI2esb0gvofPkm2sJ6lkR7+lGrXQ/LSdbLYDOHFBEcBa6l0wk+zAkoCGwS3Ktukq9jH8s7xIIn6hgBYjuCw5TURMKrqW5w4yJ/mgg8tF4DbIbtOl05CRlNDGX6b2aIhEEHiLy1TKHTtwtsQPpD1dihTnCQIg5J9P4JYffslvFCaKOy8CSMzqPeEcrCcoLh0LfD63dtylgDl+ltFuJLaWviaIUaZ9lsyzH1LJfHuPOADYH8I8WIj3EO9vTr04Zy7eyI6jSOSKjxnqIAV3J6TNoJmhwcSBEEGuqUb2tRQHMmHtEn6bdWqkYey1nk3Bg8GN4znWWGtRVH574UqD9LXo0Nxbfnjd7HHVOyboF+pKnIz1i1gHNITlf2CTtKudA9vuSuFKvmANAlctoviXCVemjMuvW6TzsL4cEMpy15p/SncaewefTNzBKgKaAGYDmuU3cwrz33kyghB6WZsEedR6ZeME1e8UkDIwdfqZ98xYrA83xCjLJzNN/BemZuSWJz9koqn8AhImDXg1m8YVpKQiCd0FabSBwISuLyjBntZ+X+AtwZjffsbbpDXW241Uwb5eEmFgkhwhvBghjrUkuenErC3tWOszHt0vbWHhfcLJtS267B0mw41cw2sUxJnCN/eBC5FVXIFSb9tTyfhqAwWZd2gX6l6wr6FzVn3J043cjoUEQjBW6SUnwOOdbq3O7vfmOrGOBhmwVSChVdtYeCYOU3/qjjCoCdQKsYmQTcgTlNWhBeXhXAhbV8th71D4scKeRRSx+lus6u4dHluymWluBJXQekoaAVB2OXVMieWPs2yeR/B9mruzQF17Q6z8aG8C+t3J pjXQYlGr ejdFTQUCujCxvvk9MK7pZ4+KJjQ2zo3rilC5WVyWnbmg5hBh7P8+vgR2XZBYS3rlwUkYmYhSWVE69t2ZJgUp38kRXF/xBzSe03EaLET1IiFDS7mESnfQUG2l4cWBcENZednrTqRUaBvqn+hWb1iGt36QIjP9F2GVM7mykLgxfHUk8lqawqldNGnyPSFnt6Boyu3iS1U2+WdgkUvm2+pzOS1S6fSP/wgMhGsYFyYmIVw62xRE= 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: On 2024-11-21 19:19:05 [+0000], Catalin Marinas wrote: =E2=80=A6 > > Maybe SELinux locks should be converted to raw? I don't know how long t= hat > > lock is held. There are some loops though :-/ > >=20 > > avc_insert(): > >=20 > > spin_lock_irqsave(lock, flag); > > hlist_for_each_entry(pos, head, list) { > > if (pos->ae.ssid =3D=3D ssid && > > pos->ae.tsid =3D=3D tsid && > > pos->ae.tclass =3D=3D tclass) { > > avc_node_replace(node, pos); > > goto found; > > } > > } > > hlist_add_head_rcu(&node->list, head); > > found: > > spin_unlock_irqrestore(lock, flag); > >=20 > > Perhaps that could be converted to simple RCU? > >=20 > > As I'm sure there's other places that call vsprintf() under a raw_spin_= lock > > or non-preemptable context, perhaps this should be the fix we do. >=20 > My preference would also be to convert SELinux rather than avoiding the > issue in kmemleak (and other similar places). No. kmemleak has been made use a raw_spinlock_t because most of what it does is something that is not used in production on a PREEMPT_RT system and falls in the same category as lockdep for instance. And that code calls into LSM/ selinux. Before making the lock in selinux a raw_spinlock_t you have to think about the consequences in general and audit the code. From a quick look, there is also avc_insert() invoked in that callchain which allocates memory and this is a no no. Also, if you make the solution here in selinux to use a raw_spinlock_t you would have to do it also in every LSM as they might be used instead of selinux. Therefore, I still prefer adding PREEMPT_RT to the restricted_pointer() category for atomic invocations. Sebastian