Re: [PATCH v2 02/10] x86: assembly, FUNC_START for fn, DATA_START for data

From: Ingo Molnar
Date: Wed Mar 22 2017 - 03:26:52 EST



* Pavel Machek <pavel@xxxxxx> wrote:

> Hi!
>
> > -ENTRY(saved_rbp) .quad 0
> > -ENTRY(saved_rsi) .quad 0
> > -ENTRY(saved_rdi) .quad 0
> > -ENTRY(saved_rbx) .quad 0
> > +SYM_DATA_START(saved_rbp) .quad 0
> > +SYM_DATA_START(saved_rsi) .quad 0
> > +SYM_DATA_START(saved_rdi) .quad 0
> > +SYM_DATA_START(saved_rbx) .quad 0
>
> Does it make sense to call it SYM_DATA_*START* when there's no
> corresponding end?

That looks like a bug - I think we should strive for them to always be in pairs.

Jiri, Josh, could objtool help here perhaps, to detect 'non-terminated'
SYM_*_START() uses? This could be done by emitting debug data into a special
section and then analyzing that section for unpaired entries. The section can be
discarded in the final link, it won't show up in the kernel image.

We don't ever nest symbols, right?

> Plus... it looks like saved_rsi (and friends) are only used inside
> wakeup_64.S. Could we just delete the "ENTRY" annotations?

That appears to make sense as well.

Thanks,

Ingo