[power] Balance system-activity-governor tasks

The optimization of the SAG has greatly reduced the execution time at a
client side for calling TakeWakeLease. But this resulted in many tasks
scheduled but not completed at the end of the benchmark test for
TakeWakeLease, and happen to affect the result of ToggleLease because
Power Broker was still busy handling the requests from the tasks on the
SAG side.

To avoid this, a semaphore is added to control the flow so that tasks
can get executed. The test is also changed to hold to a lease so that
the optimization of the lease reuse can be tested. A different test for
the original behavior may be added later.

Bug: b/395214643
Test: refer to the bug.
Change-Id: Ie3091d711fa7957658d8c686f8fc158fe3093b57
Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1217325
Reviewed-by: Michael Brunson <mbrunson@google.com>
Commit-Queue: Hai Bi <bihai@google.com>
2 files changed
tree: 61b70ce10cff052f4d6414aa40595b41c5d773d6
  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.