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]

Reply via email to