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 49E89C54E64 for ; Mon, 25 Mar 2024 09:40:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id BF2706B0083; Mon, 25 Mar 2024 05:40:19 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id BA2416B0087; Mon, 25 Mar 2024 05:40:19 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id A458D6B0088; Mon, 25 Mar 2024 05:40:19 -0400 (EDT) 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 927A76B0083 for ; Mon, 25 Mar 2024 05:40:19 -0400 (EDT) Received: from smtpin23.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 4CEAB160B39 for ; Mon, 25 Mar 2024 09:40:19 +0000 (UTC) X-FDA: 81935065758.23.BDE9A03 Received: from mx0b-001b2d01.pphosted.com (mx0b-001b2d01.pphosted.com [148.163.158.5]) by imf28.hostedemail.com (Postfix) with ESMTP id EBCD6C000A for ; Mon, 25 Mar 2024 09:40:16 +0000 (UTC) Authentication-Results: imf28.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b=gDPgmlkW; dmarc=pass (policy=none) header.from=ibm.com; spf=pass (imf28.hostedemail.com: domain of hca@linux.ibm.com designates 148.163.158.5 as permitted sender) smtp.mailfrom=hca@linux.ibm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1711359617; a=rsa-sha256; cv=none; b=QKDcNDNZMXvcsV19liV2dXG0Av83d+BqfeOkMFa5bOf8zGiuL09l7dHrsfG7cyUR9pMkIy 48/jdYAi/tnkdNqbzp0ikUXIkNwyy7DX9haEVlEUObhvePE+Rf1mOKSJqfKrJXJBi2g0pi bERUEH6SE9IQeOnYPayyJgkTVvYZ/dw= ARC-Authentication-Results: i=1; imf28.hostedemail.com; dkim=pass header.d=ibm.com header.s=pp1 header.b=gDPgmlkW; dmarc=pass (policy=none) header.from=ibm.com; spf=pass (imf28.hostedemail.com: domain of hca@linux.ibm.com designates 148.163.158.5 as permitted sender) smtp.mailfrom=hca@linux.ibm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1711359617; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=lbLk1l291cRpU9S2Tsbm27SJWoB+hUfjrtZd/Xy3feI=; b=cj7SDg84cIGf1d7uct9xciNQt8paR7EPfXiV7DEfJGkcPl/MylCkku/AGLjl0jh7Z1IV+F xRPyonQvn1jegf21Gr8yTAOyjwazxd3cNLv1twy+qluHjPOnz8pjGRrLkhCvInjulavDxK hNmnZjTWLJIQhIdY59zUi1GtUhpthiE= Received: from pps.filterd (m0360072.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 42P5ua6K001614; Mon, 25 Mar 2024 09:40:09 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=date : from : to : cc : subject : message-id : references : mime-version : content-type : in-reply-to; s=pp1; bh=lbLk1l291cRpU9S2Tsbm27SJWoB+hUfjrtZd/Xy3feI=; b=gDPgmlkWNRs6tmUokyl+eLPZ0a2jRGDPaWEEPatE9xDpYmhLwmeEuPJ1lppcoBxVhEaB wPz3wtBJO2JsB0dmBs28JVcK1mPiA3DbjynMs1X0bzbVIpDxNgVGxUXcEVyI0OEJgi4E YCKrGTZt/qNVKGaGZ1rC4DdOmda7pdYXQ0X9idpnSR0ECD7Tf3Ga9ct+FPlUI6EidrTM cZ8By8BlnJL9udeRRtbMHX5MsaV6yEH6x+aEZOOHLAZ4eh7lQOXE4qx13hWvi2GI7AVg RqI6eC0ycdgh3Cb2+ghPwJxoSggmdzmfMtOGmTT37DZ1Dofn9kNTajYm4sCkJaRuAXXU 0g== Received: from pps.reinject (localhost [127.0.0.1]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3x2hh69x12-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 25 Mar 2024 09:40:08 +0000 Received: from m0360072.ppops.net (m0360072.ppops.net [127.0.0.1]) by pps.reinject (8.17.1.5/8.17.1.5) with ESMTP id 42P9ZRcQ008400; Mon, 25 Mar 2024 09:40:08 GMT 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 3x2hh69x0x-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 25 Mar 2024 09:40:07 +0000 Received: from pps.filterd (ppma12.dal12v.mail.ibm.com [127.0.0.1]) by ppma12.dal12v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 42P7Zx2Y016410; Mon, 25 Mar 2024 09:40:07 GMT Received: from smtprelay04.fra02v.mail.ibm.com ([9.218.2.228]) by ppma12.dal12v.mail.ibm.com (PPS) with ESMTPS id 3x29dtrhms-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 25 Mar 2024 09:40:06 +0000 Received: from smtpav05.fra02v.mail.ibm.com (smtpav05.fra02v.mail.ibm.com [10.20.54.104]) by smtprelay04.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 42P9e1KP22544922 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 25 Mar 2024 09:40:03 GMT Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9C6872004E; Mon, 25 Mar 2024 09:40:01 +0000 (GMT) Received: from smtpav05.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id CED8520040; Mon, 25 Mar 2024 09:40:00 +0000 (GMT) Received: from osiris (unknown [9.171.70.91]) by smtpav05.fra02v.mail.ibm.com (Postfix) with ESMTPS; Mon, 25 Mar 2024 09:40:00 +0000 (GMT) Date: Mon, 25 Mar 2024 10:39:59 +0100 From: Heiko Carstens To: Christoph Hellwig Cc: "Uladzislau Rezki (Sony)" , linux-mm@kvack.org, Andrew Morton , LKML , Baoquan He , Lorenzo Stoakes , Matthew Wilcox , Dave Chinner , Guenter Roeck , Oleksiy Avramchenko , Vasily Gorbik , Alexander Gordeev , Christian Borntraeger , Sven Schnelle , linux-s390@vger.kernel.org Subject: Re: [PATCH 1/1] mm: vmalloc: Bail out early in find_vmap_area() if vmap is not init Message-ID: <20240325093959.9453-B-hca@linux.ibm.com> References: <20240323141544.4150-1-urezki@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: _9711NiWy7-EsEOQcdt74z12AqRCg_ZC X-Proofpoint-GUID: cWCtJLwizTW0fQFZ-RczZfodSfAwtBtC X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-03-25_07,2024-03-21_02,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 bulkscore=0 priorityscore=1501 lowpriorityscore=0 mlxlogscore=778 spamscore=0 phishscore=0 clxscore=1011 impostorscore=0 suspectscore=0 malwarescore=0 adultscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2403210000 definitions=main-2403250052 X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: EBCD6C000A X-Stat-Signature: pxig5dx7at59zgg34i4feduby7b4qxmr X-HE-Tag: 1711359616-589695 X-HE-Meta: U2FsdGVkX1/5gWtBHZrEaocf/B5jZ0qozQQWE2OwnY4tNtpPt/DFfQXQehv/Xw0g7rODGzZAWehoH2Tb/SoYBwWC1OLBNsWLYpmZZOifP8rIPe1gXCqqx9CKUXauZiWAH7QzsMwoNtNsvmVpBgZE+sy3TnGmo+7CkAZHD7k9b2QxJFMDIs5aMfAkRPca2EhilpPAH+k+51Ugx9RlaLH578H+fUTE0Aiv260iH6TBYywc8mzJ433Babo8aNfgRND7eqFCAixuTOu4FEbcZHfCJLdw/7T/vyVWbHTyIkElrabfE6j37bfpSbb20JcKuV+jPKMWqtFotSeHthG/4DaJ1zmMuSeM828FiNXxgsitUCwuohBTU1gOMxAOWvbJCMwZvupP8QpwNodluv5woExC43+NqWyG01qJdLUiyVSrcIAWiWAiAwxND/jNzr38UST0UAqSO6ai8E+vHRjcM4f6VTQHaTNtoFp1ljOLtZi/D6+nTJ0Iyd4L4MzlEUJP0i1lgFWdA2OJVqz8PAGvYco3W0FcmVznHvRbRh7ipEtY30i6S45XfF+0ouKczJ21AczXlv6JHbQIwZxPwx3F78vdpEgJP6jISnUxaAS/qSLqHBqYapSDoPAImbTQ++8wx1YQEYtzpiTQ9DuMshouRsCXj5HIQdrJUw+DqWGOMX+OVgxW58RPoaqgmj3XNBomd6D54B2yEZZY9exAjXQvoTM3MzouMtq7IqWEIstu6Z5ltEyCxlIFE1fh/YtAPpJPJhBxaOChMhhByR6N3EwXeM8wIsWUwzvB7bLgSznIKJsCb0sKGvk4VLqHLO+CUoO+9eZmjU3Cvud+uqAXhSeKemign+GW/Ud7QgnEMWo9v3qslwfhkThMKovVZK1R9i86FrVlM5oUNfi+Cx4oiHUXVEC7Tbij9Kh5rOgXuIljtC9ZjXfVY4kDeyRJPhshpjLoQI/Zqmb77I6S5kK6ib16nkh KvOP8e20 CAGW9jSjxQ1EyeTyg5+5UcsdLBw== 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 Sun, Mar 24, 2024 at 04:32:00PM -0700, Christoph Hellwig wrote: > On Sat, Mar 23, 2024 at 03:15:44PM +0100, Uladzislau Rezki (Sony) wrote: > > During the boot the s390 system triggers "spinlock bad magic" messages > > if the spinlock debugging is enabled: > > > > [ 0.465445] BUG: spinlock bad magic on CPU#0, swapper/0 > > [ 0.465490] lock: single+0x1860/0x1958, .magic: 00000000, .owner: /-1, .owner_cpu: 0 > > [ 0.466067] CPU: 0 PID: 0 Comm: swapper Not tainted 6.8.0-12955-g8e938e398669 #1 > > [ 0.466188] Hardware name: QEMU 8561 QEMU (KVM/Linux) > > [ 0.466270] Call Trace: > > [ 0.466470] [<00000000011f26c8>] dump_stack_lvl+0x98/0xd8 > > [ 0.466516] [<00000000001dcc6a>] do_raw_spin_lock+0x8a/0x108 > > [ 0.466545] [<000000000042146c>] find_vmap_area+0x6c/0x108 > > [ 0.466572] [<000000000042175a>] find_vm_area+0x22/0x40 > > [ 0.466597] [<000000000012f152>] __set_memory+0x132/0x150 > > [ 0.466624] [<0000000001cc0398>] vmem_map_init+0x40/0x118 > > [ 0.466651] [<0000000001cc0092>] paging_init+0x22/0x68 > > [ 0.466677] [<0000000001cbbed2>] setup_arch+0x52a/0x708 > > [ 0.466702] [<0000000001cb6140>] start_kernel+0x80/0x5c8 > > [ 0.466727] [<0000000000100036>] startup_continue+0x36/0x40 ... > > diff --git a/mm/vmalloc.c b/mm/vmalloc.c > > index 22aa63f4ef63..0d77d171b5d9 100644 > > --- a/mm/vmalloc.c > > +++ b/mm/vmalloc.c > > @@ -2343,6 +2343,9 @@ struct vmap_area *find_vmap_area(unsigned long addr) > > struct vmap_area *va; > > int i, j; > > > > + if (unlikely(!vmap_initialized)) > > + return NULL; > > + > > I guess this is ok as an urgend bandaid to get s390 booting again, > but calling find_vmap_area before the vmap area is initialized > seems an actual issue in the s390 mm init code. > > Adding the s390 maintainers to see if they have and idea how this could > get fixed in a better way. I'm going to push the patch below to the s390 git tree later. This is not a piece of art, but I wanted to avoid to externalize vmalloc's vmap_initialized, or come up with some s390 specific change_page_attr_alias_early() variant where sooner or later nobody remembers what "early" means. So this seems to be "good enough". >From 0308cd304fa3b01904c6060e2115234101811e48 Mon Sep 17 00:00:00 2001 From: Heiko Carstens Date: Thu, 21 Mar 2024 09:41:20 +0100 Subject: [PATCH] s390/mm,pageattr: avoid early calls into vmalloc code The vmalloc code got changed and doesn't have the global statically initialized vmap_area_lock spinlock anymore. This leads to the following lockdep splat when find_vm_area() is called before the vmalloc code is initialized: BUG: spinlock bad magic on CPU#0, swapper/0 lock: single+0x1868/0x1978, .magic: 00000000, .owner: swapper/0, .owner_cpu: 0 CPU: 0 PID: 0 Comm: swapper Not tainted 6.8.0-11767-g23956900041d #1 Hardware name: IBM 3931 A01 701 (KVM/Linux) Call Trace: [<00000000010d840a>] dump_stack_lvl+0xba/0x148 [<00000000001fdf5c>] do_raw_spin_unlock+0x7c/0xd0 [<000000000111d848>] _raw_spin_unlock+0x38/0x68 [<0000000000485830>] find_vmap_area+0xb0/0x108 [<0000000000485ada>] find_vm_area+0x22/0x40 [<0000000000132bbc>] __set_memory+0xbc/0x140 [<0000000001a7f048>] vmem_map_init+0x40/0x158 [<0000000001a7edc8>] paging_init+0x28/0x80 [<0000000001a7a6e2>] setup_arch+0x4b2/0x6d8 [<0000000001a74438>] start_kernel+0x98/0x4b0 [<0000000000100036>] startup_continue+0x36/0x40 INFO: lockdep is turned off. Add a slab_is_available() check to change_page_attr_alias() in order to avoid early calls into vmalloc code. slab_is_available() is not exactly what is needed, but there is currently no other way to tell if the vmalloc code is initialized or not, and there is no reason to expose e.g. vmap_initialized from vmalloc to achieve the same. The fixes tag does not mean that the referenced commit is broken, but that there is a dependency to this commit if the vmalloc commit should be backported. Fixes: d093602919ad ("mm: vmalloc: remove global vmap_area_root rb-tree") Signed-off-by: Heiko Carstens --- arch/s390/mm/pageattr.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/arch/s390/mm/pageattr.c b/arch/s390/mm/pageattr.c index 01bc8fad64d6..b6c6453d66e2 100644 --- a/arch/s390/mm/pageattr.c +++ b/arch/s390/mm/pageattr.c @@ -344,6 +344,9 @@ static int change_page_attr_alias(unsigned long addr, unsigned long end, struct vm_struct *area; int rc = 0; + /* Avoid early calls into not initialized vmalloc code. */ + if (!slab_is_available()) + return 0; /* * Changes to read-only permissions on kernel VA mappings are also * applied to the kernel direct mapping. Execute permissions are -- 2.40.1