Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp1326507imu; Wed, 16 Jan 2019 17:18:16 -0800 (PST) X-Google-Smtp-Source: ALg8bN7/fCVay+QHy2kYylb6NOx0zBXyrKu+PgxgVLuRqGH6K8Uugd1g6wcb687WjPP2y7Zqn0UI X-Received: by 2002:a62:4c:: with SMTP id 73mr12758171pfa.24.1547687895987; Wed, 16 Jan 2019 17:18:15 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1547687895; cv=none; d=google.com; s=arc-20160816; b=V1oWm1NTHOP46mauQ/TRj8pCYYNSHhIsiQmJ8L64Po0SPLVqRfMLEdr34RmEAltJ4K UluhXKuWn8lpkO1jCcu6ixLLciZ1QJDpVBUoJragsUqwHcqaWtrV9CTCOBC3Trsm6zBk LfFyNDCl3L4jMsiRevC1yeTXIceT1OZYY40Qq7oySsYZyiq2f9Xv31K9pCMudL8qlfMK dkOInmWODeIZ6NszFGdp23RYQnmFyu6jyn/krxjZx5GfZLWKJYkiEyC65o5t7sQHauJ8 wSh+/6LEDW5PWJcATvFP4WDEtMV9FPpQgMFIdzCuv1HHlIhyt6awQG9tpKmeRQCqUTey e01g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:user-agent:in-reply-to :content-transfer-encoding:content-disposition:mime-version :references:message-id:subject:cc:to:from:date; bh=PcwoHBB/umKkdRr68BLejTb1GNwssbXCIThF+oXEXt8=; b=nWFU1TYhQa4fxyo/uxmzFC7Qf8TMxrYVHUIOffpDlXoiYyTtTFdTTklKk6BMZsdc79 KOj2chb2xKaFoZ0LxSHMrtmHvSA+Jd1sccFlN8ISvO2rSTLXvVJyeY009Cycgb9UDriZ 69nc54UJkPeON7wyoFGlSveurpXphcD4muYs3cOfmL7gmecMeZfjyvqmFw0xxvLdK17X DDje3kyJVUgritxfsfRvjxbFU4myq/ASoa6NZsKKwu4XOrFf/ws+xpJ1B6ymgSwbnoui Cshs4WAJuuHp//baH1fFUvDQXoq58uHkV4ozKIaHpD/UpZq3pvnWR8eGGTDc3NkOC48Z w3bA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id v9si87834pgo.23.2019.01.16.17.17.56; Wed, 16 Jan 2019 17:18:15 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727854AbfAPXsb (ORCPT + 99 others); Wed, 16 Jan 2019 18:48:31 -0500 Received: from mout.gmx.net ([212.227.15.19]:60983 "EHLO mout.gmx.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727477AbfAPXsa (ORCPT ); Wed, 16 Jan 2019 18:48:30 -0500 Received: from longitude ([89.0.34.110]) by mail.gmx.com (mrgmx003 [212.227.17.190]) with ESMTPSA (Nemesis) id 0Lymoh-1hLRBr0TZ9-0168bR; Thu, 17 Jan 2019 00:48:20 +0100 Date: Thu, 17 Jan 2019 00:48:16 +0100 From: Jonathan =?utf-8?Q?Neusch=C3=A4fer?= To: Christophe Leroy Cc: Jonathan =?utf-8?Q?Neusch=C3=A4fer?= , Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org Subject: Re: [PATCH v2 00/15] powerpc/32s: Use BATs/LTLBs for STRICT_KERNEL_RWX Message-ID: <20190116234816.GG22334@latitude> References: <20190113181621.GA22334@latitude> <714e78ba-1e92-a856-3dd6-a1fb96ad3785@c-s.fr> <20190113210227.GB22334@latitude> <334b1b02-b652-499c-904e-09e6f7164b8c@c-s.fr> <20190115003353.GD22334@latitude> <20190116003535.GE22334@latitude> <20190116131637.GF22334@latitude> <5051e5cb-89ea-b857-1288-1ac6bfe67872@c-s.fr> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <5051e5cb-89ea-b857-1288-1ac6bfe67872@c-s.fr> User-Agent: Mutt/1.10.1 (2018-07-13) X-Provags-ID: V03:K1:f4WhRHRfBK7irSH0np6l6iYlgX0fD16gk4O0MAFAs5b8rykTadh TLKkYyRRIKk/XXp5kHZqyT+gFGidAvaDEh19icBhTcvzY8SnmPocA5Aok/R6vin9DMSiuCb goc//2CzEHzE7pPTym9z2RGXGHS6eCTmgxB8VieWNJCpEmPP2njHQMoLjHbnSxa486mXWte CANdSNLt5/HkkYZhFvasg== X-Spam-Flag: NO X-UI-Out-Filterresults: notjunk:1;V03:K0:bhWBjvVB4Ko=:Kwq6yeh0OK4dwtKJ6VJoPy xqatNBzMkZvqD6eKJJH4cUnKYgDKM3VxGtAYKwDR+3dUlaFVuqQHTqjvhB+amK9mDdzvmo40T pulbTnbads1eSalmZBoFjXGiv062aX98legIk8FqoVE6bJzzd0ffUNzlTkAKcm0UtbkvzhG53 AulX4EK/jFA/8MRx7Hdl0bzUad/w74mfSdSXzmapfbPdiFV0wHV2I8dtqakBrUaT8Ci8S0hO1 UUJ4ThkJ5uzykvHhdWV4EnfUjf/s11zNPc47rOLmv/2j9FNML41xB/i1NfCYmCvj0MqVVJk/n 2fmaqmpg2BFefMt3sGWg8FfkxnAzhRw8p8yoeFlSO5D7FQqcTROXW0mTJh6SOargHYSxu/M8o ulPWE71Rv8OkabSsw8aA2t/iWIZWTJXv0iUz1bBKyjlWDsrqbXucW/Sg3TjfTVWlHCxdMhnOv CnGiQcvg6fYjmT0CXtnIb+SLu9Q6SoXrmDj6KK1AxqAWc1/ivA/1uHxGtdLIWOwD6vNjJb99y 2TS7aV+bQDuIEIQRGt7v4j3dzjN46uHp3uqIzjrHYERsifhlGlbtvOZlnPbjnX5PLqLbATWZA kZ8mqIcMXhis87H7Vd+CZZfK60xEu3FPcJB5be38qIJfhaL9CPocEK+xgpnIpPLIfrPr3xasR vf243N+9+wur7qrCUH/+ZyXeuK/PzIfENQ/vkE9TXWnKCZvNepYlNks35jVyF7zToj2XawfxY jsBaqWJlXQxUMs+QL7ccZ8yxq6uzeXaqAt0tggl3Dd/qL1MdosubFlK87syKRMUbXlaJaz8ZF g10LOlUZxRxwku9/4JCDOSGnKUa1x5BEIWBBVraPO4XOVipgiGtjBUYG9lb3gAoO9elKc/rPq BfEVddbosW7WufyKKjf7Eu8E7Y1zTn0Su/5tq7lYKHep/Kxjn/jVC0QHdsVov5 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jan 16, 2019 at 02:34:53PM +0100, Christophe Leroy wrote: > Le 16/01/2019 à 14:16, Jonathan Neuschäfer a écrit : > > On Wed, Jan 16, 2019 at 07:55:29AM +0100, Christophe Leroy wrote: > > > Le 16/01/2019 à 01:35, Jonathan Neuschäfer a écrit : > > > > Thinning the kernel down a bit actually makes it boot again. Ooops...! > > > > Maybe enabling CONFIG_STRICT_KERNEL_RWX has made it just large enough to > > > > fail the hash table allocation, but there may have been other factors > > > > involved (I'm not sure exactly). Sorry for the confusion! > > > > > > Ok, that must be the reason. Thanks for testing. > > > > > > What about the following modification which maps a second 256Mb BAT, does it > > > helps ? > > > > > > > > > > > > diff --git a/arch/powerpc/kernel/head_32.S b/arch/powerpc/kernel/head_32.S > > > index c2f564690778..ea574596de37 100644 > > > --- a/arch/powerpc/kernel/head_32.S > > > +++ b/arch/powerpc/kernel/head_32.S > > > @@ -1160,6 +1160,14 @@ initial_bats: > > > mtspr SPRN_DBAT0U,r11 /* bit in upper BAT register */ > > > mtspr SPRN_IBAT0L,r8 > > > mtspr SPRN_IBAT0U,r11 > > > +#ifdef CONFIG_WII > > > + addis r11,r11,0x10000000@h > > > + addis r8,r8,0x10000000@h > > > + mtspr SPRN_DBAT2L,r8 > > > + mtspr SPRN_DBAT2U,r11 > > > + mtspr SPRN_IBAT2L,r8 > > > + mtspr SPRN_IBAT2U,r11 > > > +#endif > > > isync > > > blr > > > > > > diff --git a/arch/powerpc/mm/ppc_mmu_32.c b/arch/powerpc/mm/ppc_mmu_32.c > > > index 3f4193201ee7..a334fd5210a8 100644 > > > --- a/arch/powerpc/mm/ppc_mmu_32.c > > > +++ b/arch/powerpc/mm/ppc_mmu_32.c > > > @@ -259,6 +259,8 @@ void setup_initial_memory_limit(phys_addr_t > > > first_memblock_base, > > > /* 601 can only access 16MB at the moment */ > > > if (PVR_VER(mfspr(SPRN_PVR)) == 1) > > > memblock_set_current_limit(min_t(u64, first_memblock_size, 0x01000000)); > > > + else if (IS_ENABLED(CONFIG_WII)) > > > + memblock_set_current_limit(min_t(u64, first_memblock_size, 0x20000000)); > > > else /* Anything else has 256M mapped */ > > > memblock_set_current_limit(min_t(u64, first_memblock_size, 0x10000000)); > > > } > > > > I haven't tested it, but this patch won't be enough, because we're only > > looking at the first memblock, and the additional memory in the Wii > > (MEM2) is the second memblock. > > > > Yes right. > > > Would the following work instead ? > > memblock_set_current_limit(0x20000000); With the config at https://gist.githubusercontent.com/neuschaefer/12ccc87ff8aeff543fad558e8742cd2b/raw/d49d321709cac364779e6893bbd91ff5a80bcb03/config it still doesn't boot, but with a different error: top of MEM2 @ 13F00000 zImage starting: loaded at 0x01000000 (sp: 0x0178afa0) Allocating 0x166b2c8 bytes for kernel... Decompressing (0x00000000 <- 0x01011000:0x01788799)... Done! Decompressed 0xf421f4 bytes Linux/PowerPC load: root=/dev/mmcblk0p2 rootwait console=usbgecko1 Finalizing device tree... flat tree at 0x178b7a0 [ 0.000000] printk: bootconsole [udbg0] enabled [ 0.000000] __memblock_find_range_top_down(1000:20000000, 100000:100000, ffffffff, 0) [ 0.000000] __memblock_find_range_top_down: in loop, 10000000:13f00000 [ 0.000000] Total memory = 319MB; using 1024kB for hash table (at d3e00000) [ 0.000000] __memblock_find_range_top_down(1000:20000000, 1000:1000, ffffffff, 0) [ 0.000000] __memblock_find_range_top_down: in loop, 10000000:13e00000 [ 0.000000] __memblock_find_range_top_down(1000:20000000, 1000:1000, ffffffff, 0) [ 0.000000] __memblock_find_range_top_down: in loop, 10000000:13dff000 [ 0.000000] BUG: Unable to handle kernel data access at 0xc106a434 [ 0.000000] Faulting instruction address: 0xc0071bf4 [ 0.000000] Oops: Kernel access of bad area, sig: 11 [#1] [ 0.000000] BE PREEMPT [ 0.000000] Modules linked in: [ 0.000000] CPU: 0 PID: 0 Comm: swapper Not tainted 5.0.0-rc1-wii-00038-gc34b70d591b6-dirty #1337 [ 0.000000] NIP: c0071bf4 LR: c00727d8 CTR: 00000000 [ 0.000000] REGS: c0f1fd30 TRAP: 0300 Not tainted (5.0.0-rc1-wii-00038-gc34b70d591b6-dirty) [ 0.000000] MSR: 00001032 CR: 44002842 XER: 00000000 [ 0.000000] DAR: c106a434 DSISR: 40000000 [ 0.000000] GPR00: c0074a98 c0f1fde0 c0ead4a0 c0ead4a0 c0ead9c8 00000008 00000000 00000000 [ 0.000000] GPR08: 00000003 c106a418 00000258 00000001 24000444 fb43ef5b c0f30000 7561f327 [ 0.000000] GPR16: c0f40000 691cfd11 38afe359 f161e513 00000000 c0ead9c8 00000001 00000000 [ 0.000000] GPR24: 00000000 c0f46288 00000000 c0ead4a0 c0ead9c8 00000008 c0ead4a0 00000100 [ 0.000000] NIP [c0071bf4] mark_lock+0x64/0x858 [ 0.000000] LR [c00727d8] __lock_acquire+0x334/0x1a40 [ 0.000000] Call Trace: [ 0.000000] [c0f1fe20] [00000006] 0x6 [ 0.000000] [c0f1fed0] [c0074a98] lock_acquire+0x110/0x20c [ 0.000000] [c0f1ff10] [c085e8cc] _raw_spin_lock+0x44/0x60 [ 0.000000] [c0f1ff30] [c007f220] vprintk_emit+0xa0/0x328 [ 0.000000] [c0f1ff70] [c007fc48] printk+0x5c/0x84 [ 0.000000] [c0f1ffb0] [c0c00854] start_kernel+0x64/0x460 [ 0.000000] [c0f1fff0] [00003438] 0x3438 [ 0.000000] Instruction dump: [ 0.000000] 41820170 55086cfe 550a083c 7d4a4214 554a1838 3d20c0f4 7d4a4214 39296288 [ 0.000000] 554a1838 3d290012 7d295214 39293f38 <8129001c> 7fe94839 41820028 3bc00001 [ 0.000000] random: get_random_bytes called from print_oops_end_marker+0x34/0x6c with crng_init=0 [ 0.000000] ---[ end trace 0000000000000000 ]--- [ 0.000000] [ 0.000000] Kernel panic - not syncing: Attempted to kill the idle task! Not sure what's wrong. It does work with wii_defconfig, though. I think for now I'm happy without this patch, as it doesn't seem to be really necessary. Jonathan