mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-10-29 17:54:14 +08:00
health: build the instrumentation only when asked for
The counters, the phase hooks in idle() and the "health" command are now behind HEALTH, set from the command line with HEALTH=1. Without it the hooks are empty macros and the command does not exist, so a default build carries none of it: on SWTGW218AS that is 1065 bytes of bank 2, 101 of the common segment and 28 of xdata, plus seven banked calls per main-loop pass. It is a developer's tool. Reading the dump takes knowing the main loop, and a user who needs it for a report can build with the flag on, which is how the kernel treats its lock and latency instrumentation as well.
This commit is contained in:
1 parent
2f872ea08e
commit
fa0eb91586
5 files changed
+31
-2
No files matched your search
@@ -20,6 +20,17 @@ tcp st 00 tmr 00 rtx 00 rto 00 len 0x0000 mss 0x05b4
|
||||
httpd left 0x0000 entry 00 stp 01 mvlan 0x0002
|
||||
```
|
||||
|
||||
The instrumentation is not part of a default build. It costs about 1.1 kB
|
||||
of bank 2, a few bytes of xdata and seven banked calls per main-loop pass,
|
||||
which is nothing a user needs unless they are chasing a problem, so it is
|
||||
switched on at build time:
|
||||
|
||||
```
|
||||
make MACHINE=SWTGW218AS HEALTH=1
|
||||
```
|
||||
|
||||
Without it the hooks compile to nothing and `health` is not a command.
|
||||
|
||||
All figures are raw hex. The counters are cumulative: take two dumps a known
|
||||
time apart and the differences give the rates.
|
||||
|
||||
|
||||
Reference in new issue
Block a user