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 AEECDC47DD9 for ; Sun, 24 Mar 2024 23:32:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 396186B007B; Sun, 24 Mar 2024 19:32:06 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 343E06B0082; Sun, 24 Mar 2024 19:32:06 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2330F6B0083; Sun, 24 Mar 2024 19:32:06 -0400 (EDT) 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 15E316B007B for ; Sun, 24 Mar 2024 19:32:06 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id ADC9DC0134 for ; Sun, 24 Mar 2024 23:32:05 +0000 (UTC) X-FDA: 81933533010.27.282C438 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) by imf14.hostedemail.com (Postfix) with ESMTP id 77FB610000F for ; Sun, 24 Mar 2024 23:32:03 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=kI1vfql3; dmarc=none; spf=none (imf14.hostedemail.com: domain of BATV+9b69c840030af2843ecd+7518+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+9b69c840030af2843ecd+7518+infradead.org+hch@bombadil.srs.infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1711323124; a=rsa-sha256; cv=none; b=zIFTSTWwEyLIGZWX8ZVBVPk/RXgrHfE7hXELpdXrSjqlMNadFUt+GDYGmcRBbYeNahu8eg 4fc9fLuVO2bAoKEbpDKVFAYt3fb/T2cifKSWGZw/wJg609rmhrlNzlcx2Oy8FWlyqwT5so yxKt2+qbUWw6yKHTm2MjhKkow45/lAQ= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=infradead.org header.s=bombadil.20210309 header.b=kI1vfql3; dmarc=none; spf=none (imf14.hostedemail.com: domain of BATV+9b69c840030af2843ecd+7518+infradead.org+hch@bombadil.srs.infradead.org has no SPF policy when checking 198.137.202.133) smtp.mailfrom=BATV+9b69c840030af2843ecd+7518+infradead.org+hch@bombadil.srs.infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1711323124; 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:dkim-signature; bh=n/NjUq2bb1cMCrwf6KYJS5oPTzhOkpr05aucpVrqgaQ=; b=FUkaWZgv/OZuJdCca/eavqwhot1YTK5R6juObw5gJGFmk92DS36L77LK0xI1bUY7cwsPxj zA24EwEf6EWibCvjBBM/zFllURR47WJLDojUCGTVds2jxaZWmAvQZ7Nbt8ptasckL3P1oD D9UhoMm7VOvSB1Tp1k9s+EPGSLRQ9R4= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=In-Reply-To:Content-Type:MIME-Version :Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To:Content-Transfer-Encoding :Content-ID:Content-Description:References; bh=n/NjUq2bb1cMCrwf6KYJS5oPTzhOkpr05aucpVrqgaQ=; b=kI1vfql3b3NyH8HE9Loo1gSeCs YPq+9flBPldV35nuIjLa3piIGoOqSHRtTqXHQA714mhtJGwD9jkAWCqVuaY7SBXLSc5CeKAZgQwHm HvIYhg+Z9kNZ3zd215kchdSlLAomH1Jk9QgNBQBZ8bunkDUA0TJ7IFldQruZw5bT98TMGjLKUQHTk wtTMthmP8DNsqLOUwMGJPYZX3Xd8PkzSsCMuTwVVpimKsndUf8VqegzU//rv+9MzlNDucJMp2q0Nt kuefXPjkdiLl8YFBDPqi4L9cdCMZFdN6uvT9AxO+mMYiTgjPE9jNv7+zWS67nE59pPzTMNAcgVPlj PxzGSK4g==; Received: from hch by bombadil.infradead.org with local (Exim 4.97.1 #2 (Red Hat Linux)) id 1roXJo-0000000DsrL-3lYS; Sun, 24 Mar 2024 23:32:00 +0000 Date: Sun, 24 Mar 2024 16:32:00 -0700 From: Christoph Hellwig To: "Uladzislau Rezki (Sony)" Cc: linux-mm@kvack.org, Andrew Morton , LKML , Baoquan He , Lorenzo Stoakes , Christoph Hellwig , Matthew Wilcox , Dave Chinner , Guenter Roeck , Oleksiy Avramchenko , Heiko Carstens , 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: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20240323141544.4150-1-urezki@gmail.com> X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: 77FB610000F X-Stat-Signature: o3xwhd3hxo8abig787mqhtwqiodpx5jm X-HE-Tag: 1711323123-415849 X-HE-Meta: U2FsdGVkX18lkRWLQQDeszaS8nXHuD+B8K/Bz+DLDq/GpTNRivtlswtJmk2P8NOgs+OUlLxEux7/QG4Zxp/BXrAcxyzCLqYDS3bHV0O/Aa9pSFKZrVdlATb+rNyf3iO90c8JrKjNHk/c8jpMTlPRlM7tGEmbm/6h0A+ltRz6eqzhUr1uF/4mnk4lk/PIbsjzhTd9bvufT6blKwXXYeUqpBTrB7IkJ0o6atshquIbjv5knAB3podwwnn8yzVgwKwlx7CvU+eXI9A2PgRcxUyTFzzQbPw97fvjczwvVIEC0jd2bwL591XDtPK/fQSWTy+r4aK7qsBM35JhoRqIPnbWO+a80VcRfCBBW75B8Lcmu31bzx9dfq50wbjyINgUmDwV6I1xInK3WR2y8yKUxvw65Gx5Pd69JWEflDSJXJwZMmKNmA8fJuiCtpnCCCLRkJP7YgRawozxJ1lBxGl4FYJhk5zrW2wuxZfBbtPAAtGA/Rabvm3aUlyuittLx9PSA/+cq3hSDXdIpLmop6txL+YQVqDQtLYf4/+2P+yqSz6ISKj4aavXPrZcupmp5hZuVmhhg06b/Bx/ypoi4uGktp7Iy/sAJdCTlWb4iSRv/LC43oirrnydTL0XAmehedM1DjbSAJVeOzWNqf6iZyrjA99kU9wGEqtCHTvGlb1GsTU/441hoA8CYBNaU4egkHeoBh9ExzDqgP1xwKsnqKGsfoX4U2XVWa9qP0BBSnxrd6ihxkdp4vtBzWCnJ34XFSxFUPx8TgyyEfAwUzspTP/kOWfNF07uOQZnNQoPUZT19FkjolhxUdSHd3rsB5kO2rFONDJ1YFmPe/sPm6OcoNTqRVOTsjupspNQiCjY6fH2VGR62ijgR+5SJoYGk0lg/QypgnrHWn3/qBaMoyoHygylftyKJ4wxfx8FJSunPVsu1rolB1lbLWlQcMHZK553+q593+njLXPIXbMiVg0GDfAemNt p+JmBDBP xWhHM1oSsOx7QUYS58Z7mZS8UZhDCmAu8FOOdsyUM7BUVD9vNnTJME4aB3e1817Vi7Q5uOqwue8+fb1f/PlQZcJB3hwTrPtbXm/lndoCntBg0k62Ksx+dELrpZ6gm3RT2/jVMu3Q5fMAMlKiDgOYUuE324H1KpIrtie292e7iylBrQLu7UvJCGQwI07B7wq6nyBH3bkfX770HEK1P085OrIg9gJGpoRWG6mjh/nK3/urkZqFlntNaYMrNfLwhb4ctFlgClZLt9KdawTDg1yCG6BFoKrWqSeDPZHdl9QrpF6dCQiimmgiuOoL03zpTtz1e8Kz7wUW7bZU6s0ydrm6LLu2A8EpFZsy/xrm8fpzhSly3M1+0sqgQDOoxZJnON0EdHy8NlcsMe18u91t29KHipOIonOm5NHPPUHvj7Tffnu9Vp56D6ZW+XzKwmKPAWQuPm85cjaCU+000kSM9Q4B/UXXY1Uw9NIRPHw3efhiA/Eu4kLLR2ESrBV4XxJnJ5olxTbkm 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: 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. 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 > > it happens because such system tries to access some vmap areas > whereas the vmalloc initialization is not even yet done: > > [ 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] dump_stack_lvl (lib/dump_stack.c:117) > [ 0.466516] do_raw_spin_lock (kernel/locking/spinlock_debug.c:87 kernel/locking/spinlock_debug.c:115) > [ 0.466545] find_vmap_area (mm/vmalloc.c:1059 mm/vmalloc.c:2364) > [ 0.466572] find_vm_area (mm/vmalloc.c:3150) > [ 0.466597] __set_memory (arch/s390/mm/pageattr.c:360 arch/s390/mm/pageattr.c:393) > [ 0.466624] vmem_map_init (./arch/s390/include/asm/set_memory.h:55 arch/s390/mm/vmem.c:660) > [ 0.466651] paging_init (arch/s390/mm/init.c:97) > [ 0.466677] setup_arch (arch/s390/kernel/setup.c:972) > [ 0.466702] start_kernel (init/main.c:899) > [ 0.466727] startup_continue (arch/s390/kernel/head64.S:35) > [ 0.466811] INFO: lockdep is turned off. > ... > [ 0.718250] vmalloc init - busy lock init 0000000002871860 > [ 0.718328] vmalloc init - busy lock init 00000000028731b8 > > Some background. It worked before because the lock that is in question > was statically defined and initialized. As of now, the locks and data > structures are initialized in the vmalloc_init() function. > > To address that issue add the check whether the "vmap_initialized" > variable is set, if not find_vmap_area() bails out on entry returning NULL. > > Fixes: 72210662c5a2 ("mm: vmalloc: offload free_vmap_area_lock lock") > Signed-off-by: Uladzislau Rezki (Sony) > --- > mm/vmalloc.c | 3 +++ > 1 file changed, 3 insertions(+) > > 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; > + > /* > * An addr_to_node_id(addr) converts an address to a node index > * where a VA is located. If VA spans several zones and passed > -- > 2.39.2 > ---end quoted text---