History log of /dalvik/vm/Init.cpp
Revision Date Author Comments
9c789541c5a37dc8c5d12d98b8db74def61e26db 10-Oct-2012 Elliott Hughes <enh@google.com> Don't disable inlining for ARM.

I think there was confusion here between method inlining and the method
compiler. Just because the latter isn't yet functional doesn't mean we
don't want the former for those targets that support it.

(cherry-pick of 4b3f78e73109604b817294a9c21bc3653328e3fb.)

Bug: 7179010
Change-Id: I627badb448a056ed4a1cc1e75a05325ce6112876
485dfb5ccb6d8b2c5d498ff6ee41b14e79103e3c 24-Sep-2012 Ian Rogers <irogers@google.com> Allow max free size of heap to be configured.

This allows the max free to be larger on devices with more memory and
thereby avoid GCs (that may be more frequent due to larger bitmaps).

b/6606849

Change-Id: I4063a303ea4be3c1f227259d699fb238a806451f
851248a4b89294bd86974189939990242ef36ae0 12-Sep-2012 Jeff Sharkey <jsharkey@android.com> Missing EMULATED_STORAGE_TARGET isn't an error.

Devices without emulated storage should just skip the tmpfs.

Bug: 7131382
Change-Id: I9c697e4faf7864ec3a2695cd3770fbf0c9a5cce3
1f36c8128f4130f190faecc6bb24a6853deccd38 12-Sep-2012 Ben Cheng <bccheng@google.com> Test if new build is kicked off.

Change-Id: Ia6a25f00cb28e80111b78d87180575d57c55b062
d8de46c475830792eeb6fb0f7b59aab51f55e817 08-Sep-2012 Jeff Sharkey <jsharkey@android.com> Include user identifier in external storage paths.

When building external storage paths, always include user in path
to enable cross-user paths and aid debugging.

Each Zygote process continues to only have access to the appropriate
user-specific emulated storage through bind mounts. A second set of
mounts continue supporting legacy /sdcard-style paths. For example,
a process running as owner has these mount points:

/storage/emulated_legacy
/storage/emulated_legacy/Android/obb
/storage/emulated/0
/storage/emulated/obb

This change also creates two nested namespaces around zygote. The
first namespace is created when the zygote starts, and it holds a
single writable tmpfs, since rootfs is ro. The second namespace is
created quickly after forking, and is used to hold the private
user-specific bind mounts. (This design saves us from creating a
tmpfs-per-process.)

Bug: 7131382
Change-Id: Id80403ec956f0bff6997411cb1f82f273c76b85f
0c2dc522d0e120f346cf0a40c8cf0c93346131c2 03-Jul-2012 Dong-Yuan Chen <dong-yuan.chen@intel.com> [X86] X86 trace JIT compiler support

This patch provides a fully functional x86 trace JIT compiler for Dalvik
VM. It is built on top of the existing x86 fast interpreter
with bug fixes and needed extension to support trace JIT interface. The
x86 trace JIT code generator was developed independent of the existing
template-based code generator and thus does not share exactly the same
infrastructure. Included in this patch are:

* Deprecated and removed the x86-atom fast interpreter that is no
longer functional since ICS.
* Augmented x86 fast interpreter to provide interfaces for x86 trace JIT
compiler.
* Added x86 trace JIT code generator with full JDWP debugging support.
* Method JIT and self-verification mode are not supported.

The x86 code generator uses the x86 instruction encoder/decoder library
from the Apache Harmony project. Additional wrapper extension and bug
fixes were added to support the x86 trace JIT code generator. The x86
instruction encoder/decoder is embedded inside the x86 code generator
under the libenc subdirectory.

Change-Id: I241113681963a16c13a3562390813cbaaa6eedf0
Signed-off-by: Dong-Yuan Chen <dong-yuan.chen@intel.com>
Signed-off-by: Yixin Shou <yixin.shou@intel.com>
Signed-off-by: Johnnie Birch <johnnie.l.birch.jr@intel.com>
Signed-off-by: Udayan <udayan.banerji@intel.com>
Signed-off-by: Sushma Kyasaralli Thimmappa <sushma.kyasaralli.thimmappa@intel.com>
Signed-off-by: Bijoy Jose <bijoy.a.jose@intel.com>
Signed-off-by: Razvan A Lupusoru <razvan.a.lupusoru@intel.com>
Signed-off-by: Tim Hartley <timothy.d.hartley@intel.com>
2b02fef409ebf91d3a9e6a624ab4f60ef540dbc9 04-May-2012 Elliott Hughes <enh@google.com> Lose libnativehelper to its own project for the PDK.

Bug: 6369821
Change-Id: Iae06cf1570a14ddefad6b31eec904d9fa598d89f
1c92af60b4b6cf1b63c86b29c69c9b54646f915c 02-May-2012 Elliott Hughes <enh@google.com> Simplify the quasi-atomic stuff and add MIPS support.

Change-Id: Iac896c03ef707c998cc714628adea0255f21c035
7222596c216393e5386b260a0b19082cf4a0d0ec 13-Apr-2012 Elliott Hughes <enh@google.com> Add a -XX:mainThreadStackSize= option.

Similar to -Xss, but for the main thread only.

Bug: 6315322
Change-Id: I84bd5974f830f348fd9a0486ae972520b4a02cc4
ce6603b52e6b2ef947cb308b1d7157e357bcba02 13-Apr-2012 Elliott Hughes <enh@google.com> Add a -XX:mainThreadStackSize= option.

Similar to -Xss, but for the main thread only.

Bug: 6315322
Change-Id: I84bd5974f830f348fd9a0486ae972520b4a02cc4
c1a4ab9c313d8a3d12007f2dbef7b5a6fa4ac2ef 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/157220

Also fix an occurrence of LOGW missed in an earlier change.

Bug: 5449033
Change-Id: I2e3b23839e6dcd09015d6402280e9300c75e3406
e8e1ddccd616e8226b7cc1e4e9fdb327429249e8 06-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/157065

Bug: 5449033
Change-Id: Ia5d301248024df26c2a29dabdfe738e39ec87c82
4308417beec548c2b2c06ecec4f7f4a965b09fb2 04-Jan-2012 Steve Block <steveblock@google.com> Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/156801

Bug: 5449033
Change-Id: Ic558031c75b3702d90eb78bd730501ae5d3c077b
062bf509a77fce9dfcb7e7b2e401cf2a124d83d5 20-Dec-2011 Steve Block <steveblock@google.com> Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/156016

Bug: 5449033
Change-Id: Ic663376d1ad6a6cb14bf81405ad9afd247cf2f60
92c1f6f1b4249e4e379452ee7b49f027052bf4ce 20-Oct-2011 Steve Block <steveblock@google.com> Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF) DO NOT MERGE

See https://android-git.corp.google.com/g/#/c/143865

Bug: 5449033
Change-Id: I8bd96961e369a08e86ff78b82d90f20f42787eb1
f7c18055de6e7ffb3ee16a45680ea0ffd6158fbd 11-Oct-2011 Ben Cheng <bccheng@android.com> Leave up to 512 chars of gDvm.lastMessage on dvmAbort's stack frame.

Bug: 5372634
Change-Id: I019a059e5a989de3dfc9e2f5e78f7caa7168cf75
4b5087ab193735cb4b9a1b9983ce661ede79fb0b 07-Oct-2011 The Android Automerger <android-build@android.com> Revert "GC experiment."

This reverts commit b3fb1d08137ead7b6be016e1bc147cb781e76111.
b3fb1d08137ead7b6be016e1bc147cb781e76111 06-Oct-2011 Ben Cheng <bccheng@android.com> GC experiment.

Change-Id: Ifbeec98a796fe8347da25a1be50288d756b40f02
58e1b919e04016b78705fa7188966ccf6d5cac95 17-Jul-2011 Elliott Hughes <enh@google.com> Stop advertising the removed -Xdeadlockpredict option.

Bug: 5038293
Change-Id: Ibb4ee3f68a1e3abababc09a51424c5d1c7b1ea0c
5719d5c79558ffdbbb863ddcf61836221aba922d 22-Jun-2011 Elliott Hughes <enh@google.com> Improve -verbose:jni.

The old output just told you what functions were being called and made no
attempt to show you their arguments. The new output was sufficient to debug
an actual problem with an app we don't have the source to.

Still to do:
0. an easier way for third-party developers to enable this.
1. the primitive type arguments to SetIntField and so forth.
2. return values.

A few examples of the new output...

A decoded jclass:
JNI: libcore.io.Posix.readBytes called IsInstanceOf((JNIEnv*)0x9618470, 0x28100015, java.lang.Class<byte[]>)

A decoded jfieldID:
JNI: libcore.io.Posix.ioctlInt called GetIntField((JNIEnv*)0x9618470, 0x5cb00011, java.io.FileDescriptor.descriptor)

A decoded jmethodID (the FileDescriptor constructor):
JNI: libcore.io.Posix.open called NewObject((JNIEnv*)0x9780480, java.lang.Class<java.io.FileDescriptor>, java.io.FileDescriptor.<init>()V, ...)

A const char*:
JNI: libcore.io.Posix.getsockoptLinger called NewStringUTF((JNIEnv*)0x9618470, "getsockopt")

A jint release mode:
JNI: libcore.io.Posix.writeBytes called ReleaseByteArrayElements((JNIEnv*)0x9780480, 0x2700009, (void*) 0xf5f623c4, JNI_ABORT)

The -verbose:jni option now turns on a bit more output about JNI_OnLoad calls
but no longer causes any logging of calls to JNIEnv or JavaVM functions. The
old -Xjnitrace: option has been extended to enable this new tracing for the
native methods that it covers. They go very well together for debugging
purposes.

I've also made us a bit more verbose if we fail to initialize. In the longer
term I think we want to just abort if we hit any failure during startup, but
my extra logging will save us a bit of time next time we have one of these
failures (this one was caused for me by only having one half of the finalizer
watchdog change; I was missing the libcore side).

(Cherry pick of 6734b8224fb869c94e42e704ec03f2ce8483af2b from dalvik-dev.)

Change-Id: I69b7620b20620e9f06576da244520d9d83f89ab8
120994d2a647aab2e06818cd1e40ec0194033ab5 25-Jun-2011 Jeff Brown <jeffbrown@google.com> Make dual clock mode the default.

Change-Id: Ic2f7cb8a8055319472d16be03c7ca242bf915af0
949c3ec207a7720fb47f7b3ca1f84dfcfd70aaa9 25-Jun-2011 Jeff Brown <jeffbrown@google.com> Add a dual clock profiler tracing mode.

Dalvik previously supported using either the thread-cpu clock
or the real time clock as the timebase for profiler traces.
This change adds a dual clock mode where both thread-cpu time
and real time timestamps are collected.

Using dual clock mode significantly improves TraceView ability
to accurately reconstruct the global timeline of events,
particularly on SMP systems.

For now, thread-cpu mode remains the default.

Dual clock mode can be enabled by running the following command
and restarting the system server.
adb shell setprop dalvik.vm.extra-opts -Xprofile:dualclock

Change-Id: I8c0d91a99aa6829dadea328e54dc1225d9827391
689cc333b7be28b8b312f91999a31a2b0bd60c62 08-Jun-2011 Elliott Hughes <enh@google.com> Fix regular exit.

Change-Id: I653658f3b6e533a235f1108d0b625b9bdff7630c
0fbb7030fff58e25718291811394487d95d95a3e 07-Jun-2011 Elliott Hughes <enh@google.com> Use std::string rather than malloc/free for saneDirName.

Also use std::vector instead of the cutils/array cruft.

Change-Id: I273147335cafbac5d336955f53b0b29d015f0589
60fc806b679a3655c228b4093058c59941a49cfe 26-May-2011 Dan Bornstein <danfuzz@android.com> Further conservation of newlines.

Friends don't let friends end LOG() strings with newlines.

Change-Id: I5a18c766c90c4ab5f03caa6acd601d34d91beb00
e346f7d8f0a79f5fc53fd02c288cb7c12e23b40a 10-May-2011 Ben Cheng <bccheng@android.com> Fix a couple debugging issues involving JIT single-stepping mode.

1) Declare the jitop mask array using a defined length.
2) Fix a spurious divergence when the first instruction in the trace is
single-stepped.

Change-Id: Ic7925acbda70ddd5591a4bb51d42a74d027674e5
c67c23bc6f5f3621f31c41bd48553b196ab0325e 28-Apr-2011 Carl Shapiro <cshapiro@google.com> Eliminate the PROFILE_FIELD_ACCESS feature.

Change-Id: I27bf2d18c4c0735913ea8698825b05e393b046b2
d5c80e06a771bb34336c1ec5b0d9ce8a47ec4244 27-Apr-2011 Elliott Hughes <enh@google.com> Remove the old forcecopy in favor of the new.

Also remove some more half-baked multi-VM cruft, fix command-line
parsing (so -Xforcecopy-fuck-yeah won't work any more), and remove
an unused #define.

Bug: 3412449
Change-Id: If914e23dd3bbcf0ac113a445777e0f550ca05703
a5f3ed80b3b058b006ee2b09915d1400cebd0442 27-Apr-2011 Elliott Hughes <enh@google.com> Add -Xjniopts:forcecopy-unmap to catch more errors than forcecopy.

In particular, this spots the BreakIterator bug that forcecopy didn't.
It's about 2x slower than regular forcecopy mode, so I've added a new
option rather than just replace the fast-but-less-effective forcecopy.

Bug: 3412449
Change-Id: I1f226ceeab2508dff607ba25b0afee51cf9c3f83
f06a4d168052054ee9f5ffa847011d944be2e570 23-Apr-2011 Elliott Hughes <enh@google.com> Move JNIHelp's implementation to C++.

Ouch.

Change-Id: I81c0457a95549f1bef7cc8d9ab23d6ca4475cdb5
1e1433e78f560a01744e870c19c162ab88df9dc1 21-Apr-2011 Carl Shapiro <cshapiro@google.com> Remove unneeded void argument list declarations.

Change-Id: Ica749f6defa890363ec531b29e25bc415dc2cbb9
d5c36b9040bd26a81219a7f399513526f9b46324 16-Apr-2011 Carl Shapiro <cshapiro@google.com> Move the remaining non-compiler VM code into C++.

Change-Id: Id8693208d2741c55a7b0474d1264f2112019d11f