linux-toolchains.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mark Wielaard <mark@klomp.org>
To: Peter Zijlstra <peterz@infradead.org>,
	Stephane Eranian <eranian@google.com>
Cc: linux-toolchains@vger.kernel.org,
	Arnaldo Carvalho de Melo <acme@kernel.org>,
	linux-kernel@vger.kernel.org, Ingo Molnar <mingo@kernel.org>,
	Jiri Olsa <jolsa@kernel.org>, Namhyung Kim <namhyung@kernel.org>,
	Ian Rogers <irogers@google.com>,
	"Phillips, Kim" <kim.phillips@amd.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Andi Kleen <andi@firstfloor.org>,
	Masami Hiramatsu <mhiramat@kernel.org>
Subject: Re: Additional debug info to aid cacheline analysis
Date: Thu, 08 Oct 2020 11:32:32 +0200	[thread overview]
Message-ID: <50338de81b34031db8637337f08b89b588476211.camel@klomp.org> (raw)
In-Reply-To: <20201008070231.GS2628@hirez.programming.kicks-ass.net>

Hi,

On Thu, 2020-10-08 at 09:02 +0200, Peter Zijlstra wrote:
> Some time ago, I had my intern pursue the other 2 approaches for
> > symbolization. The one I see as most promising is by using the DWARF
> > information (no BPF needed). The good news is that I believe we do not
> > need more information than what is already there. We just need the
> > compiler to generate valid DWARF at most optimization levels, which I
> > believe is not the case for LLVM based compilers but maybe okay for
> > GCC.
> 
> Right, I think GCC improved a lot on this front over the past few years.
> Also added Andi and Masami, who have worked on this or related topics.

For GCC Alexandre Oliva did a really thorough write up of all the
various optimization and their effect on debugging/DWARF:
https://www.fsfla.org/~lxoliva/writeups/gOlogy/gOlogy.html

GCC using -fvar-tracking and -fvar-tracking-assignments is pretty good
at keeping track of where variables are held (in memory or registers)
when in the program, even through various optimizations.

-fvar-tracking-assignments is the default with -g -O2.
Except for the upstream linux kernel code. Most distros enable it
again, but you do want to enable it by hand when building from the
upstream linux git repo.

Basically you simply want to remove this line in the top-level
Makefile:

DEBUG_CFLAGS    := $(call cc-option, -fno-var-tracking-assignments)

Cheers,

Mark

  reply	other threads:[~2020-10-08  9:38 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-10-06 13:17 Additional debug info to aid cacheline analysis Peter Zijlstra
2020-10-06 19:00 ` Arnaldo Carvalho de Melo
2020-10-08  5:58 ` Stephane Eranian
2020-10-08  7:02   ` Peter Zijlstra
2020-10-08  9:32     ` Mark Wielaard [this message]
2020-10-08 21:23       ` Andi Kleen
2020-10-10 20:58         ` Mark Wielaard
2020-10-10 21:51           ` Mark Wielaard
     [not found]             ` <20201010220712.5352-1-mark@klomp.org>
2020-10-10 22:21               ` [PATCH] Only add -fno-var-tracking-assignments workaround for old GCC versions Ian Rogers
2020-10-12 18:59                 ` Nick Desaulniers
2020-10-12 19:12                   ` Mark Wielaard
2020-10-14 15:31                     ` Sedat Dilek
2020-10-14 11:01                 ` Mark Wielaard
2020-10-14 15:17                   ` Andi Kleen
2020-10-17 12:01                   ` [PATCH V2] " Mark Wielaard
2020-10-19 19:30                     ` Nick Desaulniers
2020-10-20 15:27                     ` Masahiro Yamada
2020-10-10 22:33             ` [PATCH] " Mark Wielaard
2020-10-11 11:04           ` Additional debug info to aid cacheline analysis Segher Boessenkool
2020-10-11 12:15           ` Florian Weimer
2020-10-11 12:23             ` Mark Wielaard
2020-10-11 12:28               ` Florian Weimer
2020-10-30  5:26       ` Namhyung Kim
2020-10-30  9:16         ` Mark Wielaard
2020-10-30 10:10           ` Peter Zijlstra
2020-11-02  8:27             ` Masami Hiramatsu
2020-11-03  4:22               ` Namhyung Kim

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50338de81b34031db8637337f08b89b588476211.camel@klomp.org \
    --to=mark@klomp.org \
    --cc=acme@kernel.org \
    --cc=andi@firstfloor.org \
    --cc=eranian@google.com \
    --cc=irogers@google.com \
    --cc=jolsa@kernel.org \
    --cc=kim.phillips@amd.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-toolchains@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=mhiramat@kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).