This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH 0/5] i386: Optimize for Jump Conditional Code Erratum
- From: Florian Weimer <fweimer at redhat dot com>
- To: "H.J. Lu" <hjl dot tools at gmail dot com>
- Cc: binutils at sourceware dot org
- Date: Thu, 14 Nov 2019 12:59:12 +0100
- Subject: Re: [PATCH 0/5] i386: Optimize for Jump Conditional Code Erratum
- References: <20191112161905.10048-1-hjl.tools@gmail.com>
* H. J. Lu:
> Microcode update for Jump Conditional Code Erratum may cause performance
> loss for some workloads:
>
> https://www.intel.com/content/www/us/en/support/articles/000055650.html
>
> Here is the set of assembler patches to mitigate performance impact by
> aligning branches within 32-byte boundary. The impacted instructions
> are:
>
> a. Conditional jump.
> b. Fused conditional jump.
> c. Unconditional jump.
> d. Call.
> e. Ret.
> f. Indirect jump and call.
>
> The new -mbranches-within-32B-boundaries command-line option aligns
> conditional jump, fused conditional jump and unconditional jump within
> 32-byte boundary.
Should this mitigation be enabled by default?
According to the whitepaper, this mitigation has some overhead on
non-affected CPUs (some Intel Atom-type CPUs are mentioned). Is there a
way to avoid this overhead, so that the decision to enable this by
default is easier?
Thanks,
Florian