[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <063D6719AE5E284EB5DD2968C1650D6D5F4B45CB@AcuExch.aculab.com>
Date: Wed, 4 May 2016 15:16:31 +0000
From: David Laight <David.Laight@...LAB.COM>
To: 'Andy Lutomirski' <luto@...capital.net>,
Josh Poimboeuf <jpoimboe@...hat.com>
CC: "linux-s390@...r.kernel.org" <linux-s390@...r.kernel.org>,
Jiri Kosina <jikos@...nel.org>, Jessica Yu <jeyu@...hat.com>,
Vojtech Pavlik <vojtech@...e.com>,
Petr Mladek <pmladek@...e.com>,
Peter Zijlstra <peterz@...radead.org>, X86 ML <x86@...nel.org>,
Heiko Carstens <heiko.carstens@...ibm.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Ingo Molnar <mingo@...hat.com>,
"live-patching@...r.kernel.org" <live-patching@...r.kernel.org>,
Jiri Slaby <jslaby@...e.cz>, Miroslav Benes <mbenes@...e.cz>,
"linuxppc-dev@...ts.ozlabs.org" <linuxppc-dev@...ts.ozlabs.org>,
"Chris J Arges" <chris.j.arges@...onical.com>
Subject: RE: [RFC PATCH v2 05/18] sched: add task flag for preempt IRQ
tracking
From: Andy Lutomirski
> Sent: 02 May 2016 19:13
...
> I hope your plans include rewriting the current stack unwinder
> completely. The thing in print_context_stack is (a)
> hard-to-understand and hard-to-modify crap and (b) is called in a loop
> from another file using totally ridiculous conventions.
I've seen a 'stack unwinder' that parsed the instruction stream
forwards looking for 'return' instructions.
I fixed it to add a few extra instructions needs to sort out the
exit path from hardware interrupts.
It only had to understand instructions that modified %sp and %bp
and remember which branch instructions and branch targets it had
used in order to find the correct exit path from a function.
Worked reasonably well without any debug info or guaranteed frame
pointers.
It did have to fall back on scanning the stack if it was inside
an infinite loop. Even on x86 it is reasonably possible to check
for 'call' instructions in this case.
David
Powered by blists - more mailing lists