This is the mail archive of the cygwin-apps mailing list for the Cygwin project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
Hi Achim, On Nov 26 19:17, Achim Gratz wrote: > > You may have noted that the recent gmp update makes problems on some > machines and two of the three reports come from Broadwell CPU. There is > one thing that did indeed change with the update and that is use of the > AVX ADC instruction on Broadwell/Skylake. Is it possible that somehow > the stack model or some register save/restore is different on Cygwin > that would produce that problem? I can only test on SandyBridge and > IvyBridge for Intel and these have no problem. Prior to the invention of the AVX stuff, a thread context structure had a fixed size. To hold AVX registers, the context structure became a variable sized struct which has to be initialized with the function InitializeContext(). It also requires an additional call to SetXStateFeaturesMask() before being able to call GetThreadContext(). None of that is implemanted in Cygwin. The affected scenarios are: - sigdelayed, the function handling delayed signals, does not handle AVX registers, This potentially affects almost all system calls. - setjmp/longjmp - Saving and restoring thread contexts during signal handling or in the setcontext/getcontext/swapcontext/makecontext calls use the CONTEXT_FULL flag which omits AVX registers. - The mcontext_t structure has no provisions to hold AVX registers so they are not available in SA_SIGINFO signal handlers. The problem with all of that is that the exposed structures are fixed sized and have no room for extension without breaking the ABI. So adding AVX register support is quite some work, especially in the assembler code in the gendef script. For that, I'd need help. Fortunately there are not so many calls exposing contexts, only the aforemetioned ones. I hope this affects 64 bit only? Corinna -- Corinna Vinschen Please, send mails regarding Cygwin to Cygwin Maintainer cygwin AT cygwin DOT com Red Hat
Attachment:
pgpSEccdupPuZ.pgp
Description: PGP signature
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |