Received: by 2002:a05:6a10:9848:0:0:0:0 with SMTP id x8csp4465618pxf; Tue, 16 Mar 2021 14:22:14 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzcCYktivNlZ+QRsVwY3hpGS5QYY4kAt0ExXWuoDioCdozURBGB1SVjBXBzakZ70tXDI23S X-Received: by 2002:a17:906:f8d5:: with SMTP id lh21mr31861217ejb.64.1615929734545; Tue, 16 Mar 2021 14:22:14 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1615929734; cv=none; d=google.com; s=arc-20160816; b=AQKNrtApfPCdbr1kP6xWDn9A/QFQDooG0rIZ1/SNS+HWmFdQyOEJlY+IqQyoLbyuZb LzNewpcx7zzyBQ4JBq7dU06cYguKeJZYMAxy8l/kboYtR0hNG8HceGPRYhAN9xYbQLwo GhSpNK9QKusIkKtdUeealTKcK6LGTaqO+kTdi+aM0Dw0Q66rtUzS5e87CJ1ckjWWKDcI sBaM3etmgKWlZnzKs670x2rx9DXNupM3ZIYXvtlsz9pEUhxAQNTL56hDWbc08AcLsWZ/ r6sAFPUS4jeR+iwfA2s1kQq0h43f3mN12IzZhD6c3I6UzZrb3vri0kOho1Kl1QuUJolU 0YLA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:user-agent:in-reply-to:content-disposition :mime-version:references:message-id:subject:cc:to:from:date; bh=FoihYqq6WFb6nvTRiqF364nyGGIJfMrcKRacr/PU7jc=; b=XCmwhNnJXrCBKQJ/Id+dSyzCk2TvhnV5YQRypobjl7kVcVyf8/YcEVo8jQ1Y4JLIMI n49mXnCv5BAxBQWWEZUVL2qYqUls/VThf68QgbY1CazoPXe4QgHSuv7WhgSFcbeB7ck+ 7tKgKdqPzTyAiCJXVWBijtZ6ch4d0eqTZFDrb2fnqQf4x8YiPJ5JaiidQ7MGVogIhiwU HQygjoiLjfM0oWTbJ3zfdFkU7C4fxZYjsg4BsiDfKnGFA0HAlUrrWQQcWasxl4xO2gkE CS8e0ITPgMOBgIF+PAtLJaMGkSuY0W9UoPaC1pBshJHzMau8Yl2zDULAUlmBld182anQ 7fdg== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id y22si15196839edc.181.2021.03.16.14.21.52; Tue, 16 Mar 2021 14:22:14 -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; 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=fail (p=NONE sp=NONE dis=NONE) header.from=arm.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240307AbhCPTJz (ORCPT + 99 others); Tue, 16 Mar 2021 15:09:55 -0400 Received: from mail.kernel.org ([198.145.29.99]:55968 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S236915AbhCPTJ1 (ORCPT ); Tue, 16 Mar 2021 15:09:27 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id EFBDA6513D; Tue, 16 Mar 2021 19:09:25 +0000 (UTC) Date: Tue, 16 Mar 2021 19:09:23 +0000 From: Catalin Marinas To: Arnd Bergmann Cc: Fangrui Song , Kees Cook , Will Deacon , Ard Biesheuvel , Mark Rutland , Marc Zyngier , David Brazdil , Linux ARM , "linux-kernel@vger.kernel.org" Subject: Re: [PATCH] arm64: vmlinux.lds.S: keep .entry.tramp.text section Message-ID: <20210316190921.GB28565@arm.com> References: <20210226140352.3477860-1-arnd@kernel.org> <202102261256.AF256702@keescook> <20210227043257.k3aernmnzsvitp7c@google.com> <20210316104530.GA7309@arm.com> <20210316162745.GA20565@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.10.1 (2018-07-13) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Mar 16, 2021 at 05:39:27PM +0100, Arnd Bergmann wrote: > On Tue, Mar 16, 2021 at 5:27 PM Catalin Marinas wrote: > > On Tue, Mar 16, 2021 at 10:45:32AM +0000, Catalin Marinas wrote: > > > On Fri, Feb 26, 2021 at 08:32:57PM -0800, Fangrui Song wrote: > > > > On 2021-02-26, Kees Cook wrote: > > > > > On Fri, Feb 26, 2021 at 03:03:39PM +0100, Arnd Bergmann wrote: > > > > > > From: Arnd Bergmann > > > > > > > > > > > > When building with CONFIG_LD_DEAD_CODE_DATA_ELIMINATION, > > > > > > I sometimes see an assertion > > > > > > > > > > > > ld.lld: error: Entry trampoline text too big > > > > > > > > > > Heh, "too big" seems a weird report for having it discarded. :) > > > > > > > > > > Any idea on this Fangrui? > > > > > > > > > > ( I see this is https://github.com/ClangBuiltLinux/linux/issues/1311 ) > > > > > > > > This diagnostic is from an ASSERT in arch/arm64/kernel/vmlinux.lds > > > > > > > > ASSERT((__entry_tramp_text_end - __entry_tramp_text_start) == (1 << 16), > > > > "Entry trampoline text too big") > > > > > > Can we not change the ASSERT to be <= PAGE_SIZE instead? > > > > Ah, that won't work as I suspect we still need the trampoline section. > > > > Arnd, do you know why this section disappears? I did a simple test with > > defconfig + LD_DEAD_CODE_DATA_ELIMINATION and the trampoline section is > > still around. > > If I remember correctly, this showed up when CONFIG_ARM_SDE_INTERFACE > is disabled, which dropped the only reference into this section. > If that doesn't make sense, I can try digging through the old build logs to > reproduce the problem. I suspected this as well but still worked for me when disabling it. Anyway, I don't think identifying the exact option is necessary. With CONFIG_UNMAP_KERNEL_AT_EL0=y we need this section around even if only __entry_tramp_text_start/end are referenced. In this case we happened to detect this issue because of the ASSERT in vmlinux.lds.S but I wonder what else the linker drops with this dead code elimination that we may not notice (it seems to remove about 500KB from the resulting image in my test). I'll push these two patches to -next for wider coverage before deciding on mainline (though the option may not get much testing as it's hidden behind EXPERT and default n). -- Catalin