Merge commit '218faa30d547e549c1efbf9bacf23cc56c8bf481' into kraken
* commit '218faa30d547e549c1efbf9bacf23cc56c8bf481':
More fixes to Binder perf regression from Eclair
Merge commit 'e43c248316d0faa7bdc23de823b068c2aa3520ab' into froyo-plus-aosp
* commit 'e43c248316d0faa7bdc23de823b068c2aa3520ab':
More fixes to Binder perf regression from Eclair
Instead of allocating memory from the (non executable) heap,
allocate memory using mspace and ensure that we use mprotect
to mark it as PROT_EXEC. This allows pixelflinger to
continue to work even when NX protections are enabled.
Testing: Using the ApiDemos market app, verify that
Apidemos -> Graphics -> OpenGL ES -> GLSurfaceView
works when "adb shell setprop debug.egl.hw 0" is set.
Change-Id: Ib569cd2543c6fa25688ee76325a712bc2347450b
Re-use the file descriptor to change the cgroups. There's a fast path
in the kernel for the case where the value's already uncahnged. Also,
this is okay because the kernel ignores the write offset. This is
essentially a ioctl-ish/datagram interface, despite being a fd we're
writing to.
This reduces Dalvik->Dalvik void/void Binder calls on Sapphire from
~1.2 to ~0.8 ms. This is a bit slower than the ~0.7 ms we get
avoiding the write altogether.
strace confirms:
[pid 1557] ioctl(21, 0xc0186201 <unfinished ...>
[pid 1556] <... ioctl resumed> , 0x45399cd0) = 0
[pid 1556] write(22, "1556", 4) = 4
[pid 1556] ioctl(21, 0xc0186201 <unfinished ...>
[pid 1555] <... ioctl resumed> , 0x45299cd0) = 0
[pid 1555] write(22, "1555", 4) = 4
[pid 1555] ioctl(21, 0xc0186201 <unfinished ...>
[pid 1554] <... ioctl resumed> , 0x45199cd0) = 0
[pid 1554] write(22, "1554", 4) = 4
BUG=2660235
Change-Id: Ia9f9e1d5b792eaebc9560f89931faf6df0cf9c0d
Merge commit 'ba9025ce958bf07f843c2301fa60b6a5499f20ca' into kraken
* commit 'ba9025ce958bf07f843c2301fa60b6a5499f20ca':
Optimize set_sched_policy(), which gets called in every binder call.
Merge commit '253e27acb6c9e3e0b03c59f25cdf9ecbd64bcdad' into froyo-plus-aosp
* commit '253e27acb6c9e3e0b03c59f25cdf9ecbd64bcdad':
Optimize set_sched_policy(), which gets called in every binder call.
- use static /dev/cpuctl filenames, rather than sprintf() on the fly
- use a custom formatter instead of sprintf() for the tid number
This is a simplified version of Dan's original
Ifc9c81f74fe65f0695ead53b30194bc6adf00da0 to be less risky for Froyo.
Bug: 2660235
Change-Id: I744bbc2ec01fd2569612c814a497df40a933b622
Merge commit '44bce0fb572b0513025e4cfd4bf2c58f5ddef2b3' into kraken
* commit '44bce0fb572b0513025e4cfd4bf2c58f5ddef2b3':
cpu-features.h is only available for ARM
The Pixelflinger disassembler does not handle LDM addressing modes correctly,
assuming that the P and U bits in the instruction mean the same in both LDM and
STM. This results in the disassembler producing sequences like:
stmfd r13!, {r4-r11, r14}
...
...
...
ldmea r13!, {r4-r11, r14}
This small patch fixes it by EORing the P and U bits with the Load/Store bit.
Change-Id: Ic7a1556642c4e29415fc3697019f1239b6c26fc2
Merge commit '9a22c68e8697a2ec86cd238a87a32ea42d7f8d39' into kraken
* commit '9a22c68e8697a2ec86cd238a87a32ea42d7f8d39':
Fixing spelling errors in adb docs
Make adb's daemon-port on the host machine configurable.
adb: remove obsolete adb.connected system property.
Add Pantech's USB vendor ID to adb.
Added Kyocera's VID (0x0482), upon their request.
adb: Add five second timeout for USB writes on Linux host.
Add missing newlines to adb usage message
adb: do not mix printf() with write() when writing to stdout.
Added ZTE's USB Vendor ID (0x19D2) upon ZTE's request.
Added USB vendor id of Sharp, based on Sharp's request.
This is the first CL of a somewhat larger effort which, among other things,
will involve changing the emulator and ddms to talk to adb running on a
configurable port.
The port can be configured using environment variable ANDROID_ADB_SERVER_PORT.
Further CLs will also address the set of ports used for the local transport.
Change-Id: Ib2f431801f0adcd9f2dd290a28005644a36a780a
This was used for adb networking, which no longer exists.
This code also failed when adb was not running as root.
Change-Id: Ied86fb1930094d5ae5009684d25e15385fd31d03
Signed-off-by: Mike Lockwood <lockwood@android.com>
This helps us recover when things go wrong during automated testing.
Change-Id: I006dbfaff7f70d51398ff12fbddcaee751453b78
Signed-off-by: Mike Lockwood <lockwood@android.com>
Merge commit 'a00a69e07d959f73495e42637fe1f493eb01193d' into kraken
* commit 'a00a69e07d959f73495e42637fe1f493eb01193d':
Fix adb, fastboot to compile in Windows SDK under Linux.
Merge commit 'b419c35c660d7421e18a9efef38eca11966b44c7' into froyo-plus-aosp
* commit 'b419c35c660d7421e18a9efef38eca11966b44c7':
Fix adb, fastboot to compile in Windows SDK under Linux.
libacc was allocating memory using malloc for executable pages.
When running on a system where the stack and heap are not
executable, using malloc for executable pages will result in
a segfault.
This change modifies libacc to allow the code to run, even
if the system is running with executable stack and heap disabled.
Change-Id: Ia74e3d83750c09b7eefd865ff059db920093040d
make doesn't seem to handle the absolute symlink from
$OUT/root/sbin/ueventd to /init well - it follows the link during
dependency resolution, decides $OUT/root/sbin/ueventd doesn't exist
because /init doesn't exist, and relinks it every time.
Change-Id: I9ca1c14fe5fa80634f51ffc51a7c73146d29d42e
When the init process ran out of actions to execute, cur_action was
NULL and action_queue_empty() was true, but cur_command was still
set. This patch clears cur_command when a new action is retreived,
and only depends on cur_action and action_queue_empty() to determine
the poll timeout.
Change-Id: Iaa95063c8c267a5b1ada9f20363b99c433e61ac4
* changes:
init: Add ueventd.rc parsing to ueventd
init: Move uevent handling to an external ueventd process
init: Split parser into generic parser and init parser
init: Allow services to start before property triggers are up
init: Add wait command and mount wait flag
init: Move list and log handling to list.h and log.h
init: reap exited child processes on signal_init
init: create symlinks to block device nodes
init: Handle commands in event queue loop