Revert "[kernel][vm] Robust PageRequest batching"

This reverts commit 2f5df2c170150b19c0fd8adfae34817b8f7a6566.

Reason for revert: causing kernel panic in CI

Original change's description:
> [kernel][vm] Robust PageRequest batching
>
> Changes the batching state from being inferred from the return value of
> PageSource::GetPage, to being queryable from the PageSource. This has
> three benefits
> 1. If an in progress batch request is given to the wrong PageSource it
> can be detected and safely handled. This cannot happen today, but could
> happen when there are additional implementors of PageRequestInterface.
> Specifically with an anonmyous page requester you could have a
> copy-on-write child of a pager backed VMO that has CommitRange called.
> The first page could be present in the parent, but missing in the
> child, requiring a page allocation, which could fail causing the
> PageRequest to be filled in. Since its in batch mode we would continue
> and then possibly find a page missing from the root vmo, and attempt
> to fill in the PageRequest using the PageSource.
> 2. The ZX_ERR_NEXT state that previously meant further batching was
> possible is also used for loop control everywhere in the VM system.
> Propagating GetPage statuses up to the root caller therefore has the
> chance of colliding with an attempt to perform a ForEveryPage or
> equivalent iteration. This does not happen today, but this is a hazard
> that would not be easily detected.
> 3. Additional assertions can be added using this state to ensure the
> page request API is used correctly.
>
> Bug: 99890
> Run-All-Tests: True
> Change-Id: Id35c487c52591f709656c412e5f13933e0225883
> Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/679849
> Commit-Queue: Adrian Danis <adanis@google.com>
> Fuchsia-Auto-Submit: Adrian Danis <adanis@google.com>
> Reviewed-by: Rasha Eqbal <rashaeqbal@google.com>

Bug: 99890
Change-Id: Ib30888a3c8e328841fca0b67e86add0230a77286
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/681056
Commit-Queue: Dangyi Liu <dangyi@google.com>
Reviewed-by: RubberStamper 🤖 <android-build-ayeaye@system.gserviceaccount.com>
3 files changed
tree: 2a48bb53591f330162a0ec1d4be855694b8059ab
  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. .editorconfig
  17. .git-blame-ignore-revs
  18. .gitattributes
  19. .gitignore
  20. .gn
  21. .style.yapf
  22. analysis_options.yaml
  23. AUTHORS
  24. BUILD.gn
  25. CODE_OF_CONDUCT.md
  26. CONTRIBUTING.md
  27. LICENSE
  28. OWNERS
  29. PATENTS
  30. pyrightconfig.json
  31. README.md
  32. rustfmt.toml
README.md

Fuchsia

What is Fuchsia?

Fuchsia is an open source, general purpose operating system supporting modern 64-bit Intel and ARM processors.

We expect everyone interacting with our project to respect our code of conduct.

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.