On Wed, Jun 02, 2010 at 12:11:26PM -0400, David Michael wrote:
Hi,
On Wed, Jun 2, 2010 at 11:42 AM, Richard W.M. Jones <rjones(a)redhat.com> wrote:
> I wonder what the performance impact is. NOPL appears to be a
> variable length NOP (no-op). Obviously a very useful instruction for
> things like alignment, and gcc seems to stuff lots of them into the
> code:
>
> $ objdump -d /bin/ls | wc -l
> 16867
> $ objdump -d /bin/ls | grep nopl | wc -l
> 369
>
> 369/16867 ~ 2%
>
> This is not a very fair comparison because we'd want to know how
> frequently NOPL is executed, but I hope it shows that these
> instructions are not infrequent.
I recall checking this when F12 was declared to go i686 but retain
support for Geode LX CPUs. NOPLs were common in x86_64, but seemed to
be very infrequent in 32-bit land (which is what would run on a Geode
anyway).
To see if this is still the case, I downloaded and extracted F13's
32-bit coreutils, and no binary appears to contain a single NOPL.
(Though I get a similar result as your test with x86_64.)
objdump -d {,usr/}{,s}bin/* | grep -Fc nopl
0
Ah very true. I was forgetting that they were 32 bit.
(I even *have* one of them :-)
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
virt-top is 'top' for virtual machines. Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://et.redhat.com/~rjones/virt-top