History log of /bionic/libc/bionic/bionic_systrace.cpp
Revision Date Author Comments
2cb5f7f578ec682c2bf628f29ffe21de8ccbc917 26-Jan-2018 Wei Li <sirius.liwei@huawei.com> Move static variable out of should_trace().

Static variable initialization calls pthread_mutex_lock() and may lead to
deadlock if should_trace() is called in pthread_mutex_lock context.

Here is a stack of blocked init process:
__cxa_guard_acquire ->
should_trace ->
bionic_trace_begin ->
__pthread_mutex_lock_with_timeout ->
__cxa_guard_release ->
should_trace ->
bionic_trace_begin ->
__pthread_mutex_lock_with_timeout ->
mutex::lock ->
LogMessage::~LogMessage
......
So we need to move it out

Test: 1 Compiled and booted.
2 Reboot pressure test for more than 30000 times.

Change-Id: I8d97745161f1aa8942b63338208ea74830768ae1
Signed-off-by: Wei Li <sirius.liwei@huawei.com>
Signed-off-by: Jinguang Dong <dongjinguang@huawei.com>
7a3681e5b6c39bc2b3b62031ca5941dbf7bc4e63 25-Apr-2017 Christopher Ferris <cferris@google.com> Move libc_log code into libasync_safe.

This library is used by a number of different libraries in the system.
Make it easy for platform libraries to use this library and create
an actual exported include file.

Change the names of the functions to reflect the new name of the library.

Run clang_format on the async_safe_log.cpp file since the formatting is
all over the place.

Bug: 31919199

Test: Compiled for angler/bullhead, and booted.
Test: Ran bionic unit tests.
Test: Ran the malloc debug tests.
Change-Id: I8071bf690c17b0ea3bc8dc5749cdd5b6ad58478a
e4ddb3c587d07a8b8459d8202b31c0d9340ce8a1 17-Apr-2017 Elliott Hughes <enh@google.com> Move bionic_systrace.cpp over to CachedProperty.

This is the last bionic caller that was manually trying to cache
property values.

Bug: N/A
Test: builds and boots
Change-Id: Id66c0a05d8448f08c39dbf7189241e75615d44b4
2a4a5e72f161699be75b247e6fcb3a9ac6d8a852 20-Mar-2017 Dimitry Ivanov <dimitry@google.com> Add end() method to bionic's ScopedTrace class

Bug: http://b/27195126
Test: make
Change-Id: I8243629200606ca87b11cbd479ca093add42eb56
46e2eadad24b9d11f5319efd393066ae8c35cd54 10-Dec-2015 Tom Cherry <tomcherry@google.com> Do not set properties in bionic_systrace

Currently, if the debug.atrace.tags.enableflags property is not found,
it is set to a safe value such that a pointer to this property can be
stored for later access. This may result in selinux denials because not
all processes write permissions for this property or permission to
connect to the property write socket at all.

Change I6d953c0c281fd72ad3eba8a479fd258023579b5b writes this property to
a safe value upon boot, which greatly decreases the cases in which this
property will not be accessible and removes the need to write it here.
This commit removes this write.

Bug 26115803

Change-Id: Ief72c5f731d3a1231b5080eb531fa0a491a8b1d1
b8320b8021856ae61b3012b82c2ae96df97e3ec4 22-Jul-2015 Yabin Cui <yabinc@google.com> Don't abort when failed to write tracing message.

Also make the code thread-safe with lock.

Bug: 20666100
Change-Id: I0f331a617b75280f36179c187418450230d713ef
(cherry picked from commit 166112531558a1d4ea179c29147f27db7045db22)
166112531558a1d4ea179c29147f27db7045db22 22-Jul-2015 Yabin Cui <yabinc@google.com> Don't abort when failed to write tracing message.

Also make the code thread-safe with lock.

Bug: 20666100
Change-Id: I0f331a617b75280f36179c187418450230d713ef
05fc1d7050d5451aea08dc5f504d2670287b2d43 29-Jan-2015 Elliott Hughes <enh@google.com> Add missing includes.

Change-Id: Ibf549266a19a67eb9158d341a69dddfb654be669
40360b379cee07574493f5a450cf1c6e531bdde0 29-Dec-2014 Elliott Hughes <enh@google.com> Remove bogus transitive includes.

<signal.h> shouldn't get you the contents of <errno.h>, and <fcntl.h>
shouldn't get you the contents of <unistd.h>.

Change-Id: I347499cd8671bfee98e6b8e875a97cab3a3655d3
c189ffaaec45efb49e785517e504b41a5e57b088 27-Aug-2014 Elliott Hughes <enh@google.com> More cases where libc should use O_CLOEXEC.

(cherry picked from commit f73183f1a34df22b62a3d0bbf82e18d5797c9cde)

(cherry picked from commit 21ce3f506f3b54e4f57a37847375cef9f8aff57f)

Change-Id: I70b240bd40ad8d2ba33ae7ab2618782709fd0d6a
d0be539e01424fa720840dfe702dedf8e54379fb 17-Sep-2014 Elliott Hughes <enh@google.com> Revert "Revert "Added a bionic systrace class and tracing to pthread_mutex.cpp.""

This reverts commit 26c1420fbb68916d66a8621b5efe8bb25cfdad7b.

(cherry picked from commit 9e87f2f876243225deef37645ddceaa5d225cb41)

Change-Id: I46a71a456952e3dd2c2bb0d9934820ffe8dc8469
21ce3f506f3b54e4f57a37847375cef9f8aff57f 27-Aug-2014 Elliott Hughes <enh@google.com> More cases where libc should use O_CLOEXEC.

Change-Id: Idfa111aeebc5deca2399dae919e8b72eb54c23c0
(cherry picked from commit f73183f1a34df22b62a3d0bbf82e18d5797c9cde)
9e87f2f876243225deef37645ddceaa5d225cb41 17-Sep-2014 Elliott Hughes <enh@google.com> Revert "Revert "Added a bionic systrace class and tracing to pthread_mutex.cpp.""

This reverts commit 26c1420fbb68916d66a8621b5efe8bb25cfdad7b.
f73183f1a34df22b62a3d0bbf82e18d5797c9cde 27-Aug-2014 Elliott Hughes <enh@google.com> More cases where libc should use O_CLOEXEC.

Change-Id: Idfa111aeebc5deca2399dae919e8b72eb54c23c0
26c1420fbb68916d66a8621b5efe8bb25cfdad7b 30-Jul-2014 Elliott Hughes <enh@google.com> Revert "Added a bionic systrace class and tracing to pthread_mutex.cpp."

This reverts commit a09fe118b1a5eb876ddaa2620965c4a8fb8b007c.

Change-Id: Ia2eb07b57a25dc2ac76fecc0925efb2bed998156
a09fe118b1a5eb876ddaa2620965c4a8fb8b007c 22-Jul-2014 Brigid Smith <brigidsmith@google.com> Added a bionic systrace class and tracing to pthread_mutex.cpp.

bionic_systrace.h contains an implementation of tracing that
can be used with systrace.py and its associated viewer. pthread_mutex
now uses this tracing to track pthread_mutex contention, which can be
enabled by using the "bionic" command line option to systrace.

Bug: 15116468

(cherry picked from commit a406ee6d5f616192e9a13afad6ac6a9969814fc1)

Change-Id: Ic98fc303689fe9384974150d0d258c50806a55e4
a406ee6d5f616192e9a13afad6ac6a9969814fc1 22-Jul-2014 Brigid Smith <brigidsmith@google.com> Added a bionic systrace class and tracing to pthread_mutex.cpp.

bionic_systrace.h contains an implementation of tracing that
can be used with systrace.py and its associated viewer. pthread_mutex
now uses this tracing to track pthread_mutex contention, which can be
enabled by using the "bionic" command line option to systrace.

Bug: 15116468
Change-Id: I30ed5b377c91ca4c36568a0e647ddf95d4e4a61a