Received: by 2002:a05:6a10:a0d1:0:0:0:0 with SMTP id j17csp263200pxa; Fri, 31 Jul 2020 11:19:07 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwmO3ejV1r3FosGkSMl7XH0XlIRUtw8ELjov+CtMPi/tevBw6DOOHz94PjdH10cVARE6TNr X-Received: by 2002:a50:eac5:: with SMTP id u5mr5246738edp.6.1596219547472; Fri, 31 Jul 2020 11:19:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1596219547; cv=none; d=google.com; s=arc-20160816; b=dACR9mx/Oz4hfMpxfMRf/HxK+pu9w5BonQwIDDCn9Uu4PyHxQejNJyYabn6cy78Oh1 jPDjoKk16weRpYpfBiEpAndbY48V0KIioclaP+NiKsbUPNYBf7UJoHvmsy9M135TShLt ytUdvJ6ahdWJMlzYzqiuQDXEY5BOHHQ3AMFmQncH+2lisO2uCzZ/V3U/rYKYGJI7m0tf WFLQzraWnuhgFniTEx8zOni1aeJ2SdZ37/IgvPMUYD5T+orV95MpdHVAMNi4TG6S4VDP iRlQc4c3JMGdmyFYfJ0Pacuu9FZcb+G0jSZT8cLoPZ5PVc4fHPb8ZvOB5rHaIA10Skyu nLJg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=jbXSGUlk5K+rosVCGnHMWYKXgwhTW/dZ9Iv4aQo63G4=; b=jU3tDlmhwtQxAqMpibzcCY7B8XD1Z9e3YIL/KrofTRyx7s2xHGI6yXuFoocyhFshxq jZ0fIKDSQe3ylxC6mw29GxHL2VqhgMgm5ayEaAw+yuyiit035Kwdtew1q558l9/14bLr epEkdgOwyq/b29X4muVrZTkFGt7ayn9MtH3xHOy/Po0t1qvV65HQ0EVlYTb8Yl+CfPcG aH3+X5hO4V3ZkHFhIEBlSU34zOcrAS7CGl6Rr1RsaIyTs6QF5pIdBG4fYQcuzUe7yKms B0G+75VquCnyZmlUhJGMSlfEiUbJtOx6Gc6/UqxT4QPysyKjzGiWSfvsHxSQBeXxzrl1 P1ng== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=Ky+5aSNq; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id d4si5496505ejc.187.2020.07.31.11.18.45; Fri, 31 Jul 2020 11:19:07 -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=@google.com header.s=20161025 header.b=Ky+5aSNq; 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=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387740AbgGaSSb (ORCPT + 99 others); Fri, 31 Jul 2020 14:18:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57666 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730040AbgGaSSb (ORCPT ); Fri, 31 Jul 2020 14:18:31 -0400 Received: from mail-pf1-x442.google.com (mail-pf1-x442.google.com [IPv6:2607:f8b0:4864:20::442]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id CBD33C061574 for ; Fri, 31 Jul 2020 11:18:30 -0700 (PDT) Received: by mail-pf1-x442.google.com with SMTP id d188so8812675pfd.2 for ; Fri, 31 Jul 2020 11:18:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=jbXSGUlk5K+rosVCGnHMWYKXgwhTW/dZ9Iv4aQo63G4=; b=Ky+5aSNqyiDcZugeQZTH3Do3UZQcyebJt6Nldlxn3w/tcqN4toBuB+wKtWOm1CrBHG pUMd15SHiL8TT4cF0+/zTO4rjztSENzPx5e1VOuk2drg4/gjSDSFhrYJaeUr7HUA+iDu ab1biNrQ2jC9R0lgiRNyn3WHgJrBuco88x9+G6EKIaCLJ7uFBS/Hv+yxg9S1v34tssE1 xviGhSY+xXb69KNverTfEJmrYSSbdc17/N235WRj8PUQtWTpKi/XDzuxBCkxFHBeU7CS Ox2Vx6pFeBN/w3LyZ5gLpcf6UZOQtW5pR5QMghfFUfZnj7zRqAI1wc/QNwpgZloxkZCR i4EA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=jbXSGUlk5K+rosVCGnHMWYKXgwhTW/dZ9Iv4aQo63G4=; b=QW8+xUvL/0wtWE3TIkHJZy/ijfps2yko2AY1B+I2yO+uc6z2faDS0JOdetd7E5BK6F 471nH2JPCGhxSKCsreG1pWIKtf5i/Ad6sBIqJt5Q69wEs8L6oZ7Q5hCLyy6iNuockM5S JPa5Vq5+k1G1zjkrxC35NWkzY4jdWIrIOGPVsirnc4Ig/6w0E1gIqLk16tHdHs100dSS H05+kdKII78cYqr41BVBL6QLg48BZs7AfFIEpjcdwQ3+hRw/+uvrkp+TqxVd0EA7tvwr bDSd//L2kpPK+lbO39rmWxeos6MqCnqiqPHf+Be6+d7/PX9f0/s2N0145CLE/sPU5LOn 6sXQ== X-Gm-Message-State: AOAM532+v8Em7IwzUQFKSByX/+iovlDZjDE4zqVu9sd7DszS6dBGHAc4 WfJDBZZOeUMv2ksU+3R0d1B0Jf4A60onyH3jaKFi1A== X-Received: by 2002:a62:3405:: with SMTP id b5mr4778667pfa.169.1596219510038; Fri, 31 Jul 2020 11:18:30 -0700 (PDT) MIME-Version: 1.0 References: <1596097609-14118-1-git-send-email-kernelfans@gmail.com> In-Reply-To: From: Nick Desaulniers Date: Fri, 31 Jul 2020 11:18:18 -0700 Message-ID: Subject: Re: [PATCH] x86/purgatory: strip debug info To: Pingfan Liu , Steve Wahl Cc: "maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)" , Thomas Gleixner , Ingo Molnar , Borislav Petkov , "H. Peter Anvin" , Hans de Goede , Arvind Sankar , LKML Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Jul 31, 2020 at 2:36 AM Pingfan Liu wrote: > > On Fri, Jul 31, 2020 at 7:11 AM Nick Desaulniers > wrote: > > > > On Thu, Jul 30, 2020 at 1:27 AM Pingfan Liu wrote: > > > > > > It is useless to keep debug info in purgatory. And discarding them saves > > > about 200K space. > > > > > > Original: > > > 259080 kexec-purgatory.o > > > Stripped: > > > 29152 kexec-purgatory.o > > > > > > Signed-off-by: Pingfan Liu > > > Cc: Thomas Gleixner > > > Cc: Ingo Molnar > > > Cc: Borislav Petkov > > > Cc: "H. Peter Anvin" > > > Cc: Hans de Goede > > > Cc: Nick Desaulniers > > > Cc: Arvind Sankar > > > Cc: Steve Wahl > > > Cc: linux-kernel@vger.kernel.org > > > To: x86@kernel.org > > > > I don't see any code in > > arch/x86/purgatory/ > > arch/x86/include/asm/purgatory.h > > include/linux/purgatory.h > > include/uapi/linux/kexec.h > > kernel/kexec* > > include/linux/kexec.h > > include/linux/crash_dump.h > > kernel/crash_dump.c > > arch/x86/kernel/crash* > > https://github.com/horms/kexec-tools/tree/master/kexec/arch/x86_64 > > that mentions any kind of debug info section. I'm not sure what you'd > > do with the debug info anyway for this binary. So I suspect this > > information should ok to discard. > > > > This works, but it might be faster to build to not generate the > > compile info in the first place via compile flag `-g0`, which could be > > added `ifdef CONFIG_DEBUG_INFO` or even just unconditionally. That > > way we're not doing additional work to generate debug info, then > > additional work to throw it away. > What about: > diff --git a/arch/x86/purgatory/Makefile b/arch/x86/purgatory/Makefile > index 088bd76..7e1ad9e 100644 > --- a/arch/x86/purgatory/Makefile > +++ b/arch/x86/purgatory/Makefile > @@ -32,7 +32,7 @@ KCOV_INSTRUMENT := n > # make up the standalone purgatory.ro > > PURGATORY_CFLAGS_REMOVE := -mcmodel=kernel > -PURGATORY_CFLAGS := -mcmodel=large -ffreestanding -fno-zero-initialized-in-bss > +PURGATORY_CFLAGS := -mcmodel=large -ffreestanding > -fno-zero-initialized-in-bss -g0 > PURGATORY_CFLAGS += $(DISABLE_STACKLEAK_PLUGIN) -DDISABLE_BRANCH_PROFILING > PURGATORY_CFLAGS += $(call cc-option,-fno-stack-protector) I tested your patch but still see .debug_* sections in the .ro from a few .o. At least on * setup-x86_64.o * entry64.o If you add the following hunk to your diff: ``` @@ -64,6 +64,9 @@ CFLAGS_sha256.o += $(PURGATORY_CFLAGS) CFLAGS_REMOVE_string.o += $(PURGATORY_CFLAGS_REMOVE) CFLAGS_string.o += $(PURGATORY_CFLAGS) +AFLAGS_REMOVE_setup-x86_$(BITS).o += -Wa,-gdwarf-2 +AFLAGS_REMOVE_entry64.o += -Wa,-gdwarf-2 + $(obj)/purgatory.ro: $(PURGATORY_OBJS) FORCE $(call if_changed,ld) ``` then that should do it. Then you can verify the .ro file via: $ llvm-readelf -S arch/x86/purgatory/purgatory.ro | not grep debug_ (no output, should return zero) -- Thanks, ~Nick Desaulniers