MicrodroidBenchmarks: Measure crosvm RSS and PSS from the host side

Example run (only the mem_crosvm_* metrics are new):

    $ atest com.android.microdroid.benchmark.MicrodroidBenchmarks#testMemoryUsage
    ...
    [1/2] com.android.microdroid.benchmark.MicrodroidBenchmarks#testMemoryUsage[protectedVm=false]: PASSED (1.594s)
            avf_perf/microdroid/mem_crosvm_guest_rss_MB: 99.76953125
            avf_perf/microdroid/mem_kernel_MB: 42.8125
            avf_perf/microdroid/mem_crosvm_host_rss_MB: 8.89453125
            avf_perf/microdroid/mem_cached_MB: 27.71484375
            avf_perf/microdroid/mem_buffers_MB: 2.34765625
            avf_perf/microdroid/mem_used_MB: 15.22265625
            avf_perf/microdroid/mem_crosvm_host_pss_MB: 5.8447265625
            avf_perf/microdroid/mem_unreclaimable_MB: 35.48828125
            avf_perf/microdroid/mem_slab_MB: 21.4140625
            avf_perf/microdroid/mem_crosvm_guest_pss_MB: 99.76953125
    [2/2] com.android.microdroid.benchmark.MicrodroidBenchmarks#testMemoryUsage[protectedVm=true]: PASSED (5.209s)
            avf_perf/microdroid/mem_crosvm_guest_rss_MB: 113.70703125
            avf_perf/microdroid/mem_kernel_MB: 56.81640625
            avf_perf/microdroid/mem_crosvm_host_rss_MB: 8.98828125
            avf_perf/microdroid/mem_cached_MB: 27.74609375
            avf_perf/microdroid/mem_buffers_MB: 2.359375
            avf_perf/microdroid/mem_used_MB: 14.65625
            avf_perf/microdroid/mem_crosvm_host_pss_MB: 5.9482421875
            avf_perf/microdroid/mem_unreclaimable_MB: 34.87109375
            avf_perf/microdroid/mem_slab_MB: 21.609375
            avf_perf/microdroid/mem_crosvm_guest_pss_MB: 113.70703125

Note that the measurements from inside and outside the guest don't
match, e.g. the sum of guest side measurements for non-protected is
110MB while the RSS from the host side for the guest RAM mmap is 100MB.
This is probably expected, e.g. if the guest might have allocated guest
physical memory for something, but not actually touched the pages, so it
won't be resident on the host.

Change-Id: I0120e11baa3a94fb27a50820c2c5d4962da67d75
Bug: 233870249
Test: atest com.android.microdroid.benchmark.MicrodroidBenchmarks#testMemoryUsage
2 files changed
tree: 6f4dcb9eed98ae0d16958ff6d38e8d3114943678
  1. .prebuilt_info/
  2. apex/
  3. apkdmverity/
  4. authfs/
  5. avmd/
  6. compos/
  7. demo/
  8. docs/
  9. javalib/
  10. launcher/
  11. libs/
  12. microdroid/
  13. microdroid_manager/
  14. pvmfw/
  15. rialto/
  16. tests/
  17. virtualizationservice/
  18. vm/
  19. vmbase/
  20. vmclient/
  21. zipfuse/
  22. .clang-format
  23. .gitignore
  24. Android.bp
  25. OWNERS
  26. PREUPLOAD.cfg
  27. README.md
  28. TEST_MAPPING
README.md

Virtualization

This repository contains userspace services related to running virtual machines on Android, especially protected virtual machines. See the getting started documentation and Microdroid README for more information.