Re: [PATCH v2 6/8] x86/entry: add unwind hint annotations

From: Josh Poimboeuf
Date: Fri Jun 30 2017 - 12:16:16 EST


On Fri, Jun 30, 2017 at 08:56:09AM -0700, Andy Lutomirski wrote:
> On Fri, Jun 30, 2017 at 8:55 AM, Josh Poimboeuf <jpoimboe@xxxxxxxxxx> wrote:
> > On Fri, Jun 30, 2017 at 08:44:40AM -0700, Andy Lutomirski wrote:
> >> > A few comments about the first patch:
> >> >
> >> > https://git.kernel.org/pub/scm/linux/kernel/git/luto/linux.git/commit/?h=x86/entry_irq_stack&id=3e2aa2102cc1c5e60d4a8637bff78d0478a55059
> >> >
> >> > - It uses a '693:' label instead of '.Lirqs_off_\@:'
> >>
> >> TouchÃ!
> >>
> >> >
> >> > - There's a comment I don't follow:
> >> >
> >> > "Anything that can interrupt us here without using IST must be
> >> > *extremely* careful to limit its stack usage."
> >> >
> >> > What specifically could interrupt there without using IST?
> >>
> >> #DB, later on in the series. I'll update the comment.
> >>
> >> >
> >> > - Since do_softirq_own_stack() is a callable function, I think it still
> >> > needs to save rbp.
> >>
> >> Whoops.
> >>
> >> >
> >> > - Why change the "jmp error_exit" to "ret" in
> >> > xen_do_hypervisor_callback()?
> >>
> >> To match the other change I made there. I removed both.
> >
> > One more thing I forgot to mention: if you could use r10 instead of r11,
> > that would be helpful because it means one less register undwarf needs
> > to know about. (It already deals with r10 because of GCC stack
> > realignment).
>
> I'll let you figure that one out :)
>
> (Although I think I agree with hpa: why not let it support all regs?
> Or am I missing something still?)

Sure, it can support all regs, but as the code is structured now, doing
so means adding more switch cases, e.g.:

https://github.com/jpoimboe/linux/blob/undwarf-v2/arch/x86/kernel/unwind_undwarf.c#L388

And that makes the balrog angry!

--
Josh