[vmbase] Adjust refill layout size in memory allocation

This cl adjusts the refill layout size to the next power of two
when allocating memory. This is necessary because the actual size
of the memory allocated in the subsequent call `alloc_aligned` is
the max of the next power of two and the alignment.

This is clear based on the implementation of `alloc_aligned`
but is not mentioned in its documentation[1].

Without this adjustment, the `alloc_aligned` call will fail if
given a layout whose size is not a power of two.

[1] https://docs.rs/buddy_system_allocator/latest/buddy_system_allocator/struct.FrameAllocator.html#method.alloc_aligned

Bug: 274441673
Test: atest MicrodroidTests
Change-Id: I37d7a2805aa6788d22c2cd5bfc8c701fad1f007d
1 file changed
tree: cb32ea92e4608c25d6501b76296fc4d830146c7e
  1. apex/
  2. apkdmverity/
  3. authfs/
  4. compos/
  5. demo/
  6. demo_native/
  7. docs/
  8. encryptedstore/
  9. javalib/
  10. launcher/
  11. libs/
  12. microdroid/
  13. microdroid_manager/
  14. pvmfw/
  15. rialto/
  16. service_vm/
  17. tests/
  18. virtualizationmanager/
  19. virtualizationservice/
  20. vm/
  21. vm_payload/
  22. vmbase/
  23. vmclient/
  24. zipfuse/
  25. .clang-format
  26. .gitignore
  27. Android.bp
  28. OWNERS
  29. PREUPLOAD.cfg
  30. README.md
  31. TEST_MAPPING
README.md

Android Virtualization Framework (AVF)

Android Virtualization Framework (AVF) provides secure and private execution environments for executing code. AVF is ideal for security-oriented use cases that require stronger isolation assurances over those offered by Android’s app sandbox.

Visit our public doc site to learn more about what AVF is, what it is for, and how it is structured. This repository contains source code for userspace components of AVF.

If you want a quick start, see the getting started guideline and follow the steps there.

For in-depth explanations about individual topics and components, visit the following links.

AVF components:

How-Tos: