Commit graph

30637 commits

Author SHA1 Message Date
Christopher Ferris
6dc945babd Merge "Update the native allocator document." 2019-11-13 23:30:48 +00:00
Christopher Ferris
004ad8567a Merge "Remove unused code."
am: fcf1fe48ab

Change-Id: Ica400585a3d084437680a67cfbc58481a3faef54
2019-11-13 14:51:47 -08:00
Christopher Ferris
fcf1fe48ab Merge "Remove unused code." 2019-11-13 22:40:12 +00:00
Christopher Ferris
75edf16f4d Update the native allocator document.
Add extra information I've been using to evaluate scudo.

Test: NA
Change-Id: Ie7ee65890b1a3804c38ba38de504144d43e410b2
2019-11-13 14:00:56 -08:00
Christopher Ferris
ae57a6b641 Remove unused code.
Test: Compiles.
Change-Id: I92095bd0ee59a3b98ee8deba1c3efc4685389a1b
2019-11-13 12:50:50 -08:00
Elliott Hughes
f1b5a7f401 Merge "Update docs/status.md function counts for recent releases."
am: 5e85d1b290

Change-Id: Id94f23b95ab525ce462b29557ca9bf65d12413ec
2019-11-13 08:12:45 -08:00
Elliott Hughes
5e85d1b290 Merge "Update docs/status.md function counts for recent releases." 2019-11-13 15:38:57 +00:00
Jiyong Park
31bf42ca87 Merge "Rename # vndk tag to # llndk"
am: f0210e9300

Change-Id: Iee204bcd98d7355fdc1e57209993f767e36c4bbb
2019-11-12 22:46:06 -08:00
Treehugger Robot
f0210e9300 Merge "Rename # vndk tag to # llndk" 2019-11-13 06:36:36 +00:00
Jiyong Park
a4fe44e339 Rename # vndk tag to # llndk
The APIs that are tagged with # vndk are actually for LLNDK libraries.
Although LLNDK is part of VNDK, calling those APIs 'vndk' has given
users a wrong perception that the APIs don't need to be kept stable
because that's the norm for most of the VNDK libraries that are not
LLNDK.

In order to eliminate the misunderstanding, rename the tag to 'llndk' so
that people introducing new such API will realize what they are signing
themselves up for.

Bug: 143765505
Test: m
Merged-In: I56e49876410bd43723a80d0204a9aef21d20fca9
(cherry picked from commit 3e2cd44aa4)
Change-Id: I56e49876410bd43723a80d0204a9aef21d20fca9
2019-11-13 14:31:26 +09:00
Elliott Hughes
502dc0b9c3 Update docs/status.md function counts for recent releases.
Test: N/A
Change-Id: I99b7227334d0858f19ec7544a255fe47f265d810
2019-11-12 21:06:07 -08:00
Peter Collingbourne
2b285ceaf1 Merge "Link libgcc_stripped into libc.so and libm.so with --whole-archive on ARM."
am: 754b27d3dd

Change-Id: I84e955f3dc29064a29110e83751790128344377a
2019-11-12 15:46:36 -08:00
Treehugger Robot
754b27d3dd Merge "Link libgcc_stripped into libc.so and libm.so with --whole-archive on ARM." 2019-11-12 23:36:29 +00:00
Peter Collingbourne
b061e77748 Link libgcc_stripped into libc.so and libm.so with --whole-archive on ARM.
This library was previously being statically linked into both libraries as a
consequence of the relocation to __aeabi_unwind_cpp_prX present in most object
files. However, after LLVM commit 1549b469, we no longer emit these relocations
on Android, so we need to link the library explicitly with --whole-archive. The
intent is to eventually stop linking libgcc into these libraries altogether,
but for now, we need to keep linking them in order to avoid breaking the build.

Change-Id: I275109527b7cbd6c4247b3fe348975d720626273
2019-11-12 14:26:23 -08:00
Raman Tenneti
2cd86af9ed Merge "Revert "Revert "Make system property reads wait-free"""
am: afe44cc483

Change-Id: I8ef30dc382edb27a4dc91a5215e94da2a7e6a654
2019-11-12 12:53:55 -08:00
Raman Tenneti
afe44cc483 Merge "Revert "Revert "Make system property reads wait-free""" 2019-11-12 20:43:29 +00:00
Raman Tenneti
b481a2e743 Revert "Revert "Make system property reads wait-free""
This reverts commit de39d9242a.

Reason for revert: This revert is not needed

Change-Id: I34af8e5d75c724f6c4066fafbfc6bc7d58377601
2019-11-12 20:41:55 +00:00
jaishank
6348ec0181 Merge "Optimized L2 Cache value for Intel(R) Core Architectures."
am: e5c900f011

Change-Id: Id412d3078c2425eeb1c8aab7941060f62ff4f358
2019-11-12 12:41:48 -08:00
Treehugger Robot
e5c900f011 Merge "Optimized L2 Cache value for Intel(R) Core Architectures." 2019-11-12 20:35:38 +00:00
Raman Tenneti
3d9fcdea65 Merge "Revert "Make system property reads wait-free""
am: 1b28efa2d1

Change-Id: I3e28d605f3565700357ce8f396466e6c99cff72f
2019-11-12 10:39:36 -08:00
Raman Tenneti
1b28efa2d1 Merge "Revert "Make system property reads wait-free"" 2019-11-12 18:26:48 +00:00
Raman Tenneti
de39d9242a Revert "Make system property reads wait-free"
This reverts commit 0cf90556de.

Reason for revert: Device boot failures - 144355953

Change-Id: Icd4fc8c7a1d06d688a6d37e6f1c1aa45563f711b
2019-11-12 18:24:06 +00:00
Daniel Colascione
51cbf0d248 Merge "Make system property reads wait-free"
am: 985e678516

Change-Id: Id2b979d61d2f0d96b9ce7642914447a7d18f34f5
2019-11-12 09:28:56 -08:00
Treehugger Robot
985e678516 Merge "Make system property reads wait-free" 2019-11-12 17:14:30 +00:00
jaishank
2e50fa7cf8 Optimized L2 Cache value for Intel(R) Core Architectures.
Performance Gain:
AnTuTu             - 4.80%
3D Mark Sling Shot - 3.47%
BaseMarkGPU        - 5.51%
GeekBench          - 3.19%

Test: ./tests/run-on-host.sh 64

Change-Id: I6122835a3f5fd97cc291623d1062fe25843a2d93
Signed-off-by: jaishank <jaishankar.rajendran@intel.com>
2019-11-12 15:58:34 +00:00
Nick Desaulniers
bcbeb438ad Merge "bionic: libc: remove -Wimplicit-fallthrough"
am: ebe5bfefe1

Change-Id: I85c588d51d4c3edc7da7b5e4e62e364c404a181b
2019-11-11 14:04:52 -08:00
Treehugger Robot
ebe5bfefe1 Merge "bionic: libc: remove -Wimplicit-fallthrough" 2019-11-11 21:32:43 +00:00
Daniel Colascione
0cf90556de Make system property reads wait-free
Right now, when we read a system property, we first (assuming we've
already looked up the property's prop_info) read the property's serial
number; if we find that the low bit (the dirty bit) in the serial
number is set, we futex-wait for that serial number to become
non-dirty. By doing so, we spare readers from seeing partially-updated
property values if they race with the property service's non-atomic
memcpy to the property value slot. (The futex-wait here isn't
essential to the algorithm: spinning while dirty would suffice,
although it'd be somewhat less efficient.)

The problem with this approach is that readers can wait on the
property service process, potentially causing delays due to scheduling
variance. Property reads are not guaranteed to complete in finite time
right now.

This change makes property reads wait-free and ensures that they
complete in finite time in all cases. In the new approach, we prevent
value tearing by backing up each property we're about to modify and
directing readers to the backup copy if they try to read a property
with the dirty bit set.

(The wait freedom is limited to the case of readers racing against
*one* property update. A writer can still delay readers by rapidly
updating a property --- but after this change, readers can't hang due
to PID 1 scheduling delays.)

I considered adding explicit atomic access to short property values,
but between binary compatibility with the existing property database
and the need to carefully handle transitions of property values
between "short" (compatible with atomics) and "long" (incompatible
with atomics) length domains, I figured the complexity wasn't worth it
and that making property reads wait-free would be adequate.

Test: boots
Bug: 143561649
Change-Id: Ifd3108aedba5a4b157b66af6ca0a4ed084bd5982
2019-11-11 11:17:00 -08:00
Nick Desaulniers
97c43095b9 bionic: libc: remove -Wimplicit-fallthrough
aosp/144287300 set it to a global cppflag.

The compiler upgrade can now check for this warning in C code.

This patch should be reverted once the BSD sources with instances of
-Wimplicit-fallthrough have been fixed.

Remove it from cflags, so that it's not re-enabled for C code until
fixed.

Bug: 139945549
Bug: 144287300
Test: mm
Change-Id: Ieca0d5b41634636477392e5209a41807f9b44bd4
Signed-off-by: Nick Desaulniers <ndesaulniers@google.com>
2019-11-11 10:49:10 -08:00
Josh Gao
45f47e0e44 Merge "linker: add more context to link failure error."
am: 28fb781ef7

Change-Id: I8371941b83821ee7ca576ed69fadcd1734736ee9
2019-11-08 16:21:14 -08:00
Treehugger Robot
28fb781ef7 Merge "linker: add more context to link failure error." 2019-11-09 00:13:31 +00:00
Elliott Hughes
d63b56bf89 Merge "Stop using __out as a name."
am: ffad55954b

Change-Id: I8b7c9ac99ef6f4996a5b88f2fc2e45e693199cc4
2019-11-08 15:41:48 -08:00
Treehugger Robot
ffad55954b Merge "Stop using __out as a name." 2019-11-08 23:25:19 +00:00
Christopher Ferris
054e5d45c2 Merge "Rename iterate to malloc_iterate internally."
am: c686ab54c2

Change-Id: Ibe938c06d199011e9a2d2d499ae9a652c0ee050a
2019-11-08 14:31:26 -08:00
Christopher Ferris
c686ab54c2 Merge "Rename iterate to malloc_iterate internally." 2019-11-08 22:10:56 +00:00
Elliott Hughes
f38e8ca149 Stop using __out as a name.
libc++ poisons `__out` because it's #defined on Windows. Rather than
hack libc++, let's just avoid that name. "src" and "dst" are far more
widely used than "in" and "out" for this purpose anyway.

Test: treehugger
Change-Id: I0db9997fd5f06f626dbf0ee967b52145395466b4
2019-11-08 13:51:12 -08:00
Christopher Ferris
6f517cd7a1 Rename iterate to malloc_iterate internally.
I have no idea why I used the iterate name internally which is
completely unlike every other function name. Change this to match
everyone else so that it's now malloc_iterate everywhere.

This is probably the last chance to change this before mainline
modules begin, so make everything consistent.

Test: Compiles, unit tests passes.
Change-Id: I56d293377fa0fe1a3dc3dd85d6432f877cc2003c
2019-11-08 11:49:14 -08:00
Martin Stjernholm
433e81776f Merge "Revert submission of topic 'libdl_android-in-apex'"
am: 31600e8424

Change-Id: Iac424e588e1c6a9092939e219871776567f37335
2019-11-08 04:05:56 -08:00
Martin Stjernholm
31600e8424 Merge "Revert submission of topic 'libdl_android-in-apex'" 2019-11-08 11:51:39 +00:00
Yuexi Ma
c74666eb3c Revert submission of topic 'libdl_android-in-apex'
Reason for revert: broke numerous major apps in app compat testing
Bug: 144100240

Change-Id: I50b440356bdbde3ac130da5d28d5ef20f8b63582
2019-11-07 19:18:53 +00:00
Jim Blackler
23ced37112 Merge "Revert "fortify: allow diagnostics without run-time checks""
am: ca1834de7a

Change-Id: Iccd3f1349aabbb7a83b177a503ecca75d645b860
2019-11-07 04:48:38 -08:00
Jim Blackler
ca1834de7a Merge "Revert "fortify: allow diagnostics without run-time checks"" 2019-11-07 12:39:16 +00:00
Jim Blackler
2a83cb7357 Revert "fortify: allow diagnostics without run-time checks"
This reverts commit d7e11b8853.

Reason for revert: Droidcop-triggered revert due to breakage android-build.googleplex.com/builds/submitted/5992686/aosp_x86_64-eng/latest/view/logs/build_error.log, bug b/144081298

Change-Id: Ic6a492c4fcf2ea1bb324c44fb615a898bbc9a9b7
2019-11-07 12:21:47 +00:00
Martin Stjernholm
de246b2318 Merge "Add libdl_android to the Runtime APEX."
am: 77e910d337

Change-Id: I20753896e8e08ef34db9bae99c249b4a3ded8aea
2019-11-07 03:10:19 -08:00
Martin Stjernholm
77e910d337 Merge "Add libdl_android to the Runtime APEX." 2019-11-07 11:01:36 +00:00
George Burgess IV
03d2fc3ce3 Merge "Revert "fortify: allow diagnostics without run-time checks""
am: 2fead5fd89

Change-Id: Ic15e46a2e9cc1fb794350ad2996809a0f45e14d7
2019-11-06 23:19:17 -08:00
George Burgess IV
2fead5fd89 Merge "Revert "fortify: allow diagnostics without run-time checks"" 2019-11-07 07:10:38 +00:00
George Burgess IV
f359548bf1 Revert "fortify: allow diagnostics without run-time checks"
This reverts commit d7e11b8853.

Reason for revert: Breaks aosp_x86_64-eng. Will look into it and
unbreak when it's not almost midnight. :)

Change-Id: I21f76efe4d19c70d0b14630e441376d359a45b49
2019-11-07 07:07:38 +00:00
Elliott Hughes
3e16696e3a Merge "Restore _FORTIFY_SOURCE in versioner."
am: 03aa94c9a9

Change-Id: I9a278309918c764a74b16b97b7056a22b3c191d3
2019-11-06 18:57:55 -08:00
Treehugger Robot
03aa94c9a9 Merge "Restore _FORTIFY_SOURCE in versioner." 2019-11-07 02:42:58 +00:00