[Beowulf] Detecting binaries that are limited to an architecture?

Olli-Pekka Lehto olli-pekka.lehto at csc.fi
Thu May 5 15:51:06 PDT 2016


Just realized that Agner Fog has some interesting low-level utilities and libraries which might contain this type of a table: 
http://www.agner.org/optimize/ 

In particular this one may be useful: http://www.agner.org/optimize/objconv.zip 

Best regards, 
O-P 

> From: "Paul McIntosh" <paul.mcintosh at monash.edu>
> To: "Peter St. John" <peter.st.john at gmail.com>
> Cc: "Beowulf List" <beowulf at beowulf.org>
> Sent: Friday, 6 May, 2016 01:39:00
> Subject: Re: [Beowulf] Detecting binaries that are limited to an architecture?

> Yes – tried that and it gets the opcodes but then I am back to the issue of not
> knowing which opcodes are related to which architecture. My current train of
> though is finding something in the gcc install that works out generating the
> opcodes for an architecture and see if it can be used to reverse them.

> Paul

> From: Peter St. John [mailto:peter.st.john at gmail.com]
> Sent: Friday, 6 May 2016 7:23 AM
> To: Paul McIntosh <paul.mcintosh at monash.edu>
> Cc: Beowulf List <beowulf at beowulf.org>
> Subject: Re: [Beowulf] Detecting binaries that are limited to an architecture?

> You might run it through a decompiler; then you'd be looking at the assembler at
> least.

> Peter

> On Thu, May 5, 2016 at 4:51 PM, Paul McIntosh < paul.mcintosh at monash.edu >
> wrote:
>> All,

>> I am wondering if there is an easy way to detect if a binary makes use of
>> opcodes which are not available on a specific architecture?

>> We have /usr/local mounted across nodes with some Intel Xeon X5650
>> (Westmere) and some E5-2670 (SandyBridge). Some code spits out "Illegal
>> Instruction" when run on the old nodes and it appears to be due to hitting
>> shared libraries compiled on the newer nodes. We are going to have a similar
>> situation on the newer clusters also.

>> I have been putting together a test suite for our software stack and would
>> like to add the ability to sanity check binaries for such errors. I thought
>> there would be easy way to do this by looking at the opcodes (objdump) and
>> comparing them to what the architecture provides. However this requires
>> knowing all the opcodes from Intel manuals for a chip.

>> I have be playing with opcode.sh
>> ( https://gist.github.com/rindeal/72af275f05d44e10ebca ) which looks promising
>> but will need a bit of manual work to get it to do what I want (and still
>> may be incomplete/inaccurate).

>> Has anyone done this? Know of a way to easily get a computer readable list
>> of opcodes per cpu (note /proc/cpuinfo flags just shows features not
>> opecodes)?

>> Cheers,

>> Paul
>> --
>> Dr Paul McIntosh
>> Senior HPC Consultant, Technical Lead,
>> Multi-modal Australian ScienceS Imaging and Visualisation Environment
>> ( www.massive.org.au )
>> Monash University, Ph: 9902 0439 Mob: 0434 524935

>> _______________________________________________
>> Beowulf mailing list, Beowulf at beowulf.org sponsored by Penguin Computing
>> To change your subscription (digest mode or unsubscribe) visit
>> http://www.beowulf.org/mailman/listinfo/beowulf
> _______________________________________________
> Beowulf mailing list, Beowulf at beowulf.org sponsored by Penguin Computing
> To change your subscription (digest mode or unsubscribe) visit
> http://www.beowulf.org/mailman/listinfo/beowulf
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.beowulf.org/pipermail/beowulf/attachments/20160506/8dc21291/attachment.html>


More information about the Beowulf mailing list