On Tue, Apr 23, 2019 at 12:45:12PM -0700, Nathan Chancellor wrote:
On Tue, Apr 23, 2019 at 03:35:12PM -0400, Sasha Levin wrote:
On Tue, Apr 23, 2019 at 12:04:21PM -0700, Nathan Chancellor wrote:
Hi Greg and Sasha,
Please apply this commit to 4.4 through 5.0 (patches are threaded in reply to this one), which will prevent Clang from emitting references to compiler runtime functions and doing some performance-killing optimization when using CONFIG_CC_OPTIMIZE_FOR_SIZE.
Please let me know if I did something wrong or if there are any objections.
This looks like a fix for a performance regression, which don't usually end up in stable unless they are severe enough.
Yes and no. The original reason for the revert was because of the compiler runtime functions:
https://lore.kernel.org/lkml/CAG5bF+S6OvBnsaR6UpMCqjDR9_hMo6qRMHGiW+iCaRYQW4...
The Chromium guys hit this [1] and have applied the patch for their kernels, I think it should be applied for everyone.
We picked it into our kernels because we needed a fix *now* to unbreak our builds, but I agree it should be fixed at least in relevant LTS versions.
This patch looks simple enough, and seeing peterz on it suggests to me that this was significant enough for someone to notice. Is this really the case, or is this just one of those %0.01 performance regression things?
I don't know of anyone else who has hit this but Qualcomm enabled CONFIG_CC_OPTIMIZE_FOR_SIZE in their 4.9 kernels with clang [2] so it would be nice to have this to avoid any further issues down the road.
I suspect the Qualcomm tree would hit the VDSO issue if they use a sufficiently recent version of clang.
Thanks Nathan for posting this to -stable, I should have cc-ed them in the first place.