Re: [RFC v4 07/18] objtool: Introduce INSN_UNKNOWN type

From: Josh Poimboeuf
Date: Thu Aug 22 2019 - 17:51:24 EST


On Thu, Aug 22, 2019 at 09:45:00PM +0100, Julien wrote:
> Hi Josh,
>
> On 22/08/19 21:04, Josh Poimboeuf wrote:
> > On Fri, Aug 16, 2019 at 01:23:52PM +0100, Raphael Gault wrote:
> > > On arm64 some object files contain data stored in the .text section.
> > > This data is interpreted by objtool as instruction but can't be
> > > identified as a valid one. In order to keep analysing those files we
> > > introduce INSN_UNKNOWN type. The "unknown instruction" warning will thus
> > > only be raised if such instructions are uncountered while validating an
> > > execution branch.
> > >
> > > This change doesn't impact the x86 decoding logic since 0 is still used
> > > as a way to specify an unknown type, raising the "unknown instruction"
> > > warning during the decoding phase still.
> > >
> > > Signed-off-by: Raphael Gault <raphael.gault@xxxxxxx>
> >
> > Is there a reason such data can't be moved to .rodata? That would seem
> > like the proper fix.
> >
>
> RaphaÃl can confirm, if I remember correctly, that issue was encountered on
> assembly files implementing crypto algorithms were some words/double-words
> of data were in the middle of the .text. I think it is done this way to make
> sure the data can be loaded in a single instruction. So moving it to another
> section could impact the crypto performance depending on the relocations.
>
> That was my understanding at least.

Thanks. If that's the case then that would be useful information to put
in the patch description. A code excerpt of an example code site would
be useful too.

I'm not sure INSN_UNKNOWN is the right name though, since the decoder
does actually know about it. Maybe INSN_DATA or something?

--
Josh