Received: by 2002:a05:6a10:a841:0:0:0:0 with SMTP id d1csp808838pxy; Wed, 21 Apr 2021 15:58:25 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxLCW9P5/jqGM04O+wCbyMvUGXpyr9KGO6IrIbbsKBnsplNdKSSWA6txTQy7lLQNgH7MM6E X-Received: by 2002:a05:6402:350f:: with SMTP id b15mr342979edd.6.1619045905039; Wed, 21 Apr 2021 15:58:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1619045905; cv=none; d=google.com; s=arc-20160816; b=y4QlA6NB3joeulKn2YeXBejOgh5tKKi5U46G43VcS+haLtcYFPbEOrOtwOgVLfeFX7 phOUsG1k9f4JSNTe8yxZRHUR7gA0AcePVN0rvT8nZouAecfXeRo086Fd6aT9l9y3O+RS jNZ7IhBn6LjlqHGi+Kkeb6LAFl6IEWyhf92Vm/jPLVzCGqyC4StgHc9eqhfzvJhHJCZ7 mTXpUPEL01R6BEvOAMMJsMw6t4SHr5H+yGVEbczCvqTWUr8V7ywyU2c16+TAb8VysH5E Z8scJ7xNBaAJTC4u2Lwh4L54bA2PRNOmC9yp1H0d9Vbl0D+J91vKOQBdVcyP9P9WwbTT zTpQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:references:cc :to:from:subject:dkim-signature; bh=KzQai6Tg69wKbEAWcqKNbEL/MC5Qt4Kn9kSRArYjd2g=; b=OGjpImYDQBqcy7Pewrln1bouv1cjYALk5QBhSCRUWiYYUXz0U52mCUjOp/7eSktFMr NjIXizgnzDTzZhy8B1SE7aAhq1CeAdfrwIWnx6QWMT/sutG2QMtwihBgyEeVzg1C8yEr ++mkCHe+dC7dP0zVMWgExfzgF3rwc5bCGPJ28NwhsmT1wolVlAW7V0xz8i0c+fgy44zo bzo4Ui21VZEHxUZX4hvbhYYCIzHoK0fD70HiSqGLzv4cOY3BduFumt50XJZL4KiKR6AB xcqgd9ZbU+hp8n0IZ72f1rxPlO7iwcJRX/3v/zITSOjNcB4Vb2vL/nig462+NR+PWc5S NyJg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=s7lpu9qI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id a6si542159edt.537.2021.04.21.15.58.00; Wed, 21 Apr 2021 15:58:25 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=s7lpu9qI; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243482AbhDUPSO (ORCPT + 99 others); Wed, 21 Apr 2021 11:18:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40288 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239567AbhDUPSN (ORCPT ); Wed, 21 Apr 2021 11:18:13 -0400 Received: from mail-pg1-x532.google.com (mail-pg1-x532.google.com [IPv6:2607:f8b0:4864:20::532]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2EF15C06174A; Wed, 21 Apr 2021 08:17:40 -0700 (PDT) Received: by mail-pg1-x532.google.com with SMTP id q10so30149635pgj.2; Wed, 21 Apr 2021 08:17:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:from:to:cc:references:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=KzQai6Tg69wKbEAWcqKNbEL/MC5Qt4Kn9kSRArYjd2g=; b=s7lpu9qIoTGsbb3qGjUxrXpmysb//u/qu+m3Te9oX2yvS4cFW3GrodM0J1j8OpEuz3 7rJ/E3//KYlvJOCIr3CXPU17b5ER7R9cM9Nup+fg8uq8ay20aOIBqpzlM1Ed56i4SGYP 4402FemHi+AnOvtD8fFROic4B5IkxaY96gFWppCPnUoqgQ7+mDR9DbMUgSEVK0BRLVqU 1ESorBljqOxtuvFFAM48FVwfnK0yaWnSLk1moWpBSqwYM1D8TQeuP1Mr3T1Dtu4UcHDj KQ8hNoUWdVim/JBhkrZ6s1cT75lt1ONMY+MP3O/it58Yz4GmJ557nFpvB5/QwOPXJVx+ kglg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:from:to:cc:references:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=KzQai6Tg69wKbEAWcqKNbEL/MC5Qt4Kn9kSRArYjd2g=; b=ZwHEYVwTNlcSgdK7r6xKdMO8yzbUWZkqQRVWNrgCG2sLUHneyCvlQ8Tooun0yyeggM x7vy1YUCW3z6xtULjeM0jmWkedwAxffp74gqzOtEn9g7jaG9wMMTqrX67oU91hF/qCi9 vLz2ONXOoMLlz1hN5lt1NVQJWDjCFtHBtr1U7/SUOzwNhUdxL3C4poek2cCFX7B6AS+S AR67Ria4oa9zb8IphvLqBsTPg4CBpcdmUtRRAGiWB2WtdKOGZHwUocnNWJ+GouuDzMQQ e8K+WpKXWFujtpUfXOYWlnJe0AAV/uX8v4MkH9TTNZEEFpFAbL202w1PhG72IkRtw8kH Tmbg== X-Gm-Message-State: AOAM530CGZBKdb/XVTfM3kZBcYVMWNU75px9WPMJvPjyA492k750yNqU bGdTtnQJxqF3gMUXq/+0ISE= X-Received: by 2002:a65:5282:: with SMTP id y2mr22785908pgp.293.1619018259633; Wed, 21 Apr 2021 08:17:39 -0700 (PDT) Received: from [10.230.29.202] ([192.19.223.252]) by smtp.gmail.com with ESMTPSA id h22sm2084545pfn.55.2021.04.21.08.17.30 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 21 Apr 2021 08:17:39 -0700 (PDT) Subject: Re: [v5.4 stable] arm: stm32: Regression observed on "no-map" reserved memory region From: Florian Fainelli To: Quentin Perret Cc: Ard Biesheuvel , Rob Herring , Alexandre TORGUE , Greg Kroah-Hartman , Sasha Levin , stable , Arnd Bergmann , "open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS" , "linux-kernel@vger.kernel.org" , Nicolas Boichat , Stephen Boyd , KarimAllah Ahmed , Android Kernel Team , Architecture Mailman List , Frank Rowand , linux-arm-kernel References: <4a4734d6-49df-677b-71d3-b926c44d89a9@foss.st.com> <001f8550-b625-17d2-85a6-98a483557c70@foss.st.com> Message-ID: <498b8759-1a70-d80f-3a4d-39042b4f608e@gmail.com> Date: Wed, 21 Apr 2021 08:17:28 -0700 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101 Firefox/78.0 Thunderbird/78.9.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 4/21/2021 7:33 AM, Florian Fainelli wrote: > > > On 4/21/2021 1:31 AM, Quentin Perret wrote: >> On Tuesday 20 Apr 2021 at 09:33:56 (-0700), Florian Fainelli wrote: >>> I do wonder as well, we have a 32MB "no-map" reserved memory region on >>> our platforms located at 0xfe000000. Without the offending commit, >>> /proc/iomem looks like this: >>> >>> 40000000-fdffefff : System RAM >>> 40008000-40ffffff : Kernel code >>> 41e00000-41ef1d77 : Kernel data >>> 100000000-13fffffff : System RAM >>> >>> and with the patch applied, we have this: >>> >>> 40000000-fdffefff : System RAM >>> 40008000-40ffffff : Kernel code >>> 41e00000-41ef3db7 : Kernel data >>> fdfff000-ffffffff : System RAM >>> 100000000-13fffffff : System RAM >>> >>> so we can now see that the region 0xfe000000 - 0xfffffff is also cobbled >>> up with the preceding region which is a mailbox between Linux and the >>> secure monitor at 0xfdfff000 and of size 4KB. It seems like there is >>> >>> The memblock=debug outputs is also different: >>> >>> [ 0.000000] MEMBLOCK configuration: >>> [ 0.000000] memory size = 0xfdfff000 reserved size = 0x7ce4d20d >>> [ 0.000000] memory.cnt = 0x2 >>> [ 0.000000] memory[0x0] [0x00000040000000-0x000000fdffefff], >>> 0xbdfff000 bytes flags: 0x0 >>> [ 0.000000] memory[0x1] [0x00000100000000-0x0000013fffffff], >>> 0x40000000 bytes flags: 0x0 >>> [ 0.000000] reserved.cnt = 0x6 >>> [ 0.000000] reserved[0x0] [0x00000040003000-0x0000004000e494], >>> 0xb495 bytes flags: 0x0 >>> [ 0.000000] reserved[0x1] [0x00000040200000-0x00000041ef1d77], >>> 0x1cf1d78 bytes flags: 0x0 >>> [ 0.000000] reserved[0x2] [0x00000045000000-0x000000450fffff], >>> 0x100000 bytes flags: 0x0 >>> [ 0.000000] reserved[0x3] [0x00000047000000-0x0000004704ffff], >>> 0x50000 bytes flags: 0x0 >>> [ 0.000000] reserved[0x4] [0x000000c2c00000-0x000000fdbfffff], >>> 0x3b000000 bytes flags: 0x0 >>> [ 0.000000] reserved[0x5] [0x00000100000000-0x0000013fffffff], >>> 0x40000000 bytes flags: 0x0 >>> >>> [ 0.000000] MEMBLOCK configuration: >>> [ 0.000000] memory size = 0x100000000 reserved size = 0x7ca4f24d >>> [ 0.000000] memory.cnt = 0x3 >>> [ 0.000000] memory[0x0] [0x00000040000000-0x000000fdffefff], >>> 0xbdfff000 bytes flags: 0x0 >>> [ 0.000000] memory[0x1] [0x000000fdfff000-0x000000ffffffff], >>> 0x2001000 bytes flags: 0x4 >>> [ 0.000000] memory[0x2] [0x00000100000000-0x0000013fffffff], >>> 0x40000000 bytes flags: 0x0 >>> [ 0.000000] reserved.cnt = 0x6 >>> [ 0.000000] reserved[0x0] [0x00000040003000-0x0000004000e494], >>> 0xb495 bytes flags: 0x0 >>> [ 0.000000] reserved[0x1] [0x00000040200000-0x00000041ef3db7], >>> 0x1cf3db8 bytes flags: 0x0 >>> [ 0.000000] reserved[0x2] [0x00000045000000-0x000000450fffff], >>> 0x100000 bytes flags: 0x0 >>> [ 0.000000] reserved[0x3] [0x00000047000000-0x0000004704ffff], >>> 0x50000 bytes flags: 0x0 >>> [ 0.000000] reserved[0x4] [0x000000c3000000-0x000000fdbfffff], >>> 0x3ac00000 bytes flags: 0x0 >>> [ 0.000000] reserved[0x5] [0x00000100000000-0x0000013fffffff], >>> 0x40000000 bytes flags: 0x0 >>> >>> in the second case we can clearly see that the 32MB no-map region is now >>> considered as usable RAM. >>> >>> Hope this helps. >>> >>>> >>>> In any case, the mere fact that this causes a regression should be >>>> sufficient justification to revert/withdraw it from v5.4, as I don't >>>> see a reason why it was merged there in the first place. (It has no >>>> fixes tag or cc:stable) >>> >>> Agreed, however that means we still need to find out whether a more >>> recent kernel is also broken, I should be able to tell you that a little >>> later. >> >> FWIW I did test this on Qemu before posting. With 5.12-rc8 and a 1MiB >> no-map region at 0x80000000, I have the following: >> >> 40000000-7fffffff : System RAM >> 40210000-417fffff : Kernel code >> 41800000-41daffff : reserved >> 41db0000-4210ffff : Kernel data >> 48000000-48008fff : reserved >> 80000000-800fffff : reserved >> 80100000-13fffffff : System RAM >> fa000000-ffffffff : reserved >> 13b000000-13f5fffff : reserved >> 13f6de000-13f77dfff : reserved >> 13f77e000-13f77efff : reserved >> 13f77f000-13f7dafff : reserved >> 13f7dd000-13f7defff : reserved >> 13f7df000-13f7dffff : reserved >> 13f7e0000-13f7f3fff : reserved >> 13f7f4000-13f7fdfff : reserved >> 13f7fe000-13fffffff : reserved >> >> If I remove the 'no-map' qualifier from DT, I get this: >> >> 40000000-13fffffff : System RAM >> 40210000-417fffff : Kernel code >> 41800000-41daffff : reserved >> 41db0000-4210ffff : Kernel data >> 48000000-48008fff : reserved >> 80000000-800fffff : reserved >> fa000000-ffffffff : reserved >> 13b000000-13f5fffff : reserved >> 13f6de000-13f77dfff : reserved >> 13f77e000-13f77efff : reserved >> 13f77f000-13f7dafff : reserved >> 13f7dd000-13f7defff : reserved >> 13f7df000-13f7dffff : reserved >> 13f7e0000-13f7f3fff : reserved >> 13f7f4000-13f7fdfff : reserved >> 13f7fe000-13fffffff : reserved >> >> So this does seem to be working fine on my setup. I'll try again with >> 5.4 to see if I can repro. >> >> Also, 8a5a75e5e9e5 ("of/fdt: Make sure no-map does not remove already >> reserved regions") looks more likely to cause the issue observed here, >> but that shouldn't be silent. I get the following error message in dmesg >> if I if place the no-map region on top of the kernel image: >> >> OF: fdt: Reserved memory: failed to reserve memory for node 'foobar@40210000': base 0x0000000040210000, size 1 MiB >> >> Is that triggering on your end? > > It is not, otherwise I would have noticed earlier, can you try the same > thing that happens on my platform with a reserved region (without > no-map) adjacent to a reserved region with 'no-map'? I will test > different and newer kernels than 5.4 today to find out if this is still > a problem with upstream. I could confirm that v4.9.259 also have this > problem now. 5.10.31 works correctly and shows the following for my platform: 40000000-fdffefff : System RAM 40200000-40eaffff : Kernel code 40eb0000-4237ffff : reserved 42380000-425affff : Kernel data 45000000-450fffff : reserved 47000000-4704ffff : reserved 4761e000-47624fff : reserved f8c00000-fdbfffff : reserved fdfff000-ffffffff : reserved 100000000-13fffffff : System RAM 13b000000-13effffff : reserved 13f114000-13f173fff : reserved 13f174000-13f774fff : reserved 13f775000-13f7e8fff : reserved 13f7eb000-13f7ecfff : reserved 13f7ed000-13f7effff : reserved 13f7f0000-13fffffff : reserved -- Florian