HomePhabricator

[scudo][standalone] Android related improvements

Authored by cryptoad on Sep 11 2019, 7:48 AM.

Description

[scudo][standalone] Android related improvements

Summary:
This changes a few things to improve memory footprint and performances
on Android, and fixes a test compilation error:

  • add stdlib.h to wrappers_c_test.cc to address https://bugs.llvm.org/show_bug.cgi?id=42810
  • change Android size class maps, based on benchmarks, to improve performances and lower the Svelte memory footprint. Also change the 32-bit region size for said configuration
  • change the reallocate logic to reallocate in place for sizes larger than the original chunk size, when they still fit in the same block. This addresses patterns from memory_replay dumps like the following:
202: realloc 0xb48fd000 0xb4930650 12352
202: realloc 0xb48fd000 0xb48fd000 12420
202: realloc 0xb48fd000 0xb48fd000 12492
202: realloc 0xb48fd000 0xb48fd000 12564
202: realloc 0xb48fd000 0xb48fd000 12636
202: realloc 0xb48fd000 0xb48fd000 12708
202: realloc 0xb48fd000 0xb48fd000 12780
202: realloc 0xb48fd000 0xb48fd000 12852
202: realloc 0xb48fd000 0xb48fd000 12924
202: realloc 0xb48fd000 0xb48fd000 12996
202: realloc 0xb48fd000 0xb48fd000 13068
202: realloc 0xb48fd000 0xb48fd000 13140
202: realloc 0xb48fd000 0xb48fd000 13212
202: realloc 0xb48fd000 0xb48fd000 13284
202: realloc 0xb48fd000 0xb48fd000 13356
202: realloc 0xb48fd000 0xb48fd000 13428
202: realloc 0xb48fd000 0xb48fd000 13500
202: realloc 0xb48fd000 0xb48fd000 13572
202: realloc 0xb48fd000 0xb48fd000 13644
202: realloc 0xb48fd000 0xb48fd000 13716
202: realloc 0xb48fd000 0xb48fd000 13788
...
In this situation we were deallocating the old chunk, and
allocating a new one for every single one of those, but now we can
keep the same chunk (we just updated the header), which saves some
heap operations.

Reviewers: hctim, morehouse, vitalybuka, eugenis, cferris, rengolin

Reviewed By: morehouse

Subscribers: srhines, delcypher, #sanitizers, llvm-commits

Tags: #llvm, #sanitizers

Differential Revision: https://reviews.llvm.org/D67293

llvm-svn: 371628

Details

Committed
cryptoadSep 11 2019, 7:48 AM
Reviewer
morehouse
Differential Revision
D67293: [scudo][standalone] Android related improvements
Parents
rG5957a61ff8e8: [OPENMP]Updated status page, NFC.
Branches
Unknown
Tags
Unknown