[starnix] Show ZX_INFO_MEMORY_STALL info in /proc/pressure/memory

This CL makes starnix generate /proc/pressure/memory with real
stats, including averages over the last 10/60/300 seconds, that
are computed by Starnix according to data periodically sampled
from Zircon.

The a dedicated service (child of the Starnix runner) is
responsible for keeping track of the averages and, in general,
mediate access to the new PSI services. This provides an injection
point for test. Indeed, a new integration test uses this method
to feed known data to a puppet program running within Starnix
instance and verify that it gets back the expected readings.

Note: The ProcfsTest.ProcPressure test is now embedded in the new
integration test, which tests the cpu and io PSI files too (the
expectation being that in the future they will also be served
over the same protocol, like memory PSI is today).

Bug: 319649348
Change-Id: I73818e4d66db9a3784da4fbbe7a06ebcf02f7bcf
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1176632
Commit-Queue: Fabio D'Urso <fdurso@google.com>
API-Review: Benjamin Lerman <qsr@google.com>
Reviewed-by: Benjamin Lerman <qsr@google.com>
30 files changed
tree: e2ba9535414307bee6128c78520e0045e6f9e825
  1. .helix/
  2. boards/
  3. build/
  4. bundles/
  5. docs/
  6. examples/
  7. infra/
  8. products/
  9. scripts/
  10. sdk/
  11. src/
  12. third_party/
  13. tools/
  14. zircon/
  15. .clang-format
  16. .clang-tidy
  17. .editorconfig
  18. .git-blame-ignore-revs
  19. .gitattributes
  20. .gitignore
  21. .gitmodules
  22. .gn
  23. .ignore
  24. analysis_options.yaml
  25. AUTHORS
  26. BUILD.gn
  27. CODE_OF_CONDUCT.md
  28. CONTRIBUTING.md
  29. fuchsia.code-workspace
  30. LICENSE
  31. OWNERS
  32. PATENTS
  33. pyproject.toml
  34. pyrightconfig.json
  35. README.md
  36. rustfmt.toml
  37. shac.star
  38. shac.textproto
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.