[kernel][sched] Tweak fair priority curve and preemption / latency.

- Switch to an exponential priority-to-weight curve to yield a ~65%
  bandwidth increase to priority 24 (high priority) over priority 16
  (default priority), and a constant ~10% difference between adjacent
  priorities.
- Tweak the bandwidth adjustment to use the start of the current time
  slice when changing the task rate so that preemptions happen faster
  when high priority work is available.
- Adjust the target latency to provide a time slice more similar to the
  previous scheduler when a high priority thread competes with lower
  priority threads.
- Minor refactor to remove weight-to-priority conversions, which would
  require a fixed-point logarithm to compute the inverse of the
  exponential term.
- Optimize the priority-to-weight conversion using a constant table.

Bug: MTWN-269
Bug: ZX-3504
Test: Detailed tracing of synthetic workload; observe ratios of
      bandwidth between priority 16 and priority 24 tasks.
Change-Id: I596c45cf3d8c94f93c986508f9ec1007624ac9f3
4 files changed
tree: 3a20d74b8dfe7730bcac391da59a03ae96da1004
  1. boards/
  2. build/
  3. buildtools/
  4. bundles/
  5. docs/
  6. examples/
  7. garnet/
  8. peridot/
  9. products/
  10. scripts/
  11. sdk/
  12. src/
  13. third_party/
  14. tools/
  15. zircon/
  16. .clang-format
  17. .dir-locals.el
  18. .gitattributes
  19. .gitignore
  20. .gn
  21. AUTHORS
  22. BUILD.gn
  23. CODE_OF_CONDUCT.md
  24. CONTRIBUTING.md
  25. LICENSE
  26. OWNERS
  27. PATENTS
  28. README.md
  29. 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.

How can I build and run Fuchsia?

See Getting Started.

Where can I learn more about Fuchsia?

See the documentation.