platform_system_core/libunwindstack
Vic Yang cc8009ff04 libunwindstack: Move DwarfOp callback table to rodata section
There are currently two copies of DwarfOp callback tables in
data.rel.ro section, and that is 16KB of dirty memory per process on a
64-bit platform.

To reduce memory usage, we introduce a layer of indirection so that
all instances of DwarfOp can share a single callback table.  We also
get rid of the pointers for op names in the callback table so that the
entire table can be placed in rodata section.

Test result shows 1MB saving on cuttlefish, and 750KB saving on a Go
device (32-bit ARM).

Bug: 112073665
Test: Boot on cuttlefish and a Go device.
Change-Id: Idf90a513f37534ab1ef30d5742a9d3ea779f3661
2019-01-24 11:11:15 -08:00
..
benchmarks Add caching of build id in MapInfo object. 2019-01-17 20:14:00 -08:00
include/unwindstack Fix memory leak in UnwinderFromPid object. 2019-01-23 09:49:28 -08:00
tests Fix flaky signal tests. 2019-01-18 17:39:50 -08:00
tools Add caching of build id in MapInfo object. 2019-01-17 20:14:00 -08:00
.clang-format Use the 2 space clang format for libunwindstack. 2017-03-21 10:41:45 -07:00
Android.bp Add caching of build id in MapInfo object. 2019-01-17 20:14:00 -08:00
ArmExidx.cpp Fix handling of load bias values. 2018-06-11 18:53:55 -07:00
ArmExidx.h Fix handling of load bias values. 2018-06-11 18:53:55 -07:00
AsmGetRegsMips.S Add libunwindstack support for Mips and Mips64 2017-12-11 15:44:40 +01:00
AsmGetRegsMips64.S Add libunwindstack support for Mips and Mips64 2017-12-11 15:44:40 +01:00
AsmGetRegsX86.S Fix wrong mov instruction size. 2018-01-25 11:44:19 -08:00
AsmGetRegsX86_64.S Add full support for initing registers. 2017-07-11 12:15:54 -07:00
Check.h Add error propagation into Unwinder/Elf objects. 2018-01-24 17:50:46 -08:00
DexFile.cpp Some minor updates in the libdexfile external API. 2019-01-09 23:25:25 +00:00
DexFile.h Some minor updates in the libdexfile external API. 2019-01-09 23:25:25 +00:00
DexFiles.cpp Revert^2 "Use libdexfile external API in libunwindstack." 2018-12-19 21:04:35 +00:00
DwarfCfa.cpp Move DwarfCfaInfo::kTable from data.rel.ro to rodata 2018-12-14 06:03:09 -08:00
DwarfCfa.h Move DwarfCfaInfo::kTable from data.rel.ro to rodata 2018-12-14 06:03:09 -08:00
DwarfDebugFrame.h Refactor the DwarfSection classes. 2018-06-27 14:52:21 -07:00
DwarfEhFrame.h Refactor the DwarfSection classes. 2018-06-27 14:52:21 -07:00
DwarfEhFrameWithHdr.cpp Refactor the DwarfSection classes. 2018-06-27 14:52:21 -07:00
DwarfEhFrameWithHdr.h Refactor the DwarfSection classes. 2018-06-27 14:52:21 -07:00
DwarfEncoding.h Make the library usable as a library. 2017-07-14 12:20:23 -07:00
DwarfMemory.cpp Remove CHECK in AdjustEncodedValue. 2018-12-20 08:40:58 -08:00
DwarfOp.cpp libunwindstack: Move DwarfOp callback table to rodata section 2019-01-24 11:11:15 -08:00
DwarfOp.h libunwindstack: Move DwarfOp callback table to rodata section 2019-01-24 11:11:15 -08:00
DwarfSection.cpp Fix implicit fall through switch cases. 2018-09-19 14:12:59 -07:00
Elf.cpp Add caching of build id in MapInfo object. 2019-01-17 20:14:00 -08:00
ElfInterface.cpp Add caching of build id in MapInfo object. 2019-01-17 20:14:00 -08:00
ElfInterfaceArm.cpp Remove Memory::ReadField. 2018-07-12 12:45:31 -07:00
ElfInterfaceArm.h Remove Memory::ReadField. 2018-07-12 12:45:31 -07:00
Global.cpp Add missing includes. 2018-12-06 10:09:20 -08:00
JitDebug.cpp Verify that the elf matches the expected arch. 2018-10-29 18:08:09 -07:00
LocalUnwinder.cpp Verify that the elf matches the expected arch. 2018-10-29 18:08:09 -07:00
Log.cpp Make the library usable as a library. 2017-07-14 12:20:23 -07:00
MapInfo.cpp Add caching of build id in MapInfo object. 2019-01-17 20:14:00 -08:00
Maps.cpp Fix offsets when shared lib split across maps. 2018-12-18 11:22:14 -08:00
Memory.cpp Add missing includes. 2018-12-06 10:09:20 -08:00
OWNERS Add OWNERS. 2017-12-07 13:30:03 -08:00
Regs.cpp Expose per arch headers. 2018-02-08 19:29:08 -08:00
RegsArm.cpp Add missing includes. 2018-12-06 10:09:20 -08:00
RegsArm64.cpp Add missing includes. 2018-12-06 10:09:20 -08:00
RegsInfo.h Fix off by one error. 2018-10-23 18:10:41 +01:00
RegsMips.cpp Fix usage of Read instead of ReadFully. 2019-01-15 19:10:49 -08:00
RegsMips64.cpp Add missing includes. 2018-12-06 10:09:20 -08:00
RegsX86.cpp libunwindstack: add Regs::Clone. 2018-04-20 13:23:20 -07:00
RegsX86_64.cpp Add missing includes. 2018-12-06 10:09:20 -08:00
Symbols.cpp Add missing includes. 2018-12-06 10:09:20 -08:00
Symbols.h Fix handling of load bias values. 2018-06-11 18:53:55 -07:00
Unwinder.cpp Remove unused jit_debug unique_ptr. 2019-01-22 15:56:34 +00:00