|
|
Chromium Code Reviews|
Created:
4 years, 3 months ago by brucedawson Modified:
4 years, 3 months ago CC:
chromium-reviews Target Ref:
refs/pending/heads/master Project:
chromium Visibility:
Public. |
DescriptionSpeculative workaround for VS 2015 code-gen bug
On PGO builds (but no others) a pair of functions in
process_power_collector.cc get compiled such that the callee returns a
floating-point value in xmm0 and the caller looks for it in st(0). The
details are in the bug, but if floating-point exceptions are enabled
(perhaps happening due to third-party injected software changing the FPU
state) then this can lead to crashes. Even without the crashes it is
clearly wrong.
Since the bug only reproes in PGO it is difficult to test a fix but
disabling optimizations around the two functions *should* do the trick.
BUG=640588
Committed: https://crrev.com/764c7362bc01b0f1765f2f9043ca89b71a8d0c76
Cr-Commit-Position: refs/heads/master@{#417994}
Patch Set 1 #Patch Set 2 : Add #ifdefs #Messages
Total messages: 21 (14 generated)
The CQ bit was checked by brucedawson@chromium.org to run a CQ dry run
Description was changed from ========== Speculative fix to VS 2015 code-gen bug On PGO builds (but no others) a pair of functions in process_power_collector.cc get compiled such that the callee returns a floating-point value in xmm0 and the caller looks for it in st(0). The details are in the bug, but if floating-point exceptions are enabled (perhaps happening due to third-party injected software changing the FPU state) then this can lead to crashes. Even without the crashes it is clearly wrong. Since the bug only reproes in PGO it is difficult to test a fix but disabling optimizations around the two functions *should* do the trick. BUG=640588 ========== to ========== Speculative workaround for VS 2015 code-gen bug On PGO builds (but no others) a pair of functions in process_power_collector.cc get compiled such that the callee returns a floating-point value in xmm0 and the caller looks for it in st(0). The details are in the bug, but if floating-point exceptions are enabled (perhaps happening due to third-party injected software changing the FPU state) then this can lead to crashes. Even without the crashes it is clearly wrong. Since the bug only reproes in PGO it is difficult to test a fix but disabling optimizations around the two functions *should* do the trick. BUG=640588 ==========
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
brucedawson@chromium.org changed reviewers: + sivachandra@chromium.org
Speculative fix for a compiler bug - PTAL? I can't guarantee it fixes things, but it shouldn't make things worse, since it's just turning off optimizations for two non-performance-critical functions.
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: Try jobs failed on following builders: chromeos_amd64-generic_chromium_compile_only_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromeos_amd64-...)
The CQ bit was checked by brucedawson@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
brucedawson@chromium.org changed reviewers: + derat@chromium.org, dhnishi@chromium.org
Adding other owners... Does this look like a reasonable speculative fix for this code-gen bug? I'd like to get this committed so I can see in tomorrow's canary if the bug is resolved. Local testing is impractical.
On 2016/09/12 17:57:59, brucedawson wrote: > Adding other owners... > > Does this look like a reasonable speculative fix for this code-gen bug? I'd like > to get this committed so I can see in tomorrow's canary if the bug is resolved. > Local testing is impractical. Forewarning: I'm no longer on Chrome and haven't touched this code since I was an intern. This lgtm. That said, doing some quick code searches, I'm not sure if these code path is needed anymore. It was originally part of my intern project to revamp content settings for web apps on desktop, but that effort got folded into tbuckley@'s Settings redesign it appears. I haven't dug deeply into the mocks, but I'm not sure if we're surfacing the info out of the collector anymore.
The CQ bit was checked by brucedawson@chromium.org
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
On 2016/09/12 18:14:07, Daniel Nishi wrote: > On 2016/09/12 17:57:59, brucedawson wrote: > > Adding other owners... > > > > Does this look like a reasonable speculative fix for this code-gen bug? I'd > like > > to get this committed so I can see in tomorrow's canary if the bug is > resolved. > > Local testing is impractical. > > Forewarning: I'm no longer on Chrome and haven't touched this code since I was > an intern. > > This lgtm. > > That said, doing some quick code searches, I'm not sure if these code path is > needed anymore. It was originally part of my intern project to revamp content > settings for web apps on desktop, but that effort got folded into tbuckley@'s > Settings redesign it appears. I haven't dug deeply into the mocks, but I'm not > sure if we're surfacing the info out of the collector anymore. Thanks Daniel. I'll land this change and see if it resolves the code-gen bug because that's a valuable piece of information. The result from UpdatePowerConsumption() is being thrown away (which may be part of what confuses the compiler) but I couldn't tell if the code was having some greater effect.
Message was sent while issue was closed.
Description was changed from ========== Speculative workaround for VS 2015 code-gen bug On PGO builds (but no others) a pair of functions in process_power_collector.cc get compiled such that the callee returns a floating-point value in xmm0 and the caller looks for it in st(0). The details are in the bug, but if floating-point exceptions are enabled (perhaps happening due to third-party injected software changing the FPU state) then this can lead to crashes. Even without the crashes it is clearly wrong. Since the bug only reproes in PGO it is difficult to test a fix but disabling optimizations around the two functions *should* do the trick. BUG=640588 ========== to ========== Speculative workaround for VS 2015 code-gen bug On PGO builds (but no others) a pair of functions in process_power_collector.cc get compiled such that the callee returns a floating-point value in xmm0 and the caller looks for it in st(0). The details are in the bug, but if floating-point exceptions are enabled (perhaps happening due to third-party injected software changing the FPU state) then this can lead to crashes. Even without the crashes it is clearly wrong. Since the bug only reproes in PGO it is difficult to test a fix but disabling optimizations around the two functions *should* do the trick. BUG=640588 ==========
Message was sent while issue was closed.
Committed patchset #2 (id:20001)
Message was sent while issue was closed.
Description was changed from ========== Speculative workaround for VS 2015 code-gen bug On PGO builds (but no others) a pair of functions in process_power_collector.cc get compiled such that the callee returns a floating-point value in xmm0 and the caller looks for it in st(0). The details are in the bug, but if floating-point exceptions are enabled (perhaps happening due to third-party injected software changing the FPU state) then this can lead to crashes. Even without the crashes it is clearly wrong. Since the bug only reproes in PGO it is difficult to test a fix but disabling optimizations around the two functions *should* do the trick. BUG=640588 ========== to ========== Speculative workaround for VS 2015 code-gen bug On PGO builds (but no others) a pair of functions in process_power_collector.cc get compiled such that the callee returns a floating-point value in xmm0 and the caller looks for it in st(0). The details are in the bug, but if floating-point exceptions are enabled (perhaps happening due to third-party injected software changing the FPU state) then this can lead to crashes. Even without the crashes it is clearly wrong. Since the bug only reproes in PGO it is difficult to test a fix but disabling optimizations around the two functions *should* do the trick. BUG=640588 Committed: https://crrev.com/764c7362bc01b0f1765f2f9043ca89b71a8d0c76 Cr-Commit-Position: refs/heads/master@{#417994} ==========
Message was sent while issue was closed.
Patchset 2 (id:??) landed as https://crrev.com/764c7362bc01b0f1765f2f9043ca89b71a8d0c76 Cr-Commit-Position: refs/heads/master@{#417994} |
