[roll] Roll fuchsia [build][profile] Linux-native system_profiler

Overhauls the background resource profiling system used by 'fx build-profile'
and 'fx build' by implementing a pure, zero-subprocess Python daemon
called 'system_profiler.py'.

The new daemon polls `/proc` filesystem directly on an interval and
collects advanced performance and load metrics:
- CPU ticks and state percentages from /proc/stat
- Thread states and active tasks from /proc/stat
- Detailed memory and Dirty/Writeback cache sizes from /proc/meminfo
- Paging rates and blocks read/written from /proc/vmstat
- Pressure Stall Information (PSI) for CPU, Mem, and I/O from /proc/pressure
- System load averages from /proc/loadavg
- Network ingress/egress bytes/packets per-interface and aggregate from /proc/net/dev
- System-wide and process-tree open file descriptor counts

All parsing is decoupled from I/O and written as pure module-scope
functions returning immutable frozen dataclasses.

Each sampler is implemented as its own class, and plugged into
the generic SystemProfiler engine.

Output is streamed to file as a JSON-array Chrome trace.

Because the direct `/proc` implementation is Linux-specific, also update
tools/devshell/lib/vars.sh to only default-enable build profiling when
the host platform is Linux.

Original-Original-Bug: 515107639
Test: fx test system_profiler_test
Original-Original-Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/1636716
Original-Original-Revision: 4dc2b6bce54955d5de7f09db85b0a7f528a2db32
GitOrigin-RevId: 2844ec039754d913201006d846d9718455ef8354
Change-Id: Iab8f90110a9c46b71be4b74359dd9fa371c7e007
Reviewed-on: https://fuchsia-review.googlesource.com/c/integration/+/1638393
Cr-Commit-Position: refs/heads/main@{#194018}
1 file changed
tree: 11f4359e75ab8cf9e93b9ca57a3c4468d58322c8
  1. ctf/
  2. git-hooks/
  3. infra/
  4. third_party/
  5. cobalt
  6. flower
  7. jiri.lock
  8. MILESTONE
  9. minimal
  10. prebuilts
  11. README.md
  12. stem
  13. test_durations
README.md

Integration

This repository contains Fuchsia's Global Integration manifest files.

Making changes

All changes should be made to the internal version of this repository. Our infrastructure automatically updates this version when the internal one changes.

Currently all changes must be made by a Google employee. Non-Google employees wishing to make a change can ask for assistance in one of the communication channels documented at get involved.

Obtaining the source

First install Jiri.

Next run:

$ jiri init
$ jiri import minimal https://fuchsia.googlesource.com/integration
$ jiri update

Third party

Third party projects should have their own subdirectory in ./third_party.