mirror of git://sourceware.org/git/glibc.git
The current IFUNC selection is based on microbenchmarks in glibc. It should give the best performance for most workloads. But other choices may have better performance for a particular workload or on the hardware which wasn't available at the selection was made. The environment variable, GLIBC_TUNABLES=glibc.tune.ifunc=-xxx,yyy,-zzz...., can be used to enable CPU/ARCH feature yyy, disable CPU/ARCH feature yyy and zzz, where the feature name is case-sensitive and has to match the ones in cpu-features.h. It can be used by glibc developers to override the IFUNC selection to tune for a new processor or improve performance for a particular workload. It isn't intended for normal end users. NOTE: the IFUNC selection may change over time. Please check all multiarch implementations when experimenting. Also, GLIBC_TUNABLES=glibc.tune.x86_non_temporal_threshold=NUMBER is provided to set threshold to use non temporal store to NUMBER, GLIBC_TUNABLES=glibc.tune.x86_data_cache_size=NUMBER to set data cache size, GLIBC_TUNABLES=glibc.tune.x86_shared_cache_size=NUMBER to set shared cache size. * elf/dl-tunables.list (tune): Add ifunc, x86_non_temporal_threshold, x86_data_cache_size and x86_shared_cache_size. * manual/tunables.texi: Document glibc.tune.ifunc, glibc.tune.x86_data_cache_size, glibc.tune.x86_shared_cache_size and glibc.tune.x86_non_temporal_threshold. * sysdeps/unix/sysv/linux/x86/dl-sysdep.c: New file. * sysdeps/x86/cpu-tunables.c: Likewise. * sysdeps/x86/cacheinfo.c (init_cacheinfo): Check and get data cache size, shared cache size and non temporal threshold from cpu_features. * sysdeps/x86/cpu-features.c [HAVE_TUNABLES] (TUNABLE_NAMESPACE): New. [HAVE_TUNABLES] Include <unistd.h>. [HAVE_TUNABLES] Include <elf/dl-tunables.h>. [HAVE_TUNABLES] (TUNABLE_CALLBACK (set_ifunc)): Likewise. [HAVE_TUNABLES] (init_cpu_features): Use TUNABLE_GET to set IFUNC selection, data cache size, shared cache size and non temporal threshold. * sysdeps/x86/cpu-features.h (cpu_features): Add data_cache_size, shared_cache_size and non_temporal_threshold. |
||
|---|---|---|
| .. | ||
| examples | ||
| Makefile | ||
| argp.texi | ||
| arith.texi | ||
| charset.texi | ||
| check-safety.sh | ||
| conf.texi | ||
| contrib.texi | ||
| creature.texi | ||
| crypt.texi | ||
| ctype.texi | ||
| debug.texi | ||
| dir | ||
| errno.texi | ||
| fdl-1.3.texi | ||
| filesys.texi | ||
| freemanuals.texi | ||
| getopt.texi | ||
| header.texi | ||
| install-plain.texi | ||
| install.texi | ||
| intro.texi | ||
| io.texi | ||
| ipc.texi | ||
| job.texi | ||
| lang.texi | ||
| lgpl-2.1.texi | ||
| libc-texinfo.sh | ||
| libc.texinfo | ||
| libcbook.texi | ||
| libdl.texi | ||
| libm-err-tab.pl | ||
| llio.texi | ||
| locale.texi | ||
| macros.texi | ||
| maint.texi | ||
| math.texi | ||
| memory.texi | ||
| message.texi | ||
| nss.texi | ||
| nsswitch.texi | ||
| pattern.texi | ||
| pipe.texi | ||
| platform.texi | ||
| probes.texi | ||
| process.texi | ||
| resource.texi | ||
| search.texi | ||
| setjmp.texi | ||
| signal.texi | ||
| socket.texi | ||
| startup.texi | ||
| stdio-fp.c | ||
| stdio.texi | ||
| string.texi | ||
| summary.pl | ||
| sysinfo.texi | ||
| syslog.texi | ||
| terminal.texi | ||
| texinfo.tex | ||
| texis.awk | ||
| threads.texi | ||
| time.texi | ||
| tsort.awk | ||
| tunables.texi | ||
| users.texi | ||
| xtract-typefun.awk | ||