ANDROID: pahole -J -j1 for reproducible BTF
Versions of pahole from 1.22 support multi-threaded operation with separate CUs being processed independently. This results in non-deterministic and effectively non-reproducible output for kernel objects. Later versions of pahole aim to support determinism by retiring CUs in order. We regain determinism by restricting parallelism to 1 at the cost of some performance. The default parallelism of `pahole -J` is the number of online processors * 1.1. Experiments on a workstation with 36 cores reveal that performance is actually worse for `vmlinux` at `-j` (8.9s) than at `-j3` (7.8s) and the optimum is around `-j9` (4.9s). No parallelism is slowest (18.8s), but still acceptable for GKI. Bug: 342094847 Change-Id: Ibd72ac638faa1826f6655b336cc7001591ea70f1 Signed-off-by: Giuliano Procida <gprocida@google.com>
This commit is contained in:
parent
68c821783c
commit
47a00e599b
@ -17,7 +17,7 @@ if [ "${pahole_ver}" -ge "121" ]; then
|
||||
extra_paholeopt="${extra_paholeopt} --btf_gen_floats"
|
||||
fi
|
||||
if [ "${pahole_ver}" -ge "122" ]; then
|
||||
extra_paholeopt="${extra_paholeopt} -j"
|
||||
extra_paholeopt="${extra_paholeopt} -j1"
|
||||
fi
|
||||
if [ "${pahole_ver}" -ge "124" ]; then
|
||||
# see PAHOLE_HAS_LANG_EXCLUDE
|
||||
|
Loading…
Reference in New Issue
Block a user