Commit graph

175 commits

Author SHA1 Message Date
Jamie Gennis
15311e0830 am 38e1bb86: am 774f9299: libcutils: add support for app tracing
* commit '38e1bb8617ee6b7913b9b7b7c40e43338ea5c947':
  libcutils: add support for app tracing
2013-03-28 14:04:50 -07:00
Jamie Gennis
774f929991 libcutils: add support for app tracing
This change adds support for tracing using the ATRACE_TAG_APP tag.  This tag is
enabled only for processes in which the /proc/<pid>/cmdline value appears in
the comma-separated list of such values in the debug.atrace.app_cmdlines system
property.  It is also only enabled if either the ro.debuggable system property
is set to 1 or the application has declared itself debuggable in its manifest,
which gets reported to libcutils by the framework.

Change-Id: Ic94ba55f4e70a9cf994056acbf151e523428b65d
2013-03-28 20:59:31 +00:00
Ian Rogers
63c939aadc am da204c5c: am 62980e81: Inline ldrex/strex for thumb2, remove ARMv5 remnants.
* commit 'da204c5c4244ea67aacbd29c222d0a2d1c35b443':
  Inline ldrex/strex for thumb2, remove ARMv5 remnants.
2013-03-21 21:41:49 +00:00
Ian Rogers
62980e817c Inline ldrex/strex for thumb2, remove ARMv5 remnants.
We assume ARMv7 which with thumb2 has ldrex/strex operations that may be
inlined if -mthumb is defined.
Remove remnants of ARMv5 support.

(cherry picked from commit 80c3b278fd)

Change-Id: I194a3d08e933c63f79d48288d9235b4e64099340
2013-03-21 12:37:35 -07:00
Alex Ray
b178fbe67b am ee2dccf2: am 66317770: cutils: trace: add asynchronous events
* commit 'ee2dccf21b61094a0fd782d32f221804b0a7d3fa':
  cutils: trace: add asynchronous events
2013-03-19 00:30:03 +00:00
Alex Ray
66317770d3 cutils: trace: add asynchronous events
Change-Id: Ia09d34cbc6c8c85fb3d0f1a7e95de53d1b79e998
2013-03-18 13:33:38 -07:00
Alex Ray
f90fd9eeb3 cutils: bitops: Add Hamming weight to bitmask
Change-Id: I5c6b7adf711007edfffcb4fdf8e05b04bcffef54
2013-02-22 14:27:37 -08:00
Nick Kralevich
21291f1ac5 Revert "property_get: do argument checking."
This reverts commit 75cc88546b.
2013-02-04 09:49:13 -08:00
Nick Kralevich
91e63efeef Revert "Fix win_sdk build."
This reverts commit 941daef629.

Change-Id: I6b509492964baf535e0eeb1a731bf70c91715942
2013-02-04 09:48:54 -08:00
Nick Kralevich
941daef629 Fix win_sdk build.
Don't depend on sys/cdefs.h, which doesn't exist when building
for the host.Don't try to compile property_len() checking code
in mingw32, it doesn't work.

Change-Id: I6a56b759bd4e8d30d6ca136e43d6515bf7408cc6
2013-02-02 17:26:38 -08:00
Nick Kralevich
75cc88546b property_get: do argument checking.
Try to verify, at compile time, that the supplied
value buffer is large enough.

There's more we can do here, but this is a good first
pass.

Change-Id: Iac8153826c89114b2755735032423c6744f7a61b
2013-01-31 15:20:14 -08:00
Nick Kralevich
b94fd1abcb cutils: remove dead code.
The last caller of this code was removed in
dalvik commit eb1703442f3fc0577b3395b7eb4d55300b4125db
(https://android-review.googlesource.com/50689)

Change-Id: I3f4865c02092752a13369a3b2c3289fc9a4f6a62
2013-01-29 13:19:20 -08:00
Alex Ray
60efde774d Merge "cutils: add simple reference counter" 2013-01-11 13:25:34 -08:00
Alex Ray
d874cc8bb9 cutils: add simple reference counter
Change-Id: Iefb34abc864cb4ca2da2f1c85c45f89af8c7fe8b
2013-01-10 15:23:55 -08:00
Alex Ray
81ec96df4f cutils: bitops: add include for bool
Change-Id: I3eca5a7c1f5ec66ded1229ccb6ca1dbb5d608ffd
2013-01-07 16:58:01 -08:00
Alex Ray
2111bc7b28 cutils: Add bitmask utilities to bitops
Bitmask utils handle resource tracking using a (multi-word) bitmask.

Change-Id: I2ae45df1ac8c665c29ea9cae32a757168686b96c
2013-01-07 13:02:28 -08:00
Ben Cheng
26f447f5da am 7f692fe6: am 523e21d3: Merge "Fail-proof the inline directives for SMP atomic operations."
* commit '7f692fe6448049dca2795d7d648615a2dc7a500c':
  Fail-proof the inline directives for SMP atomic operations.
2012-12-07 14:37:04 -08:00
Ben Cheng
5206d59712 Fail-proof the inline directives for SMP atomic operations.
The various atomic operations are declared as inline in the header files
to cut the function call overhead. However, the plain inline keyword is
just a suggestion to the compiler which makes its own decision on whether
to inline them or not. Worst, if they are not inlined, the
-fvisibility-inlines-hidden compiler flag will render them as hidden
symbols in the object file. If they are picked up by the linker over the
ones supplied in libcutils.so the following warning will be reported:

warning: hidden symbol 'android_atomic_inc' in foo.o is referenced by
DSO bar.so

One way is to add __attribute__((visibility("default"))) to those inline
functions to suppress the linker warnings. A better way is to force
inlining as with this patch.

Change-Id: Ie4fcfdfaaf06f42d351619a0d89671a9df15ca2f
2012-12-07 11:07:10 -08:00
Alex Ray
448f76a1c4 cutils: trace: use ANDROID_SMP to switch atomics
With inline atomics, trace functions have no non-inline function calls
in the fast (tracing off) path.  To enable this, ANDROID_SMP must be
defined for the project.  Otherwise, normal (non-inline) atomics are
used.

Change-Id: Id1f75bdf7db2f5d319a389ad411f55073d78c48c
2012-11-30 19:40:58 -08:00
Alex Ray
e7bb7bca4f cutils: trace: add atrace_update_tags()
Adds a function to read the current trace system property value, and
sets the trace tags to it, do be used as a sysprop change callback.

Change-Id: Ia6336652173aa5b07188898736c2c795a69fe79a
2012-11-28 13:56:49 -08:00
Alex Ray
0a34643160 cutils: Add tracing support
Basic tracing functionality to cutils, which can be turned on at start,
or dynamically controlled by the frameworks.  The goal is for hardware
modules to add tracing that will be controlled by their respective
services.

Change-Id: I84eeb7d6be0038f734e719074fa4a2fae4ffe9c0
2012-11-28 13:56:15 -08:00
Wink Saville
44a9abdd04 Add RLOGx
This will eventually allow us to remove the code in
logd_write.c#__android_log_write which uses the tag
to direct logs to the radio buffer.

Change-Id: Ic992c0b8d1cf000b1814dc7786d2a40becf75eaf
2012-11-16 12:46:08 -08:00
Elliott Hughes
663005248d The localtime_tz and mktime_tz extensions are now in bionic.
Bug: 7012465

(cherry-pick of d03072ffde3279fbb60591a0d07c820d8e792762.)

Conflicts:

	libcutils/Android.mk

Change-Id: I5e34edd4c8f59cc0a4d5dcc4740707ae063608a0
2012-10-18 11:38:23 -07:00
Jeff Sharkey
ddb1733944 Wrap system calls in TEMP_FAILURE_RETRY.
fs_prepare_dir() is used heavily during Zygote init, and can easily
run into EINTR.

Bug: 7151474
Change-Id: I7aac43a43483d55db47ca20456fff68ce51bbc46
2012-09-13 15:02:53 -07:00
Jeff Sharkey
9685194fc9 File-system utilities for installd and zygote.
Bug: 7008879
Change-Id: Ia54b8d4ad434e8973f235e2a4728651814bef8a9
2012-08-30 10:29:41 -07:00
Ian Rogers
fd7f1b6a50 Revert "Revert "Upgrade to dlmalloc 2.8.5.""
This reverts commit 42b83c6df7.
2012-08-28 15:52:20 -07:00
Brian Carlstrom
42b83c6df7 Revert "Upgrade to dlmalloc 2.8.5."
This reverts commit 2d13791ce7.
2012-08-22 12:10:19 -07:00
Brian Carlstrom
1768707951 am e05ac541: am 9d779bf1: Merge "Upgrade to dlmalloc 2.8.5."
* commit 'e05ac5415e861dee6a3f175c8066ff577736ba1f':
  Upgrade to dlmalloc 2.8.5.
2012-08-20 17:04:24 -07:00
Ian Rogers
2d13791ce7 Upgrade to dlmalloc 2.8.5.
Remove mspace functionality from cutils.
Directly declare mspace from dlmalloc in code flinger's code cache, and
manage without using morecore.

Depends upon: https://android-review.googlesource.com/41717

Change-Id: If927254febd4414212c690f16509ef2ee1b44b44
2012-08-20 15:30:35 -07:00
Jeff Sharkey
2be5338a84 Merge "Multi-user external storage support." into jb-mr1-dev 2012-08-16 14:33:00 -07:00
Jeff Sharkey
885342a0f2 Multi-user external storage support.
Remount rootfs as recursively shared, so that mount changes are
propagated into child namespaces.  Mount external storage for access
from adb.

Clean multi-user dependencies for use in Dalvik.  Also define
external storage paths.

Bug: 6925012
Change-Id: I375de581a63f4f36667894c56a34a9dd45361e8f
2012-08-15 21:10:07 -07:00
Jean-Baptiste Queru
93be76f5c0 am e8e73b01: am 311a4758: Merge "Remove system/core\'s remnants of SH support."
* commit 'e8e73b01399e8d3c3fc6b94d26ef9cc49b33dda8':
  Remove system/core's remnants of SH support.
2012-08-13 16:03:30 -07:00
Elliott Hughes
98ebf1975f am 2ff60998: am 605f8706: Merge "Add Mips architecture to system/core/include"
* commit '2ff6099854691e3406a17797d4aa83624174e6f4':
  Add Mips architecture to system/core/include
2012-08-11 11:53:08 -07:00
Elliott Hughes
6521a41dcf Remove system/core's remnants of SH support.
SH support is long dead.

Change-Id: I6be2763ca9f1ad8b3f9b09a8ad2f1d67f1e7f802
2012-08-11 10:04:00 -07:00
Elliott Hughes
605f8706c8 Merge "Add Mips architecture to system/core/include" 2012-08-11 09:56:47 -07:00
Jeff Sharkey
46ac0ef00b Include to define uid_t.
Change-Id: I02d36346fc3c6236bd64309798b434405f8dfef7
2012-08-08 13:59:34 -07:00
Jeff Sharkey
9509d27252 Native utils for working with user and app IDs.
Bug: 6925012
Change-Id: I56f18826fd324f60b6e446cebd30719258e40990
2012-08-07 17:56:48 -07:00
Jeff Brown
053b865412 Enhance native stack dumps.
Provides a new mechanism for dumpstate (while running as root)
to request that debuggerd dump the stacks of native processes that
we care about in bug reports.  In this mode, the backtrace
is formatted to look similar to a Dalvik backtrace.

Moved the tombstone generating code into a separate file to
make it easier to maintain.

Fixed a bug where sometimes the stack traces would be incomplete
because we were not waiting for each thread to stop after issuing
PTRACE_ATTACH, only the main thread.  So sometimes we were missing
traces for some threads.

Refactored the logging code to prevent accidentally writing data
to logcat when explicitly dumping a tombstone or backtrace from the
console.

Only root or system server can request to dump backtraces but
only root can dump tombstones.

Bug: 6615693
Change-Id: Ib3edcc16f9f3a687e414e3f2d250d9500566123b
2012-06-08 13:29:23 -07:00
Duane Sand
096041174b Add Mips architecture to system/core/include
Change-Id: Ief7bdbd8d09cabe3f11f3ed47a932a7faa81cad9
2012-05-29 16:18:42 -07:00
Glenn Kasten
10ec3c7645 Add more SP_ constants
Change-Id: I52c8ea33b9b915fc08546f2ca0b191391f58506b
2012-04-23 17:34:06 -07:00
Glenn Kasten
69bfb1f099 Scheduling group cleanup - add comment, SP_DEFAULT
Also tid == 0 maps to gettid() on platforms that support it.
This is needed by mediaserver code that was formerly using
the old C++ API.

Change-Id: I8baaa3e42315c9b924cec26b6da01e7cb69e0078
2012-04-20 10:31:50 -07:00
Geremy Condra
15621e0970 cutils: return the remote uid on netlink recv failure
This change adds a layer of indirection to uevent's
uevent_kernel_multicast_recv, allowing dependent code to
get the remote endpoint if desired.

Change-Id: If2f00708a1dd6196c415b1ebc2a7eeb72399a90e
2012-03-29 17:07:24 -07:00
Nick Kralevich
6756a0c9fe logger: Add the update kernel struct to userspace
Android's kernel logger can optionally return UID information
in addition to the previously returned information. This
information is available by telling the kernel to use the
updated structure via the newly introduced LOGGER_SET_VERSION
ioctl.

int fd = open("/dev/log/main", O_RDONLY);
int version = 2;
ioctl(fd, LOGGER_SET_VERSION, &version);

Change-Id: I6bfe7bfb9df45a56124aa8d0d19e7d7a18e06862
2012-03-22 15:51:24 -07:00
Nick Kralevich
10331ed16c Revert "logger: Add the update kernel struct to userspace"
This reverts commit 56c3065b79.

Breaks win_sdk build.
2012-03-22 10:18:20 -07:00
Nick Kralevich
3076bfd036 Merge "logger: Add the update kernel struct to userspace" 2012-03-22 09:25:18 -07:00
Nick Kralevich
56c3065b79 logger: Add the update kernel struct to userspace
Android's kernel logger can optionally return UID information
in addition to the previously returned information. This
information is available by telling the kernel to use the
updated structure via the newly introduced LOGGER_SET_VERSION
ioctl.

int fd = open("/dev/log/main", O_RDONLY);
int version = 2;
ioctl(fd, LOGGER_SET_VERSION, &version);

Change-Id: I3914be41de55342c2918f8978fcd4d2b96a09288
2012-03-20 16:21:22 -07:00
Kenny Root
77a62ceac5 MinGW does not have sys/cdefs.h
Change-Id: I5cafafce8488d355ed3865a9fd1173fbebbc5b03
2012-03-20 13:46:30 -07:00
Kenny Root
418fbe66e0 Merge "Add cdefs decoration to list.h" 2012-03-19 17:42:15 -07:00
Jeff Brown
4a6b384f60 Provide portable wrapper for qsort_r.
qsort_r() is declared differently on BSD and GNU libc and
may be absent on other platforms.

Provide qsort_r_compat() which should work everywhere.

Change-Id: I17a9026573b1ed971ff7d79895e7eb41ba108807
2012-03-19 14:07:26 -07:00
Kenny Root
0009b73ed8 Add cdefs decoration to list.h
In case someone includes this from C++ code.

Change-Id: I3b5a8bde5b5b9e8dcee64abaf33383f21eff7046
2012-03-15 21:45:07 -07:00