Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1441393
| From | Josh Poimboeuf <jpoimboe@redhat.com> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH 3/4] x86: Rewrite switch_to() code |
| Date | 2016-07-12 16:20 +0200 |
| Message-ID | <rU6Hw-62T-15@gated-at.bofh.it> (permalink) |
| References | (4 earlier) <rBW3U-56T-17@gated-at.bofh.it> <rBWwV-5gE-3@gated-at.bofh.it> <rBWwV-5gE-1@gated-at.bofh.it> <rC1dg-8iS-13@gated-at.bofh.it> <rC1wC-d5-17@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
On Mon, May 23, 2016 at 10:03:54AM -0700, Andy Lutomirski wrote: > Do you have any understanding of why there are so many unwinder > implementations? Your reliable unwinder seems to be yet another copy > of more or less the same code. > > I'd like to see a single, high-quality unwinder implemented as a state > machine, along the lines of: > > struct unwind_state state; > unwind_start_inactive_task(&state, ...); or > unwind_start_pt_regs(&state, regs); or whatever. > unwind_next_frame(&state); > > where, after unwind_next_frame, state encodes whatever registers are > known (at least bp and ip, but all the GPRs would be nice and are > probably mandatory for DWARF) and an indication of whether this is a > real frame or a guessed frame (the things that currently show up as > '?'). FYI, I'm working on something very similar to this which replaces dump_trace(). The frame pointer encoding patches were going to require more changes to the unwinder than I expected, and more callback sprawl. So it looks like it's going to be easier to just go ahead and rewrite the unwinder first. -- Josh
Back to linux.kernel | Previous | Next | Find similar | Unroll thread
Re: [PATCH 3/4] x86: Rewrite switch_to() code Josh Poimboeuf <jpoimboe@redhat.com> - 2016-07-12 16:20 +0200
csiph-web