|
|
Message-Id: <cover.1514985618.git.Jens.Gustedt@inria.fr>
Date: Wed, 3 Jan 2018 14:20:18 +0100
From: Jens Gustedt <Jens.Gustedt@...ia.fr>
To: musl@...ts.openwall.com
Subject: [PATCH 0/7] V3 of the new lock algorithm
This patch series implements and applies the new internal lock
algorithm.
Patch 1 is the lock implementation itself. I hope this is fit for
1.19, now.
The patches 2-7 do some clean up and apply this lock algorithm to two
fields, where we had specialized lock implementations before:
condition variables and malloc.
In all of this I am still a bit uncomfortable with the double syscalls
to futex functions. We do that just because some older Linux versions
might not implement private futexes. I'd prefer if that could be
replaced by a read to a central variable instead of having a second
(conditional) syscall. Such a variable could be initialized during
thread-library initialization, I think.
Jens Gustedt (7):
a new lock algorithm with lock value and congestion count in the same
atomic int
consistently use the LOCK an UNLOCK macros
revise the definition of multiple basic locks in the code
separate the fast parts of __lock and __unlock into a .h file that may
be used by other TU
use the new lock algorithm for malloc
implement __unlock_requeue
implement the local lock for condition variables with the new lock
feature
src/dirent/__dirent.h | 2 +-
src/exit/at_quick_exit.c | 2 +-
src/exit/atexit.c | 2 +-
src/internal/__lock.h | 29 ++++++++++++++++
src/internal/libc.h | 3 ++
src/internal/pthread_impl.h | 10 ++++--
src/locale/dcngettext.c | 2 +-
src/locale/locale_map.c | 2 +-
src/locale/setlocale.c | 2 +-
src/malloc/lite_malloc.c | 2 +-
src/malloc/malloc.c | 38 ++++++++-------------
src/misc/syslog.c | 2 +-
src/prng/random.c | 2 +-
src/stdio/ofl.c | 2 +-
src/thread/__lock.c | 66 +++++++++++++++++++++++++++++++++----
src/thread/pthread_atfork.c | 2 +-
src/thread/pthread_cond_timedwait.c | 53 ++++++++++-------------------
src/thread/pthread_create.c | 6 ++--
src/thread/pthread_detach.c | 5 ++-
src/thread/pthread_getschedparam.c | 4 +--
src/thread/pthread_kill.c | 4 +--
src/thread/pthread_setschedparam.c | 4 +--
src/thread/pthread_setschedprio.c | 4 +--
src/thread/sem_open.c | 2 +-
src/thread/synccall.c | 2 +-
src/time/__tz.c | 2 +-
26 files changed, 156 insertions(+), 98 deletions(-)
create mode 100644 src/internal/__lock.h
--
2.15.1
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.