This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc 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] |
On 06/27/2016 08:39 PM, H.J. Lu wrote:
On Mon, Jun 27, 2016 at 11:33 AM, Florian Weimer <fweimer@redhat.com> wrote:On 06/27/2016 08:29 PM, H.J. Lu wrote:If ld.so doesn't the first 8 save/store ZMM registers, you may not pass parameters in ZMM registers with AVX512 kernel on AVX512 machine. We wan to make sure that ld.so in x86-64 glibc saves/stores ZMM registers unless glibc is configured to disable AVX512 support.I still do not understand what is going on. What can clobber the ZMM registers if glibc was compiled without AVX-512 capabilities?When AVX512 isn't supported, _dl_runtime_resolve_avx will be to used to save the first 8 vector registers, which only saves the lower 256 bits of vector register, for lazy binding. When it is called on AVX512 platform, the upper 256 bits of ZMM registers are clobbered.
Thanks, I wasn't aware of the register sharing.So this affects all existing glibc binaries, as long as they are compiled with AVX support. So applications really need to detect this somehow before they can use AVX512 features. Or binaries which use AVX512 unconditionally need to be marked in some way so that ld.so will refuse to load them.
Florian
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |