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 1F829EB64DA for ; Mon, 10 Jul 2023 17:18:35 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 7A31F6B0075; Mon, 10 Jul 2023 13:18:34 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 72BA78E0001; Mon, 10 Jul 2023 13:18:34 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 57E838D0001; Mon, 10 Jul 2023 13:18:34 -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 4122E6B0075 for ; Mon, 10 Jul 2023 13:18:34 -0400 (EDT) Received: from smtpin16.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id ED924801D6 for ; Mon, 10 Jul 2023 17:18:33 +0000 (UTC) X-FDA: 80996361306.16.3B5AD74 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) by imf21.hostedemail.com (Postfix) with ESMTP id DE4051C000A for ; Mon, 10 Jul 2023 17:18:30 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=Tmp9Ctr8; spf=pass (imf21.hostedemail.com: domain of lstoakes@gmail.com designates 209.85.128.53 as permitted sender) smtp.mailfrom=lstoakes@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1689009511; 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=t6oy+ikXFliz7hnRG2fRcIG8cUU4C16Syr9hNMIkcUc=; b=yJ6+g0165OnJbbokxwkBsHjfKBFypjuNBv+6fiQLMJVC4cK7Fw8CaSJGkg2EwctqM7X6mg bGtkQ5nxrWOlHH2GRtDrBAak28Xku/N5WM4+bNoT/B3TlADUjSzDlhTltKykuZ02TDWJRp 2WIvtu/ErAsfa94kNEKRg5aZZJC+lDg= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=Tmp9Ctr8; spf=pass (imf21.hostedemail.com: domain of lstoakes@gmail.com designates 209.85.128.53 as permitted sender) smtp.mailfrom=lstoakes@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1689009511; a=rsa-sha256; cv=none; b=eh3FxXXff9pso4n9QaSdozvR7iqJEh4F1EqB4gPSolQsBDA34NG0vSp3RHdk9COmK9XHuD M29FV7JRNxkymlLx47asTEU1KZK68AoOD60CGKVvpppMKi2hrIL9s8tQrgNKFVKNBXzroZ 4qYYsKaewWhLGQ5JeIoEwAc63ANNahY= Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-3fc03aa6e04so27327145e9.2 for ; Mon, 10 Jul 2023 10:18:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1689009509; x=1691601509; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:from:to:cc:subject:date:message-id:reply-to; bh=t6oy+ikXFliz7hnRG2fRcIG8cUU4C16Syr9hNMIkcUc=; b=Tmp9Ctr8fCoOjVTqIM3I/iC02vVdsUuLPEpkAiuhmbYbmOtaYkRQJwBrlLxiS+VHId TAhFKPzsbLqcVed9wIsAKkq+tUAvEQ5Msrd4+eDBUjUJ3jeav+WLPa6/xja+cJsnweBs svBDQAdU7RTVfHs+z/DowCYVhCL6lFmOcIX6KsCwztiymTl0d3yxEVQuq0oO56KoOlB6 RAcd/XY9w9vhOLwcV4dl+HavowDnexbKe/YjIMXI7EBzdnXywoWO/2ZsZFxK+WhWwD+R qnjbMQ554HUaFe2V9p55VvZ9RpnU3fJIPR7O0TkbnUvZnkVdGV2ztYrO69o9AgbsiMBt 9jCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1689009509; x=1691601509; h=in-reply-to:content-disposition:mime-version:references:message-id :subject:cc:to:from:date:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=t6oy+ikXFliz7hnRG2fRcIG8cUU4C16Syr9hNMIkcUc=; b=bLe+l4885FcglhnKSuX/x63ASdIyoujMzQszM6+VEkSwpgTms0TLSzwBeeq38Pdyvd j1jG8XxMhDdQZ6vbh4VOLG0r/BzhskOGNLAEpn1qFPgzw0TWiY5zB7YZBk3cKaqGBysg x1d1Ss7BNTgr+Uo0VaHNo5Lslb4ux1g9RZrwG4YkPLYmxTJVUI/1EsD+Ieu4Id8Ten+x ShzgXd6wzexaPqDvyofRDZn65YZ3EhWKTNGOpIUizHTY4/kWL6Y52Y4aM1r+PAbnyQSR 1y/i8kWBTq1dlLpbM3gY9WskES52M1QIDeVu2269U6pGWxe+DS4rkII/jl73bAaBtoJV UGsw== X-Gm-Message-State: ABy/qLYFSqBznYpbBaml20LV6cB5tThQ+N4yNm1ZuyaHbSvUsrA7UkmU 6QTvUkSrWHSBr+/OGMS/mhs= X-Google-Smtp-Source: APBJJlFsxSchrS9YTJrVYffunPhZZ0dq+oD6vU1Crkz0mGCPtBYkHOPKU7WAIbbEsNeJAYd6eN9QqQ== X-Received: by 2002:a5d:504d:0:b0:30f:c5b1:23ef with SMTP id h13-20020a5d504d000000b0030fc5b123efmr12080633wrt.41.1689009508817; Mon, 10 Jul 2023 10:18:28 -0700 (PDT) Received: from localhost ([2a00:23c5:dc8c:8701:1663:9a35:5a7b:1d76]) by smtp.gmail.com with ESMTPSA id i18-20020adfefd2000000b0031272fced4dsm12219311wrp.52.2023.07.10.10.18.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 10 Jul 2023 10:18:28 -0700 (PDT) Date: Mon, 10 Jul 2023 18:18:27 +0100 From: Lorenzo Stoakes To: Mark Brown Cc: Hugh Dickins , Andrew Morton , Mike Kravetz , Mike Rapoport , "Kirill A. Shutemov" , Matthew Wilcox , David Hildenbrand , Suren Baghdasaryan , Qi Zheng , Yang Shi , Mel Gorman , Peter Xu , Peter Zijlstra , Will Deacon , Yu Zhao , Alistair Popple , Ralph Campbell , Ira Weiny , Steven Price , SeongJae Park , Huang Ying , Naoya Horiguchi , Christophe Leroy , Zack Rusin , Jason Gunthorpe , Axel Rasmussen , Anshuman Khandual , Pasha Tatashin , Miaohe Lin , Minchan Kim , Christoph Hellwig , Song Liu , Thomas Hellstrom , Ryan Roberts , linux-kernel@vger.kernel.org, linux-mm@kvack.org, regressions@leemhuis.info, linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH v2 12/32] mm/vmalloc: vmalloc_to_page() use pte_offset_kernel() Message-ID: <901ae88d-ad0c-4e9d-b199-f1566cc62a00@lucifer.local> References: <696386a-84f8-b33c-82e5-f865ed6eb39@google.com> <42279f1f-7b82-40dc-8546-86171018729c@sirena.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <42279f1f-7b82-40dc-8546-86171018729c@sirena.org.uk> X-Rspamd-Queue-Id: DE4051C000A X-Rspam-User: X-Stat-Signature: bc3i764u1jyfxmpe9h8dqussobjhmo1k X-Rspamd-Server: rspam01 X-HE-Tag: 1689009510-84885 X-HE-Meta: U2FsdGVkX19XauwqGjbpFOKbq2K7yah4PyTVKQZFCNWyuK2v16TiAO3GtGVs05w6nm8H84gkRYtCH8/KQlJq8CPilmHavE12xSmRubXX3tullSPTNGcX6nsqaA/KUW6EFlKSQJgv3GeQpmknw9QsMrSLgm0wXR+tntkE6VwmDdYmxuTDmGGAxFks6wrDjlK/h89G97dhk3gnZ4x0rY/hofXN66SYVfchXPkIUruzksGWEPbriU7HZ5EdFB2OtEG7c4hck2skiYeC4AfOqPli+SZdX+4OBJj7M3u57aA8HLNrFkkjcKuZh7GJGdj90yKcXQbgbXifUSDaGamb42gZQKapZ7DyaeydWXSWVebypNyulih058hs1ePjUU3EKiNnfCIy77zxnQJeZe+aKldTuP3y3/aFkJ1V1cbCZFad3EkAhddTUou8gBJd7Uais8mFTC5GjTz0qhtc90Gh7x9x7Jk/09NxiiiPYrOFPdgSBZQBbTFiG+xY6I5tK0m0ODZDBILZEMuxg8bY8814WbMEOKKLamRULpfPV6ya8WIs6zyd1O8rhyVd9RT0tZpimeKfO2ilosdrBcLjMKs4yDtANk0eR/WvfX0tm4IE2dJtVyx5Xc6sXselfSyoS+zneg01ecuqB4sbUJpdIBD3n8sCgHj94LQck0BE3ZHL55jmEPu4BBUGFXo4OOqd4Zj0deKAepK9NvP5xU92dD6mbESeC5m8q9fhoFpiGbYV3phO+3e6ANZZhpTHuH+fuAilvG8fT3ZWdoj95zJMhxhCnK8AOnrYobJrEcMke+9r6xs+q1TU+BIFidMLxci7efrfhYLgExCRuGcqflmtFIJ777foezVflX4h7ai34BE4jbqehn5obWGYi5N0xGIwUdlhgcTddZvkqFcVXoh8OWQ4tuHjzpmV9sTl4SaPjm2KspRCknGrCFaQrxQohIpV2UN4od5Qn3XRs77nc89naVmS1zG GD91a8O1 Lemr0K1bRZrn1AW1fO/40XrEfbs2/ogeKZmuWBk38nGpDc4rsEmrTAcrLpH7aYQ7IcvDmeDv5lQS+jpD03JTwJZSMIqymR+3hAThQ6o2V7tsi8Bu3FkdgPTKavr9LFz3xCMDUq8P/XclsDbs3rPZhp/INWppe399/QRtfrHwvvoc1qCYHhz3sWyxYdjWidqU3AF7jizwG/YzdwZi7+VT1A+mJl/CbEEkXCpp9Glq3aQ9ldmb4RIHxVrOtLfyIwK0qdZuiWga3cwbv3lCJrnojtnM4SDyj5SMYj0+4UwERpoOntRinMyMQCE12lvR6z94t8t0NnvhyFTAN7b5ntp6JJgDZthgRdFr4ww0UXIeDnJQlekPOOj0utmZHClO3trg/54wqh8sTXiLdNno53m8PKtNPV0mssSTMBYFGil/FUryqHt+UtJY+h2UeMvydySEhGuX7rrGbcrrNgt02rXWqUzqyvElCTRXdeocgImQbxSo8iUtHBzhoJdr2zUV6BO6kOdWtdCydlBsNZn3JpfBAjYhASZ6Hy1pTAN7mFun1bKoCOdU1babyAInfgGZVfXcZrcKvZdgcwyVzytDnhizckPCHyqk/D83AROaiPsuC8u1fG5ECd9JYPjxY546ZO/spiPxx3J9k4CkFheFef7t0FHzu1NE9pXev+YfS 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: On Mon, Jul 10, 2023 at 03:42:31PM +0100, Mark Brown wrote: > On Thu, Jun 08, 2023 at 06:21:41PM -0700, Hugh Dickins wrote: > > vmalloc_to_page() was using pte_offset_map() (followed by pte_unmap()), > > but it's intended for userspace page tables: prefer pte_offset_kernel(). > > > > Signed-off-by: Hugh Dickins > > Reviewed-by: Lorenzo Stoakes > > Currently Linus' tree is reliably failing to boot on pine64plus, an > arm64 SBC. Most other boards seem fine, though I am seeing some > additional instability on Tritium which is another Allwinner platform, > I've not dug into that yet and Tritium is generally less stable. > > We end up seeing NULL or otherwise bad pointer dereferences, the > specific error does vary a bit though it mostly appears to be in the > pinctrl code. A bisect (full log below) identified this patch as > introducing the failure, nothing is jumping out at me about the patch > and it's not affecting everything so I'd not be surprised if it's just > unconvering some bug in the platform support but I'm not super familiar > with the code. Yeah seems likely. Do you have a .config you can share for this board? For a 64-bit device you'd expect that this change would probably be a nop. > > Sample backtrace: > > [ 1.919725] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 > [ 1.928551] Mem abort info: > [ 1.931359] ESR = 0x0000000096000044 > > ... > > [ 1.968870] [0000000000000000] user address but active_mm is swapper > > ... > > [ 2.093969] Call trace: > [ 2.096414] dt_remember_or_free_map+0xc8/0x120 > [ 2.100949] pinctrl_dt_to_map+0x23c/0x364 > [ 2.105050] create_pinctrl+0x68/0x3ec > [ 2.108803] pinctrl_get+0xb0/0x124 > [ 2.112294] devm_pinctrl_get+0x48/0x90 > [ 2.116133] pinctrl_bind_pins+0x58/0x158 > [ 2.120148] really_probe+0x54/0x2b0 > [ 2.123724] __driver_probe_device+0x78/0x12c > > Another common theme is the same but with an address like 0x4c and: > > [ 2.098328] __kmem_cache_alloc_node+0x1bc/0x2dc > [ 2.102947] kmalloc_trace+0x20/0x2c > [ 2.106524] pinctrl_register_mappings+0x98/0x178 > > Full boot log from a failure: > > https://lava.sirena.org.uk/scheduler/job/712456 > > git bisect start > # bad: [06c2afb862f9da8dc5efa4b6076a0e48c3fbaaa5] Linux 6.5-rc1 > git bisect bad 06c2afb862f9da8dc5efa4b6076a0e48c3fbaaa5 > # good: [6995e2de6891c724bfeb2db33d7b87775f913ad1] Linux 6.4 > git bisect good 6995e2de6891c724bfeb2db33d7b87775f913ad1 > # bad: [1b722407a13b7f8658d2e26917791f32805980a2] Merge tag 'drm-next-2023-06-29' of git://anongit.freedesktop.org/drm/drm > git bisect bad 1b722407a13b7f8658d2e26917791f32805980a2 > # bad: [3a8a670eeeaa40d87bd38a587438952741980c18] Merge tag 'net-next-6.5' of git://git.kernel.org/pub/scm/linux/kernel/git/netdev/net-next > git bisect bad 3a8a670eeeaa40d87bd38a587438952741980c18 > # bad: [6e17c6de3ddf3073741d9c91a796ee696914d8a0] Merge tag 'mm-stable-2023-06-24-19-15' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm > git bisect bad 6e17c6de3ddf3073741d9c91a796ee696914d8a0 > # good: [2605e80d3438c77190f55b821c6575048c68268e] Merge tag 'arm64-upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux > git bisect good 2605e80d3438c77190f55b821c6575048c68268e > # good: [72dc6db7e3b692f46f3386b8dd5101d3f431adef] Merge tag 'wq-for-6.5-cleanup-ordered' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq > git bisect good 72dc6db7e3b692f46f3386b8dd5101d3f431adef > # bad: [179d3e4f3bfa5947821c1b1bc6aa49a4797b7f21] mm/madvise: clean up force_shm_swapin_readahead() > git bisect bad 179d3e4f3bfa5947821c1b1bc6aa49a4797b7f21 > # good: [523716770e63e229dbb6307d663f03d990dfefc5] maple_tree: rework mtree_alloc_{range,rrange}() > git bisect good 523716770e63e229dbb6307d663f03d990dfefc5 > # good: [b764253c18821da31c49a260f92f5d093cf1637e] selftests/mm: fix "warning: expression which evaluates to zero..." in mlock2-tests.c > git bisect good b764253c18821da31c49a260f92f5d093cf1637e > # good: [5c7f3bf04a6cf266567fdea1ae4987875e92619f] s390: allow pte_offset_map_lock() to fail > git bisect good 5c7f3bf04a6cf266567fdea1ae4987875e92619f > # good: [0d940a9b270b9220dcff74d8e9123c9788365751] mm/pgtable: allow pte_offset_map[_lock]() to fail > git bisect good 0d940a9b270b9220dcff74d8e9123c9788365751 > # bad: [0d1c81edc61e553ed7a5db18fb8074c8b78e1538] mm/vmalloc: vmalloc_to_page() use pte_offset_kernel() > git bisect bad 0d1c81edc61e553ed7a5db18fb8074c8b78e1538 > # good: [2798bbe75b9c2752b46d292e5c2a49f49da36418] mm/page_vma_mapped: pte_offset_map_nolock() not pte_lockptr() > git bisect good 2798bbe75b9c2752b46d292e5c2a49f49da36418 > # good: [be872f83bf571f4f9a0ac25e2c9c36e905a36619] mm/pagewalk: walk_pte_range() allow for pte_offset_map() > git bisect good be872f83bf571f4f9a0ac25e2c9c36e905a36619 > # good: [e5ad581c7f1c32d309ae4e895eea0cd1a3d9f363] mm/vmwgfx: simplify pmd & pud mapping dirty helpers > git bisect good e5ad581c7f1c32d309ae4e895eea0cd1a3d9f363 > # first bad commit: [0d1c81edc61e553ed7a5db18fb8074c8b78e1538] mm/vmalloc: vmalloc_to_page() use pte_offset_kernel()