Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1645923 > unrolled thread

Re: [PATCH 7/7] DWARF: add the config option

Started byJosh Poimboeuf <jpoimboe@redhat.com>
First post2017-05-19 23:00 +0200
Last post2017-05-19 23:10 +0200
Articles 4 on this page of 24 — 7 participants

Back to article view | Back to linux.kernel

This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by below is the oldest one visible, not the original post.


Contents

  Re: [PATCH 7/7] DWARF: add the config option Josh Poimboeuf <jpoimboe@redhat.com> - 2017-05-19 23:00 +0200
    Re: [PATCH 7/7] DWARF: add the config option "H. Peter Anvin" <hpa@zytor.com> - 2017-05-19 23:10 +0200
      Re: [PATCH 7/7] DWARF: add the config option Josh Poimboeuf <jpoimboe@redhat.com> - 2017-05-19 23:30 +0200
        Re: [PATCH 7/7] DWARF: add the config option Josh Poimboeuf <jpoimboe@redhat.com> - 2017-05-19 23:40 +0200
          Re: [PATCH 7/7] DWARF: add the config option Andy Lutomirski <luto@kernel.org> - 2017-05-20 07:30 +0200
            Re: [PATCH 7/7] DWARF: add the config option Josh Poimboeuf <jpoimboe@redhat.com> - 2017-05-20 18:30 +0200
              Re: [PATCH 7/7] DWARF: add the config option Josh Poimboeuf <jpoimboe@redhat.com> - 2017-05-20 19:20 +0200
              Re: [PATCH 7/7] DWARF: add the config option "H.J. Lu" <hjl.tools@gmail.com> - 2017-05-20 22:10 +0200
                Re: [PATCH 7/7] DWARF: add the config option Andy Lutomirski <luto@kernel.org> - 2017-05-21 00:00 +0200
                  Re: [PATCH 7/7] DWARF: add the config option "H.J. Lu" <hjl.tools@gmail.com> - 2017-05-21 00:30 +0200
                    Re: [PATCH 7/7] DWARF: add the config option Jiri Kosina <jikos@kernel.org> - 2017-05-22 13:40 +0200
                      Re: [PATCH 7/7] DWARF: add the config option "H.J. Lu" <hjl.tools@gmail.com> - 2017-05-22 16:50 +0200
                Re: [PATCH 7/7] DWARF: add the config option "H. Peter Anvin" <hpa@zytor.com> - 2017-05-22 23:20 +0200
                  Re: [PATCH 7/7] DWARF: add the config option "H. Peter Anvin" <hpa@zytor.com> - 2017-05-22 23:50 +0200
                    Re: [PATCH 7/7] DWARF: add the config option Josh Poimboeuf <jpoimboe@redhat.com> - 2017-05-23 00:20 +0200
            Re: [PATCH 7/7] DWARF: add the config option Linus Torvalds <torvalds@linux-foundation.org> - 2017-05-20 22:20 +0200
              Re: [PATCH 7/7] DWARF: add the config option Andy Lutomirski <luto@kernel.org> - 2017-05-21 00:00 +0200
                Re: [PATCH 7/7] DWARF: add the config option Linus Torvalds <torvalds@linux-foundation.org> - 2017-05-21 01:10 +0200
                  Re: [PATCH 7/7] DWARF: add the config option Linus Torvalds <torvalds@linux-foundation.org> - 2017-05-21 01:30 +0200
        Re: [PATCH 7/7] DWARF: add the config option Ingo Molnar <mingo@kernel.org> - 2017-05-22 13:20 +0200
          Re: [PATCH 7/7] DWARF: add the config option "H. Peter Anvin" <hpa@zytor.com> - 2017-05-22 23:30 +0200
            Re: [PATCH 7/7] DWARF: add the config option Jiri Kosina <jikos@kernel.org> - 2017-05-23 01:30 +0200
            Re: [PATCH 7/7] DWARF: add the config option Ingo Molnar <mingo@kernel.org> - 2017-05-23 07:50 +0200
    Re: [PATCH 7/7] DWARF: add the config option "H. Peter Anvin" <hpa@zytor.com> - 2017-05-19 23:10 +0200

Page 2 of 2 — ← Prev page 1 [2]


#1647410

From"H. Peter Anvin" <hpa@zytor.com>
Date2017-05-22 23:30 +0200
Message-ID<tK33P-2tD-1@gated-at.bofh.it>
In reply to#1646754
On 05/22/17 04:12, Ingo Molnar wrote:
\>>
>> This construct might be useful for other arches, which is why I called
>> it "FP" instead of "BP".  But then I ruined that with the last 3 :-)
> 
> Please call it BP - 'FP' can easily be read as floating-point, making it all 
> super-confusing. We should use canonical x86 register names and ordering - even
> if not all registers are used straight away.
> 

Seriously, I suspect that at the end of the day we will have reinvented
DWARF.

	-hpa

[toc] | [prev] | [next] | [standalone]


#1647478

FromJiri Kosina <jikos@kernel.org>
Date2017-05-23 01:30 +0200
Message-ID<tK4VX-3CT-3@gated-at.bofh.it>
In reply to#1647410
On Mon, 22 May 2017, H. Peter Anvin wrote:

> > Please call it BP - 'FP' can easily be read as floating-point, making 
> > it all super-confusing. We should use canonical x86 register names and 
> > ordering - even if not all registers are used straight away.
> 
> Seriously, I suspect that at the end of the day we will have reinvented
> DWARF.

If this is the fear, what is the proposal then? We simply have to deal 
with !FRAME_POINTER builds.

Thanks,

-- 
Jiri Kosina
SUSE Labs

[toc] | [prev] | [next] | [standalone]


#1647653

FromIngo Molnar <mingo@kernel.org>
Date2017-05-23 07:50 +0200
Message-ID<tKaRI-7kh-7@gated-at.bofh.it>
In reply to#1647410
* H. Peter Anvin <hpa@zytor.com> wrote:

> On 05/22/17 04:12, Ingo Molnar wrote:
> \>>
> >> This construct might be useful for other arches, which is why I called
> >> it "FP" instead of "BP".  But then I ruined that with the last 3 :-)
> > 
> > Please call it BP - 'FP' can easily be read as floating-point, making it all 
> > super-confusing. We should use canonical x86 register names and ordering - even
> > if not all registers are used straight away.
> > 
> 
> Seriously, I suspect that at the end of the day we will have reinvented
> DWARF.

Absolutely - the main difference is:

 - the debug-info implementation is _internal_ to the kernel so it can be fixed
   instead of "oh, wait 2 years for the toolchain to fix this particular bug, work
   it around in the kernel meanwhile" kind of crazy flow and dependencies. I.e. 
   the debug-info generation and parsing code is both part of the kernel Git tree 
   and can be iterated (and fixed) at once with.

 - the debug-info is auto-generated for assembly as well, leaving assembly code 
   maintainable.

 - the debug-info has a sane data structure designed for robustness and 
   compactness

So even if it's a subset of the existing complexity of dwarf et al we are still 
literally infinitely better off with this model.

Thanks,

	Ingo

[toc] | [prev] | [next] | [standalone]


#1645933

From"H. Peter Anvin" <hpa@zytor.com>
Date2017-05-19 23:10 +0200
Message-ID<tIXjQ-7UF-17@gated-at.bofh.it>
In reply to#1645923
On 05/19/17 13:53, Josh Poimboeuf wrote:
>>
>> One instance of the structure would exist for each time the stack
>> pointer changes, e.g. for every function entry, push/pop, and rsp
>> add/subtract.  The data could be assembled and sorted offline, possibly
>> derived from DWARF, or more likely, generated by objtool.  After doing
>> some rough calculations, I think the section size would be comparable to
>> the sizes of the DWARF .eh_frame sections it would replace.
>>
>> If it worked, the "undwarf" unwinder would be a lot simpler than a real
>> DWARF unwinder.  And validating the sanity of the data at runtime would
>> be a lot more straightforward.  It could ensure that each stack pointer
>> is within the bounds of the current stack, like our current unwinder
>> does.
> 
> I've been hacking away at this, and so far it's working well.  The code
> is much simpler than a DWARF unwinder.  Right now the kernel piece is
> only ~350 lines of code.  The vast majority of the changes are in
> objtool.
> 
> It's now successfully unwinding through entry code and most other asm
> files, dumping entry regs, dealing with aligned stacks, dynamic stacks,
> etc.
> 
> Here's the struct in its current state:

How are you handling control flow?

	-hpa

[toc] | [prev] | [standalone]


Page 2 of 2 — ← Prev page 1 [2]

Back to top | Article view | linux.kernel


csiph-web