[kernel][vm] Remove hidden parents from VmObjectPaged

This removes the notion of hidden parents from VmObjectPaged and in
the process places control of the VmCowPages hierarchy manipulation in
the VmCowPages code, instead of being done from the VmObjectPaged.

Aside from the removal of the redundant VmObjectPaged hidden parents
this also performs an additional optimization of making the parent_
reference in VmObjectPaged a raw reference and not a RefPtr. This
can be done since now that the copy-on-write pages are held in
VmCowPages there is no reason to hold the VmObjectPaged around after
any other references, such as user handles and mappings, have gone
away. Not holding the parent via a refptr also ensures we can not have
any chained deletions and so the deferred deletion mechanism is only
needed now by VmCowPages.

Change-Id: I710eab49b583542f2a773f130319d5b4a8dfc7e8
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/437347
Testability-Review: Adrian Danis <adanis@google.com>
Testability-Review: Rasha Eqbal <rashaeqbal@google.com>
Commit-Queue: Adrian Danis <adanis@google.com>
Reviewed-by: Rasha Eqbal <rashaeqbal@google.com>
5 files changed
tree: 41ab55a471f729e677a2eaf3a5be645934beb369
  1. boards/
  2. build/
  3. bundles/
  4. docs/
  5. examples/
  6. garnet/
  7. products/
  8. scripts/
  9. sdk/
  10. src/
  11. third_party/
  12. tools/
  13. zircon/
  14. .clang-format
  15. .clang-tidy
  16. .gitattributes
  17. .gitignore
  18. .gn
  19. .style.yapf
  20. AUTHORS
  21. BUILD.gn
  22. CODE_OF_CONDUCT.md
  23. CONTRIBUTING.md
  24. LICENSE
  25. OWNERS
  26. PATENTS
  27. README.md
  28. rustfmt.toml
README.md

Fuchsia

Pink + Purple == Fuchsia (a new operating system)

What is Fuchsia?

Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.

Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.

Read more about Fuchsia's principles.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See fuchsia.dev.