glibc/sysdeps
Will Newton 6d96f5e4c0 ARM: Remove lowlevellock.c
lowlevellock.c for arm differs from the generic lowlevellock.c only in
insignificant ways, so can be removed. Happily, this fixes BZ 15119
(unnecessary busy loop in __lll_timedlock_wait on arm).

The notable differences between the arm and generic implementations are:

1) arm __lll_timedlock_wait has a fast path out if futex has been set
to 0 between since the function was called. This seems unlikely to
happen very often, so it seems at worst harmless to lose this fast
path.

2) Some function in arm's lowlevellock.c set futex to 2 if it was 1.
The generic version always sets the futex to 2. As futex can only be
0, 1 or 2 on entry into these functions, the behaviour is equivalent.
(If the futex manages to be 0 on entry then we've just lost another
unlikely fast path out.)

There are no test suite regressions.

Note that hppa and sparc also have their own lowlevellock.c. I believe
hppa can also be removed, so I'll send a separate patch for that
shortly. sparc's seems to be genuinely needed as it uses a different
locking structure.

Also note that the analysis at
https://sourceware.org/ml/libc-ports/2013-02/msg00021.html indicates a
further locking performance bug to fix - I've got a partial patch for
that which I can submit once I've finished testing.

2014-05-01  Bernard Ogden <bernie.ogden@linaro.org>

	[BZ #15119]
	* sysdeps/unix/sysv/linux/arm/nptl/lowlevellock.c: Remove file.
2014-05-01 14:25:44 +01:00
..
aarch64 [AArch64] Suppress unnecessary FPSR and FPCR writes. 2014-04-24 07:15:33 +01:00
alpha alpha: Enable unwind tables for backtrace.c 2014-04-16 21:35:29 -07:00
arm ARM: Fix R_ARM_IRELATIVE RELA relocations. 2014-04-30 16:17:59 +00:00
generic More fixes for unsafe compiler optimization 2014-04-30 08:41:42 -05:00
gnu Combine __USE_BSD and __USE_SVID into __USE_MISC. 2014-02-12 23:41:01 +00:00
hppa Relocate hppa from ports to libc. 2014-04-29 04:20:39 -04:00
i386 Factor mmap/munmap of PT_LOAD segments out of _dl_map_object_from_fd et al. 2014-04-03 10:47:14 -07:00
ia64 Compile with -Wundef. 2014-03-14 11:32:51 -07:00
ieee754 [BZ #16823] Fix log1pl returning wrong infinity sign 2014-04-29 15:43:36 +02:00
init_array Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
m68k Compile with -Wundef. 2014-03-14 11:32:51 -07:00
mach hurd: Add i386 fields to TLS structure 2014-04-16 23:45:36 +02:00
microblaze Compile with -Wundef. 2014-03-14 11:32:51 -07:00
mips Fix -Wundef warnings for _ABI* on MIPS. 2014-03-21 18:21:13 +00:00
posix Use statvfs64() for pathconf(_PC_NAME_MAX). 2014-04-09 20:09:56 +02:00
powerpc Fix 2014-04-29 07:45:05 -05:00
pthread Use glibc_likely instead __builtin_expect. 2014-02-10 15:07:12 +01:00
s390 S/390: Regenerate ULPs 2014-04-16 13:04:34 +02:00
sh Don't include individual test ulps in libm-test-ulps. 2014-03-05 15:02:38 +00:00
sparc Add round-mode context support to sparc. 2014-04-30 15:14:58 -07:00
tile tile: Fix cut-and-paste bug in commit fcccd5128. 2014-04-04 15:03:47 -04:00
unix ARM: Remove lowlevellock.c 2014-05-01 14:25:44 +01:00
wordsize-32 Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
wordsize-64 Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
x86 Replace __int128 with __int128_t in bits/link.h 2014-04-25 09:33:41 -07:00
x86_64 Detect if AVX2 is usable 2014-04-17 08:00:21 -07:00