Spicy-cream opened a new pull request, #3472:
URL: https://github.com/apache/brpc/pull/3472
Fixes #2781
bthread_jump_fcontext (src/bthread/context.cpp, linux x86_64) does not
save/restore the callee-saved SIMD registers %xmm6..%xmm15. Clang at -O2
keeps live float/vector values in these registers and expects them to be
preserved across the user-level context switch. Because they are not,
suspending a bthread corrupts the caller's float/vector state, causing an
intermittent core dump in streaming RPC.
aarch64 already saves d8..d15 unconditionally, which is why it is not
affected. This change mirrors that behavior for x86_64.
Note: proposed based on code analysis; runtime verification on an
x86_64 + clang environment is recommended.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]