Commit Graph

30183 Commits

Author SHA1 Message Date
Narayan Kamath dcb4b80694 Merge "tombstoned: turn on java trace support + unit tests."
am: 3aaf17fc16

Change-Id: I1865c712e1cd96c360bebab4a6ca733255e81fe2
2017-06-08 13:23:11 +00:00
Narayan Kamath 3aaf17fc16 Merge "tombstoned: turn on java trace support + unit tests." 2017-06-08 13:18:48 +00:00
Bowgo Tsai 06ed613e73 first stage mount: removing the restriction of mount points
Current first stage mount only allows three mount points: system, vendor
and/or odm. This was introduced by project Treble to mount those
verified partitions early. However, there might be some other custom
partitions needs to be mounted early as well. This CL removes the
restriction and does first stage mount for whatever specified in
fstab-dt.

Bug: 62423887
Test: first stage mount /vendor with vboot 1.0
Test: first stage mount /vendor with vboot 2.0 (AVB)

Change-Id: I6c146c64e673c35c2823523ccbde193590430c48
2017-06-08 11:30:12 +08:00
Josh Gao 7e197ef833 adb: fix deadlock between transport_unref and usb_close.
Fix a deadlock that happened when a reader/writer thread released a
transport while the hotplug thread attempted  to handle a device
disconnection. Decrementing a transport refcount to zero would hold the
global transport mutex and attempt to take the usb handles mutex, while
the hotplug thread would hold the usb handles mutex and try to call
unregister_usb_transport, which would attempt to take the global
transport mutex.

Resolve this by making transport_unref not take the global transport
mutex.

Bug: http://b/62423753
Test: python test_device.py
Change-Id: Ib48b80a2091a254527f3a7d945b6a11fae61f937
2017-06-07 18:54:09 -07:00
Stephen Crane f5b8e34660 Fix prctl argument type
Although prctl is declared as a varargs function, in actuality it takes
unsigned long arguments (after the first int argument). This patch
ensures that the slack value passed to prctl is correctly sized.

Without this change, the 32-bit ARM compiler places the 64-bit slack
value in registers r2 and r3, but prctl expects the first argument to be
in r1. For kernel versions < 4.6, set_sched_policy has not been
correctly setting the timer slack value in 32-bit ARM code.

Test: Run on bullhead device. Verified assembly of libcutils.so

Change-Id: Ie0e22cbf74a74ff168b257b2e58d0c252449d6c9
2017-06-07 17:25:00 -07:00
Josh Gao 8a2a2d182a crash_dump: defer pausing threads until we're ready.
Don't pause the threads we're going to dump until after we're about to
fetch their backtraces.

Bug: http://b/62112103
Test: debuggerd_test
Change-Id: Id7ab0464842b35f98f3b3ebc42fb76161d8afbd2
2017-06-07 14:11:28 -07:00
Josh Gao 8bb039073f crash_dump: add tracing.
Add some tracing to figure out where time is going during a dump.

Bug: http://b/62112103
Test: systrace.py sched freq idle bionic
Change-Id: Ic2a212beeb0bb0350b4d9c2cd7a4e70adc97752d
2017-06-07 14:11:06 -07:00
Tom Cherry 70a5ed49ef init: move killing of process groups to libprocessgroup
libprocessgroup kills the cgroup associated with a given pid and uid,
but not the POSIX process group associated with it.  This means that
to kill both, two of the same signals must be sent, which may cause
some issues.

This change kills all POSIX process groups whose group leaders are
found within a cgroup.  It only then kills processes in the cgroup
that are not part of the POSIX process groups that have been killed.

Bug: 37853905
Bug: 62418791
Test: Boot, kill zygote, reboot
Change-Id: Id1d96935745899b4c454c36c351ec16a0b1d3827
2017-06-07 13:20:21 -07:00
Josh Gao aa3c3fc3be Merge changes Id51dcb18,I2517dcb9
am: 4db472b779

Change-Id: I86c616c6840133a38f8af6b8b9e61b58435bcc32
2017-06-07 20:08:54 +00:00
Treehugger Robot 4db472b779 Merge changes Id51dcb18,I2517dcb9
* changes:
  adb: libusb: switch from polling for accessibility to a sleep.
  adb: improve race between device_connected and device_disconnected.
2017-06-07 20:01:18 +00:00
Josh Gao 5b8b10e078 adb: libusb: switch from polling for accessibility to a sleep.
For unclear reasons, it seems that for some people, devices are
becoming accessible, inaccessible, and then inaccessible again.
Switch to a sleep for now.

Bug: http://b/62200735
Test: manual
Change-Id: Id51dcb188c3534a57c35cbfd30a181c99115a23c
2017-06-07 11:08:00 -07:00
Josh Gao 7dd382ded9 adb: improve race between device_connected and device_disconnected.
If a device is unplugged while it's being processed, we can be inside
register_usb_transport still when we call unregister_usb_transport,
leading to bad things happening. Move the call of
register_usb_transport into the scope guarded by usb_handles_mutex.

Bug: http://b/62200735
Test: manual
Change-Id: I2517dcb9d30d9a08cebbb5f715ae3fd30c510109
2017-06-07 11:06:53 -07:00
Narayan Kamath ca5e908dd6 tombstoned: turn on java trace support + unit tests.
The SELinux changes that this depends on have now landed.

This change also adds a few lower level unit tests of intercept
functionality.

Test: make; debuggerd_test
Change-Id: I0be5e85e7097e26b71db269c9ed92d9b438bfb28
2017-06-07 18:57:54 +01:00
Josh Gao 9d7880fe96 Merge changes I6c6bf61b,I3fb0b3a8
am: 3160a25010

Change-Id: Ida24fdd74569b2c57bdb0d3cdcfa486faf3cf3f2
2017-06-06 02:45:33 +00:00
Treehugger Robot 3160a25010 Merge changes I6c6bf61b,I3fb0b3a8
* changes:
  adb: libusb: don't try to delete a usb_handle twice.
  adb: don't hold queue lock while performing callbacks.
2017-06-06 02:39:40 +00:00
Josh Gao 60b8c26520 adb: libusb: don't try to delete a usb_handle twice.
Previously, we would attempt to delete a usb_handle in both
device_disconnected and usb_close. If the one in device_disconnected
happened to happen first, usb_close would abort when it failed to find
the handle it was supposed to own.

Bug: http://b/62020217
Test: unplugging device on darwin
Change-Id: I6c6bf61bf89a4d9a23458c00b457080d3d6cc744
2017-06-05 15:11:53 -07:00
Josh Gao 664a618c06 adb: don't hold queue lock while performing callbacks.
Fix yet another source of deadlocks.

Bug: http://b/62020217
Test: unplugged device on darwin
Change-Id: I3fb0b3a84c56aed7d0da8ddba36e2d01fdb682ee
2017-06-05 14:54:45 -07:00
Mark Salyzyn 16d6ed1845 Merge "liblog: add bool to android_log_event_list"
am: d105aa8496

Change-Id: I3b376d3d5c89fd16c4e5eac5afdb74981f372ee1
2017-06-05 17:39:47 +00:00
Treehugger Robot d105aa8496 Merge "liblog: add bool to android_log_event_list" 2017-06-05 17:31:36 +00:00
Mark Salyzyn e09e9a503e liblog: add bool to android_log_event_list
Test: compile
Bug: 62241642
Change-Id: I977702456417ceec21be96ff8463a5ed047560ec
2017-06-05 07:50:13 -07:00
Elliott Hughes 55fd293dfe Add libziparchive-based unzip.
Bug: N/A
Test: new toybox unzip.test
Change-Id: I00be388578be9a0a0390a9e2ecfac664c6ab39ca
2017-06-04 11:53:48 -07:00
Christopher Ferris 7f717dfc83 Merge "Use demangle for function names."
am: daa6602a86

Change-Id: I045673de2c9ac70cdbe65ef56e0ee7b057d88e93
2017-06-02 22:16:45 +00:00
Christopher Ferris daa6602a86 Merge "Use demangle for function names." 2017-06-02 22:10:02 +00:00
Tom Cherry ed75c00f72 Merge "ueventd: parallelize uevent handling"
am: 70431b1f22

Change-Id: Iddec3d673b1f18bc4b8520aafa01c22e0bcbabbf
2017-06-02 21:55:42 +00:00
Tom Cherry 70431b1f22 Merge "ueventd: parallelize uevent handling" 2017-06-02 21:47:57 +00:00
Tom Cherry c583305ed7 ueventd: parallelize uevent handling
fork() subprocesses to handle uevents in parallel.

This reduces coldboot time on bullhead from ~446ms to ~230ms.
This reduces coldboot time on sailfish from ~690ms to ~360ms.
This reduces coldboot time on ryu from ~187ms to ~122ms.

Bug: 33785894

Test: boot bullhead x40, observe no major differences in /dev and /sys
Test: boot sailfish x40, observe no major differences in /dev and /sys
Test: boot ryu x40, observe no major differences in /dev and /sys
Test: boottime tests on bullhead and sailfish
Test: init unit tests

Change-Id: Ie2f63e000b8af78d187477d31fe109f20304d749
2017-06-02 21:45:56 +00:00
Christopher Ferris 7d0aea91c9 Use demangle for function names.
Bug: 62141808

Test: Ran unit tests, ran debuggerd -b on android processes.
Change-Id: I40f341bcb2b35dd0a020d245d6b6f2ed2df65481
2017-06-02 10:10:24 -07:00
Christopher Ferris a11394356c Merge "Fix handling of _ZLXX."
am: 9b537f24bd

Change-Id: I19aaab318b88fcb2289eaa7bc1fe636072c5bc39
2017-06-02 15:09:38 +00:00
Christopher Ferris d34b599ec8 Merge "Change RegsTmpl to RegsImpl."
am: 2065a741cd

Change-Id: Ib4050f99b4f452ed26aa41be0ca137656f610a7f
2017-06-02 15:09:14 +00:00
Christopher Ferris 9b537f24bd Merge "Fix handling of _ZLXX." 2017-06-02 15:06:08 +00:00
Christopher Ferris 2065a741cd Merge "Change RegsTmpl to RegsImpl." 2017-06-02 15:05:29 +00:00
Christopher Ferris 7b8e467192 Change RegsTmpl to RegsImpl.
Also clang-format modified Regs.cpp slightly.

Bug: 23762183

Test: Built and ran unit tests.
Change-Id: I1c7c1b01974ee3f35059c42b8e2aef24d46c81a7
2017-06-01 17:56:46 -07:00
Christopher Ferris 4504bba7d0 Fix handling of _ZLXX.
Mangled names of the form _ZLXX, where XX is a number is now properly
demangled.

Test: Ran new unit tests.
Change-Id: I89fbb36d2294c46da428c75bd1a2f39f69ac4b43
2017-06-01 17:37:09 -07:00
Josh Gao 08a70ac6e5 Merge "adb: reunregress waiting for device on start-server."
am: 72076d1aa7

Change-Id: Ie00b2258e92e93b45e4c859cbec11a374b4f7557
2017-06-02 00:26:14 +00:00
Christopher Ferris 5659a2b6fe Merge "Add DwarfSection classes."
am: 6a80c3e1a8

Change-Id: I353f0d1fb1c3203134e8590a1ef7267407240bed
2017-06-02 00:22:25 +00:00
Treehugger Robot 72076d1aa7 Merge "adb: reunregress waiting for device on start-server." 2017-06-02 00:20:31 +00:00
Christopher Ferris 6a80c3e1a8 Merge "Add DwarfSection classes." 2017-06-02 00:15:13 +00:00
Josh Gao f1477d7f43 Merge changes Iddb0cb1e,Ic15e0b08,If1c9adb6
am: 2b17afc68d

Change-Id: I893f4c95143638598fbc4ef48e6717d1616e3688
2017-06-01 21:53:29 +00:00
Treehugger Robot 2b17afc68d Merge changes Iddb0cb1e,Ic15e0b08,If1c9adb6
* changes:
  debuggerd_client: increase pipe buffer size to max.
  crash_dump: don't notify ActivityManager if it crashed.
  crash_dump: clear the signal mask.
2017-06-01 21:47:19 +00:00
Christopher Ferris 53a3c9b4ab Add DwarfSection classes.
Bug: 23762183

Test: Ran new unit tests.
Change-Id: Icca2a73c50d467718ba4ac41e1c8f541488620dd
2017-06-01 13:12:31 -07:00
Josh Gao 5675f3c321 debuggerd_client: increase pipe buffer size to max.
If a process tries to dump itself (e.g. system_server during ANRs),
crash_dump will block trying to write to its pipe if it's not
sufficiently large. Increase the pipe size to the max, and add a test
to make sure that it's always at least 1MB (the default value).

Bug: http://b/38427757
Test: debuggerd_test
Change-Id: Iddb0cb1e5ce9e687efa9e94c2748a1edfe09f119
2017-06-01 12:42:44 -07:00
Josh Gao b0e51e388b crash_dump: don't notify ActivityManager if it crashed.
Bug: http://b/38427757
Test: killall -ABRT system_server, plus added logging
Change-Id: Ic15e0b0870b1ec08a2f165ad0e5356afed02eece
2017-06-01 12:42:33 -07:00
Christopher Ferris 9bf73d3723 Merge "Fix bug found by fuzzer."
am: 1d6a3acc9e

Change-Id: I020589751d4b2835ac098dad8cc3b07c5ba8448d
2017-06-01 19:09:20 +00:00
Christopher Ferris 1d6a3acc9e Merge "Fix bug found by fuzzer." 2017-06-01 19:03:48 +00:00
Josh Gao e740250b9d crash_dump: clear the signal mask.
crash_dump inherits its signal mask from the thread that forked it,
which always has all of its signals blocked, now that sigchain respects
sa_mask.

Manually clear the signal mask, and reduce the timeout to a
still-generous 2 seconds.

Bug: http://b/38427757
Test: manually inserted sleep in crash_dump
Change-Id: If1c9adb68777b71fb19d9b0f47d6998733ed8f52
2017-06-01 11:55:25 -07:00
Jinguang Dong 6a75b73c36 Merge "fs_mgr: Fix ZRAM error when ZRAM disk size beyond (2^31-1) bytes"
am: 28c11dcff4

Change-Id: I8b67777e1136a50b4233dce1450c7df867ccd744
2017-06-01 17:32:39 +00:00
Treehugger Robot 28c11dcff4 Merge "fs_mgr: Fix ZRAM error when ZRAM disk size beyond (2^31-1) bytes" 2017-06-01 17:21:30 +00:00
Jinguang Dong f7d1014795 fs_mgr: Fix ZRAM error when ZRAM disk size beyond (2^31-1) bytes
Because the zram_size type is unsigned int.so if ZRAM size great
than 2^31 -1, zram_fp will receive a negtive integer, while the
ZRAM driver only accept natural number.We need to use printf
formatting %u instand of %d.

Test: 1. Config the zramdisk size 2348810240 and build a ramdisk
      2. Reflash device and check below command:
         $adb shell dumpsys meminfo
         $ adb shell cat /sys/block/zram0/disksize
         ZRAM info display will be abnormal
      3. Config the zramdisk size 2348810240 and apply with this
         patch.
      4. Retest to step 2 and the ZRAM info will be ok.

Change-Id: I473de33fbd0b66cf13eac3172684e9fef11b6ef0
2017-06-01 19:42:22 +08:00
Robert Benea cc6da8ec5b Merge "cgroups used by init must be mounted before any services start"
am: 63c15c1b11

Change-Id: I2d9298d6de7fbe3b1ad827f498822545e696d4cc
2017-06-01 08:07:31 +00:00
Treehugger Robot 63c15c1b11 Merge "cgroups used by init must be mounted before any services start" 2017-06-01 07:59:19 +00:00