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
This commit is contained in:
Vic Yang 2019-01-24 11:00:26 -08:00
parent c87d1ed611
commit cc8009ff04
2 changed files with 1450 additions and 1348 deletions

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff