svn commit: r315522 - in head: contrib/binutils/ld/emulparams sys/conf

Tijl Coosemans tijl at FreeBSD.org
Sun Mar 19 14:22:50 UTC 2017


On Sun, 19 Mar 2017 13:04:50 +1100 (EST) Bruce Evans <brde at optusnet.com.au> wrote:
> On Sun, 19 Mar 2017, Ed Maste wrote:
>> Log:
>>  use INT3 instead of NOP for x86 binary padding
>>
>>  We should never end up executing the inter-function padding, so we
>>  are better off faulting than silently carrying on to whatever function
>>  happens to be next.
>>
>>  Note that LLD will soon do this by default (although it currently pads
>>  with zeros).
>>
>>  Reviewed by:	dim, kib
>>  MFC after:	1 month
>>  Sponsored by:	The FreeBSD Foundation
>>  Differential Revision:	https://reviews.freebsd.org/D10047  
> 
> Is this a pessimization?  Instruction prefetch near the end of almost
> every function now fetches INT3 instead of NOP.  Both have to be
> decoded to decoded whether to speculatively execute them.  INT3 is
> unlikely to be speculatively executed, but it takes extra work to
> decide not to do so.

I seem to vaguely remember that ud2 should be used to stop speculative
execution (and the instruction fetching and possible cache invalidation
because of it).


More information about the svn-src-all mailing list