Received: by 2002:a05:7412:31a9:b0:e2:908c:2ebd with SMTP id et41csp4026550rdb; Thu, 14 Sep 2023 09:33:28 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE0BR1oBN/4EltQ91NrKbJD/Vdew09a+USG1jvRi4vSjhqQueKfseIlO/HkOtR/irxt6Upi X-Received: by 2002:a05:6a00:1387:b0:68c:3f2:6000 with SMTP id t7-20020a056a00138700b0068c03f26000mr7671072pfg.6.1694709208315; Thu, 14 Sep 2023 09:33:28 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1694709208; cv=none; d=google.com; s=arc-20160816; b=znEbD6uONZsWZh1vHRTpgyp8A1c5ynhyqU+bzYtCAZC0eQUBcw1oiwqDQVT2WEzB3Q dHVb54ayJ6g0ZA7xbyyx5YPSWNasuB9nyCwgolUVUKiYc/hUnvaEos9Pg+DXBgvESiZb eCEckMmAjVvtJlCb1hQWClektz0Kvhw/H1tvejShu7RxkiPvhs0y3z967IlJWzM69C5G kBG3f4Qmu6LjozEh3lA5YqwkNg8phhUhVFDzWdcJScMpHknURa3GDNPUG8fV0b2L7gdy exBO9px1oUaOSQ/OzXOxYRv1GkSW9lapzEBNQ2dtV3YxQTu72c5ch8Ncd9FWmU2gvehX tIBQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=bIY1GLguVqb71fLo0DnMuZN2KCrtrxEhlel++hnadbk=; fh=AUyPD4EwMZ/+Qfrrsq4r9rnAbytK8dSXS7PjursMS8g=; b=UMRccCQnN6r9vr+6sViDLn/igJY+r/HxZ397VPF3Zf18Cx5xwNg1m4FTPU2fz5CR8s epPKQlS8JsXvdgyd+PnjDRIwefOxlkWUVcOnBp8Lnw1K6tfEmHt5egvByN3Pgb9h2awn bVvGtNZ8qwMCfqmf98ViSZ0UeesRMEb1g6DA/WAUuJ8q8ULF2LBdv6Fe0XKJ7VpWA6rc qpF2Nleqn6JGMxtITfzTgzdm+Chwpsb8XrPJlo2iPUzLG86D+bRSvcostj6igBIizmGf dbP+w4Nh8TG8PGNLZJyavXv3Za9RBBGcBQVh/zGGj/b1jadDJhB5tXnQoEGofBA06lwU QY7A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=YnPF73tA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from fry.vger.email (fry.vger.email. [2620:137:e000::3:8]) by mx.google.com with ESMTPS id t64-20020a638143000000b00553a99dd783si1708366pgd.778.2023.09.14.09.33.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Sep 2023 09:33:28 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) client-ip=2620:137:e000::3:8; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=YnPF73tA; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:8 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by fry.vger.email (Postfix) with ESMTP id 7A26D8374CAD; Thu, 14 Sep 2023 09:31:18 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at fry.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231243AbjINQbS (ORCPT + 99 others); Thu, 14 Sep 2023 12:31:18 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59154 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237762AbjINQbR (ORCPT ); Thu, 14 Sep 2023 12:31:17 -0400 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 26B111FD7 for ; Thu, 14 Sep 2023 09:31:13 -0700 (PDT) Received: by smtp.kernel.org (Postfix) with ESMTPSA id B71DDC433CC for ; Thu, 14 Sep 2023 16:31:12 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1694709072; bh=yK9wOyly7qXn00unB+iWDobdGAfW+ysMR294jVlJehY=; h=References:In-Reply-To:From:Date:Subject:To:Cc:From; b=YnPF73tA4FJIt1zHgix/GbKseAd2p1qSvJtvFEtLKU3tglVfdtSVXz45R90EkROQz 4DpirqdSNTq64df/D8anke/yvRlxoNEUDu6aYxjnyf/Z4JUO9LnCsZyYHmiNwgiMcl 5IHyGhGtTIOsXVfp3AD3GwKvno+ZwQOi+qR6VWpQzoWEZVywa6c35nRqcoNhN4VWYA /D479EcO6+Df3QjJVMxfSgNkUz4ldk4Dp1pbDkeAG5mCGwgVWRYgOavhfoCQE6MtkC 2uV3mPcZf7JO5x//6SjPYIaphF1Hg5cdZ+WD+0lZMajeZUHbBOuVZHsm1/woQ9/MyH wCdJ6RKgfup4Q== Received: by mail-lj1-f179.google.com with SMTP id 38308e7fff4ca-2ba1e9b1fa9so18688561fa.3 for ; Thu, 14 Sep 2023 09:31:12 -0700 (PDT) X-Gm-Message-State: AOJu0YxkiOIpDFE8UUF4m57EhVXWNA00HKXpvSZ7B42y0QVeawR7yIs/ +iloLjoVImh91pel/QWuvs6iHg4Gi5WEgIilW60= X-Received: by 2002:a2e:3012:0:b0:2b9:aa4d:3719 with SMTP id w18-20020a2e3012000000b002b9aa4d3719mr5166010ljw.12.1694709070929; Thu, 14 Sep 2023 09:31:10 -0700 (PDT) MIME-Version: 1.0 References: <20230908231244.1092614-1-song@kernel.org> In-Reply-To: <20230908231244.1092614-1-song@kernel.org> From: Song Liu Date: Thu, 14 Sep 2023 09:30:56 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v2] x86/purgatory: Remove LTO flags To: linux-kernel@vger.kernel.org Cc: ndesaulniers@google.com, Ricardo Ribalda , Sami Tolvanen , kexec@lists.infradead.org, x86@kernel.org, llvm@lists.linux.dev Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (fry.vger.email [0.0.0.0]); Thu, 14 Sep 2023 09:31:18 -0700 (PDT) X-Spam-Status: No, score=-1.2 required=5.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,MAILING_LIST_MULTI, SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on fry.vger.email Hi folks, On Fri, Sep 8, 2023 at 4:13=E2=80=AFPM Song Liu wrote: > > With LTO enabled, ld.lld generates multiple .text sections for > purgatory.ro: > > $ readelf -S purgatory.ro | grep " .text" > [ 1] .text PROGBITS 0000000000000000 00000040 > [ 7] .text.purgatory PROGBITS 0000000000000000 000020e0 > [ 9] .text.warn PROGBITS 0000000000000000 000021c0 > [13] .text.sha256_upda PROGBITS 0000000000000000 000022f0 > [15] .text.sha224_upda PROGBITS 0000000000000000 00002be0 > [17] .text.sha256_fina PROGBITS 0000000000000000 00002bf0 > [19] .text.sha224_fina PROGBITS 0000000000000000 00002cc0 > > This cause WARNING from kexec_purgatory_setup_sechdrs(): > > WARNING: CPU: 26 PID: 110894 at kernel/kexec_file.c:919 > kexec_load_purgatory+0x37f/0x390 > > Fix this by disabling LTO for purgatory. > > Fixes: 8652d44f466a ("kexec: support purgatories with .text.hot sections"= ) > Cc: Ricardo Ribalda > Cc: Sami Tolvanen > Cc: kexec@lists.infradead.org > Cc: linux-kernel@vger.kernel.org > Cc: x86@kernel.org > Cc: llvm@lists.linux.dev > Signed-off-by: Song Liu What would be the next step for this work? We hope to back port it to our production kernel soon. Thanks, Song > > --- > AFAICT, x86 is the only arch that supports LTO and purgatory. > > Changes in v2: > 1. Use CC_FLAGS_LTO instead of hardcode -flto. (Nick Desaulniers) > --- > arch/x86/purgatory/Makefile | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/arch/x86/purgatory/Makefile b/arch/x86/purgatory/Makefile > index c2a29be35c01..08aa0f25f12a 100644 > --- a/arch/x86/purgatory/Makefile > +++ b/arch/x86/purgatory/Makefile > @@ -19,6 +19,10 @@ CFLAGS_sha256.o :=3D -D__DISABLE_EXPORTS -D__NO_FORTIF= Y > # optimization flags. > KBUILD_CFLAGS :=3D $(filter-out -fprofile-sample-use=3D% -fprofile-use= =3D%,$(KBUILD_CFLAGS)) > > +# When LTO is enabled, llvm emits many text sections, which is not suppo= rted > +# by kexec. Remove -flto=3D* flags. > +KBUILD_CFLAGS :=3D $(filter-out $(CC_FLAGS_LTO),$(KBUILD_CFLAGS)) > + > # When linking purgatory.ro with -r unresolved symbols are not checked, > # also link a purgatory.chk binary without -r to check for unresolved sy= mbols. > PURGATORY_LDFLAGS :=3D -e purgatory_start -z nodefaultlib > -- > 2.34.1 >