Received: by 10.223.176.5 with SMTP id f5csp1333612wra; Wed, 31 Jan 2018 05:01:29 -0800 (PST) X-Google-Smtp-Source: AH8x227nVqWzsuvSYl2ANL36urI2AD4hZJnX65ELTGg19sECrgANjMZeRvMXtYqLHMyj2m/+wTYv X-Received: by 2002:a17:902:b487:: with SMTP id y7-v6mr8154297plr.119.1517403689508; Wed, 31 Jan 2018 05:01:29 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1517403689; cv=none; d=google.com; s=arc-20160816; b=NxXhKnjmk7xIlWIaMfJjiXFzElGa1ClFfE1f5uKx38tAPgwOWUf1CBYxlsyd/TIOjx Xi2qg4YuZVKWEardbiX8Dez3gfD0+qKq2NVL8C4zhbeXfnjp3PqF4uXXt+YqA0nwxyHA lQhBLL0tDBl9EYeD9uWzQuce5FZYDUWG8JZAGqULQTWU6m1BpG2OhoHZXPfi6QOOtnTA UGQ+i8iMPQsmUa/QrokOikT7nz/oMRp2xOuKR1pk2gGWaixHrLG/X6NtR6NmkG0pUct6 eapDIofSypzYUHCGuZ/aGMpbdkL+yHawmJngyF48LFR8R1QzIDdS25UI0SRXCsmXZx9t 9LWg== 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-disposition:mime-version:references:message-id:subject:cc :to:from:date:dkim-signature:arc-authentication-results; bh=rb6bA7NqiOfDDwnb4RzfmjdQl+ES860QnQcWK7gq3F0=; b=Lx6gFh6NLYeVTC6rYSzDps7Nm/k9NVR6YJC1dNhdJJ7OX6dq+rI92ikjcC+9BlS5t9 wY8n0iV2KBC98KRJE48Kw5B8WfjOXdOE9S3S+SYI+wL4scFBUrSC5HzadnmYUirWLFCs Uc6I+sM0NSuOzzRe/Die5jRn0JXrVbAstL69t+VyivFY+nesGFAcFBls9C2SsFO+tXoK 7ha4GVYG3LDbFdvwp8ja9KJi/p7beOlRIVcGYwq6iRSPDwD5ZGkalnnpg325hKa7QN0B NzqkHPUsRYnwIKWWad+dKcPVSaQE5HOnGXk0mmd8Wt+sbkOz0FB5d3hGymgSy1s/DHqN P8oQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@armlinux.org.uk header.s=pandora-2014 header.b=hhLvZNNx; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=armlinux.org.uk Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id c18si10988898pgv.519.2018.01.31.05.01.14; Wed, 31 Jan 2018 05:01:29 -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; dkim=fail header.i=@armlinux.org.uk header.s=pandora-2014 header.b=hhLvZNNx; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=armlinux.org.uk Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753147AbeAaLqj (ORCPT + 99 others); Wed, 31 Jan 2018 06:46:39 -0500 Received: from pandora.armlinux.org.uk ([78.32.30.218]:35948 "EHLO pandora.armlinux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751953AbeAaLqi (ORCPT ); Wed, 31 Jan 2018 06:46:38 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=armlinux.org.uk; s=pandora-2014; h=Sender:In-Reply-To:Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date; bh=rb6bA7NqiOfDDwnb4RzfmjdQl+ES860QnQcWK7gq3F0=; b=hhLvZNNxh4et7mb9QHLP39Tdhs3nrt1393I7k3Juz+Eh5ki32KSUG16NbndxzJqcMnDSeTrji33MnGpCe7DOR+6fegyxZs016JpmgqkQFn9EcF7bW3ZYtcfVTgXvPr705c1s8OeaF/BjBm/yoShI8pCufGb8elZLpM3xKjRtac0=; Received: from n2100.armlinux.org.uk ([fd8f:7570:feb6:1:214:fdff:fe10:4f86]:36963) by pandora.armlinux.org.uk with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1egqqX-0000Fx-FI; Wed, 31 Jan 2018 11:46:33 +0000 Received: from linux by n2100.armlinux.org.uk with local (Exim 4.76) (envelope-from ) id 1egqqT-0005MI-Nf; Wed, 31 Jan 2018 11:46:29 +0000 Date: Wed, 31 Jan 2018 11:46:28 +0000 From: Russell King - ARM Linux To: Arnd Bergmann Cc: Anders Roxell , Linux Kernel Mailing List , Linux ARM Subject: Re: [PATCH] arch/arm/Kconfig: enable ARM_MODULE_PLTS when LOCKDEP=y Message-ID: <20180131114628.GG9418@n2100.armlinux.org.uk> References: <20180129234900.11121-1-anders.roxell@linaro.org> <20180129235710.GA9418@n2100.armlinux.org.uk> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Wed, Jan 31, 2018 at 12:25:33PM +0100, Arnd Bergmann wrote: > On Tue, Jan 30, 2018 at 12:57 AM, Russell King - ARM Linux > wrote: > > On Tue, Jan 30, 2018 at 12:49:00AM +0100, Anders Roxell wrote: > >> While testing multi_v7_defconfig with LOCKDEP enabled, the kernel > >> fails to load simple modules, as reported by kselftest: > >> > >> [ 34.107620] test_printf: section 4 reloc 2 sym 'memset': relocation > >> 28 out of range (0xbf046044 -> 0xc109f720) > >> selftests: printf.sh [FAIL] > >> > >> The problem that is seen when LOCKDEP is enabled without > >> ARM_MODULE_PLTS, is that LOCKDEP eats so much memory that the top of the > >> kernel gets out of reach from the bottom of the module area. > > > > This really doesn't follow IMHO - enabling various features can cause > > this, and we're not going to end up stuffing the Kconfig full of these > > select statements each time we find a combination of Kconfig symbols > > that cause it. > > > > lockdep isn't that special - I can (and do) build kernels with lockdep > > enabled, with modules, and I do not run into this problem. So it's > > not as simple as you make out in this commit description. > > > > It's likely that you have either a fairly full kernel configuration (it > > must be to place memset() more than 16MB) or you are not placing the > > kernel at 0xc0008000 due to memory reservations in the low memory. > > > >> Suggested-by: Arnd Bergmann > > > > I guess this was discussed privately with Arnd, since there's no record > > of the discussion on the lists - which is even more reason why the > > commit message needs to describe better why you need this change. > > I don't remember the original discussion exactly, but it's clear that > the addition of LOCKDEP to the build is what caused the size to > grow dramatically and prevent module loading. As I say above, it does not follow "lockdep is enabled" therefore "we need module plts" so I don't accept this argument. Yes, if you have a lot of features built in, then its entirely possible that enabling lockdep will cause the kernel to overflow the non-plt boundary. It will also be true that enabling a few more other features will also cause the kernel to overflow the non-plt boundary as well. Should we add those other features to a Kconfig expression too? At what point do we stop adding these? > There are two alternative ways to do this without forcing > ARM_MODULE_PLTS on all the time (which also triggered > the 0day bot warning): Yes, 0day is pointing out yet again what a silly idea it is to select symbols that (a) have dependencies and (b) are user visible, something that I've long disagreed about. > a) we could make ARM_MODULE_PLTS default to 'y' when > LOCKDEP is anbled, making it a more reasonable default while > also letting users turn it off when the lockdep-enabled kernel > is still small enough As I've said, I don't believe "LOCKDEP" therefore need "MODULE_PLTS" follows. It's just a symptom of an already large kernel. I suspect without lockdep, Ander's kernel is already approaching the problematical 16MB mark. Another option that causes the kernel to grow by a few megabytes is the kernel protection options (ronx etc). I suspect if Anders built a kernel that had lockdep enabled and ronx etc disabled, that there would be no need for module plts. Should we turn on module plts if lockdep or ronx is enabled? I don't think there's a _sane_ solution to this other than defaulting ARM_MODULE_PLTS to 'y' without any of these dependencies, and if people want to turn it off, they still can if they're sure they won't run into this situation. -- RMK's Patch system: http://www.armlinux.org.uk/developer/patches/ FTTC broadband for 0.8mile line in suburbia: sync at 8.8Mbps down 630kbps up According to speedtest.net: 8.21Mbps down 510kbps up