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]

Re: [ping][PATCH, AVX512, x86_64] AVX-512 support in glibc for x86_64


On Tue, Mar 11, 2014 at 12:39 PM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Tue, Mar 4, 2014 at 10:50 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>> On Thu, Feb 20, 2014 at 10:25 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
>>> On Wed, Feb 12, 2014 at 4:14 AM, Zamyatin, Igor <igor.zamyatin@intel.com> wrote:
>>>> Ping!
>>>>
>>>>> -----Original Message-----
>>>>> From: Zamyatin, Igor
>>>>> Sent: Wednesday, February 05, 2014 1:50 PM
>>>>> To: Zamyatin, Igor; Joseph Myers
>>>>> Cc: libc-alpha@sourceware.org; hjl.tools@gmail.com
>>>>> Subject: RE: [PATCH, AVX512, x86_64] AVX-512 support in glibc for x86_64
>>>>>
>>>>> Ping.
>>>>>
>>>>> Is it ok for trunk whenever it's allowed to commit?
>>>>>
>>>>> Thanks,
>>>>> Igor
>>>>>
>>>>> > -----Original Message-----
>>>>> > From: libc-alpha-owner@sourceware.org [mailto:libc-alpha-
>>>>> > owner@sourceware.org] On Behalf Of Zamyatin, Igor
>>>>> > Sent: Tuesday, January 28, 2014 4:57 PM
>>>>> > To: Joseph Myers
>>>>> > Cc: libc-alpha@sourceware.org; hjl.tools@gmail.com
>>>>> > Subject: RE: [PATCH, AVX512, x86_64] AVX-512 support in glibc for
>>>>> > x86_64
>>>>> >
>>>>> > >
>>>>> > > On Fri, 24 Jan 2014, Zamyatin, Igor wrote:
>>>>> > >
>>>>> > > > Attached patch adds AVX512 (new Intel ISA extension, see e.g.
>>>>> > > > http://software.intel.com/en-us/intel-isa-
>>>>> > > extensions?page=1&wapkw=soft
>>>>> > > > ware%20development%20manual%20avx512#pid-16007-1495
>>>>> > > > ) support in Glibc for x86_64.
>>>>> > >
>>>>> > > Do you plan to add support for i386 as well, or is there a reason no
>>>>> > > such support is needed (that these registers are call-clobbered and
>>>>> > > not used for argument passing / return, so libc needs no special
>>>>> > > knowledge
>>>>> > of them?)?
>>>>> > > (Cf. bug 15402 suggesting running the AVX audit tests on i386, which
>>>>> > > would make sense if they are valid for x86 even if no associated
>>>>> > > changes to the dynamic linker are needed.)
>>>>> > >
>>>>> > > >         * sysdeps/x86_64/tst-audit9.c: New file.
>>>>> > > >         * sysdeps/x86_64/tst-auditmod9a.c: New file.
>>>>> > > >         * sysdeps/x86_64/tst-auditmod9b.c: New file.
>>>>> > >
>>>>> > > Any new test should have a copyright / license notice immediately
>>>>> > > following the first line saying what the function of the file is.
>>>>> >
>>>>> > Updated patch attached.
>>>>> >
>>>>> > Thanks,
>>>>> > Igor
>>>>> >
>>>
>>> A couple comments:
>>>
>>> 1.  i386 audit doesn't support xmm nor ymm registers.  Adding
>>> xmm/ymm/zmm register support to i386 audit is orthogonal to
>>> x86-64 audit.   It should be evaluated separately from adding
>>> zmm register support to x86-64 audit.
>>> 2. Adding zmm register support to x86-64 ld.so has no performance
>>> impact on non-threaded applications, except that when LD_AUDIT
>>> is used.
>>> 3. Adding zmm register support to _dl_x86_64_save_sse and
>>> _dl_x86_64_restore_sse will have some overhead. They are
>>> called only when RTLD_PREPARE_FOREIGN_CALL
>>> is used.  Among all glibc build/tests, it happens with
>>>
>>> /export/build/gnu/glibc/build-x86_64-linux/dlfcn/glrefmain:
>>> /export/build/gnu/glibc/build-x86_64-linux/elf/constload1:
>>> /export/build/gnu/glibc/build-x86_64-linux/elf/reldep:
>>> /export/build/gnu/glibc/build-x86_64-linux/elf/lateglobal:
>>> /export/build/gnu/glibc/build-x86_64-linux/elf/dblload:
>>> /export/build/gnu/glibc/build-x86_64-linux/elf/reldep5:
>>> /export/build/gnu/glibc/build-x86_64-linux/elf/reldep7:
>>> /export/build/gnu/glibc/build-x86_64-linux/elf/dblunload:
>>> /export/build/gnu/glibc/build-x86_64-linux/elf/tst-deep1:
>>> /export/build/gnu/glibc/build-x86_64-linux/elf/unload4:
>>> /export/build/gnu/glibc/build-x86_64-linux/elf/reldep6:
>>>
>>> Do they address all concerns people have?
>>>
>>
>> Any feedbacks/comments/objections?
>>
>
> I will check it in after 24 hours.
>

After tested with GCC 4.8 and 4.9 on Linux/x86-64,
I checked it into master.  I made a few changes:

1.  Renamed tst-audit9 to tst-audit10 since there is a tst-audit9
added on Feb. 25.
2.  Removed changes in sysdeps/x86_64/multiarch/init-arch.h.
bit_AVX512F is defined in GCC 4.9 cpuid.h.   Use 0xe6 for
xsave state similar to tst-audit6.c.

Igor, please double check it and submit bound register change.

Thanks.


-- 
H.J.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]