No description
Find a file
Mark Salyzyn 2d2e0a5c5e liblog: resolve deadlocks
Although ever present, an increased regression introduced with
commit b6bee33182 (liblog: logd:
support logd.timestamp = monotonic).

A signal handler can interrupt in locked context, if log is written
in the signal handler, we are in deadlock. To reduce the contention
and chances for this problem separate out timestamp lock from is
loggable lock to reduce contention situations. Provide a best-guess
response if lock would fail in timestamp path.

Use a common lock() inline within each module, with a comment speaking
to the issues surrounding calling a function that has a mutex within
a signal handler.

ToDo: Hold off signals temporarily in mainline, restart when unblock.
      Can not use pthread_sigmask(SIG_BLOCK,,) as it breaks AtCmd.

Signed-off-by: Mark Salyzyn <salyzyn@google.com>
Bug: 25563384
Change-Id: I47e2c87c988c3e359eb9eef129c6a3a08e9eedef
2015-11-19 13:14:16 -08:00
adb Don't send $TERM unless we're talking to a new adbd. 2015-11-18 12:45:48 -08:00
adf Adf: Remove unused variable 2015-07-27 22:08:16 -07:00
base Introduce unique_fd 2015-11-18 12:01:24 -08:00
cpio fs_config: replace getenv('OUT') by new fs_config parameter 2015-07-09 21:47:07 -07:00
crash_reporter crash_reporter: Join AID_READPROC group 2015-11-11 17:50:37 -08:00
debuggerd debuggerd: remove some levels of indentation. 2015-11-17 14:44:50 -08:00
fastboot fastboot: create Transport object (take 2). 2015-11-16 09:31:07 -08:00
fingerprintd Fingerprint: Add HAL close() code 2015-07-10 16:26:32 -07:00
fs_mgr fs_mgr: set partition.*.verified property even without state 2015-10-30 13:14:38 +00:00
gatekeeperd [gatekeeperd] copy uid to local before passing to u_map 2015-11-05 11:09:21 -08:00
healthd healthd: Support new PD and USB Type C types 2015-11-12 18:12:43 -08:00
include liblog: resolve deadlocks 2015-11-19 13:14:16 -08:00
init Merge "Enable hidepid=2 on /proc" 2015-11-09 20:05:22 +00:00
libbacktrace libbacktrace: don't let llvm cflags cover libbacktrace's cflags. 2015-09-24 17:46:27 -07:00
libbinderwrapper libbinderwrapper: Add GetCallingUid() and GetCallingPid(). 2015-10-16 09:04:33 -06:00
libcutils Revert "libcutils: don't build for Windows." 2015-11-17 14:28:33 -08:00
libdiskconfig am eb075e28: am c8179498: am 2f62edf7: Merge "libdiskconfig: Turn on -Werror" 2014-05-21 21:19:27 +00:00
libion am 8d2cd035: am 2ddb9cb1: am ed43be39: Merge "Remove LOCAL_ADDITIONAL_DEPENDENCIES in cases where it\'s not needed." 2015-04-02 22:07:16 +00:00
liblog liblog: resolve deadlocks 2015-11-19 13:14:16 -08:00
libmemtrack Remove a hack for getting libpagerank's headers. 2015-09-22 22:35:30 -07:00
libmincrypt Enable clang compilation. 2015-05-14 10:53:48 -07:00
libnativebridge Use __ANDROID__ instead of HAVE_ANDROID_OS. 2015-07-30 09:33:43 -07:00
libnetutils am fb1ecbc5: am e6e71608: Merge "Use __ANDROID__ instead of HAVE_ANDROID_OS." 2015-07-30 16:50:15 +00:00
libpackagelistparser packagelistparser: rename to libpackagelistparser 2015-11-05 12:12:38 -08:00
libpixelflinger libpixelflinger: MIPS64r6 bug fix 2015-11-10 14:24:11 +01:00
libprocessgroup processgroup: change the polling interval for killProcessGroup() 2015-06-16 13:59:32 -07:00
libsparse Fix parameter to lseek 2015-10-20 14:15:31 -07:00
libsuspend Adds a parameter to the wakeup_callback to report sucessful wakeup or suspend aborts. 2015-06-25 13:15:22 -07:00
libsync Fix isValid() condition for libsync tests 2015-11-05 10:07:53 -08:00
libsysutils Fix incorrectly sized buffer. 2015-07-28 17:56:06 +09:00
libusbhost libusbhost: Fix problem reading USB string descriptors on some quirky devices 2015-06-18 13:38:31 -07:00
libutils Use std::unique_ptr instead of UniquePtr. 2015-11-05 01:09:22 -08:00
libziparchive Fix bug in writing zips. 2015-11-05 10:48:05 -08:00
lmkd Enable hidepid=2 on /proc 2015-11-09 09:08:46 -08:00
logcat liblog: logd: support logd.timestamp = monotonic 2015-11-03 15:15:51 -08:00
logd Merge "Revert "liblog: resolve deadlocks"" 2015-11-16 19:07:47 +00:00
logwrapper am eaf04aa0: am 3b94cef1: Merge "Add FORK_EXECVP_OPTION_CAPTURE_OUTPUT to logwrap.h" 2015-08-22 02:40:51 +00:00
metricsd metricsd: Split into two daemons. 2015-11-18 09:54:16 -08:00
mkbootimg mkbootimg: misc typo fixes 2015-06-04 09:59:01 -07:00
reboot reboot: Turn on -Werror 2014-05-21 12:58:38 -07:00
rootdir Fix non-vendor.img configuration. 2015-11-17 11:20:21 +09:00
run-as Fix the run-as environment to better match su. 2015-11-03 14:31:46 -08:00
sdcard sdcard: use libpackageparser 2015-10-22 22:52:35 +00:00
toolbox Improve top(1) compatibility and interactive usefulness. 2015-11-13 08:30:12 -08:00
trusty/libtrusty Merge "Revert "[core][trusty] add gatekeeper module"" 2015-09-16 22:54:14 +00:00
tzdatacheck Executable to run on boot that removes old tzdata if needed 2015-04-13 11:38:32 +01:00
.gitignore Ignore adb/*.pyc files 2015-08-11 12:59:58 -07:00
Android.mk Remove the simulator target from all makefiles. 2011-07-11 22:12:32 -07:00
CleanSpec.mk Add a CleanSpec for grep/toolbox. 2015-03-22 18:04:54 -07:00
MODULE_LICENSE_APACHE2 auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
NOTICE Fix omission in NOTICE file. 2013-07-30 13:56:55 -07:00