oxidecomputer / humility

Debugger for Hubris
Mozilla Public License 2.0
529 stars 51 forks source link

ringbuf: consider renaming `GEN` column to something less confusable #478

Open hawkw opened 6 months ago

hawkw commented 6 months ago

Currently, humility ringbuf's output has the following column names:

 NDX LINE      GEN    COUNT PAYLOAD

The GEN column the generation number of the ringbuf slot. However, this is confuse-able with the task's generation, which may give the user the incorrect impression that a task has been restarted a bunch of times.

We may want to consider changing the name of this column to something that doesn't introduce the possibility for such confusion. I suggested LAP (as in "lap around the ring buffer"), which is also three characters. @lzrd suggested CYCLE (and note that the column is always at least 8 characters long, so we definitely have space for CYCLE).

Alternatively, we could maybe have the humility ringbuf command also show the actual generation of the task in the header? This way, although we would refer to "gen" twice, it would be clearer which is the task generation versus the ringbuf entry, like this:

humility: ring buffer ksz8463::__RINGBUF in net (gen 0):
 NDX LINE      GEN    COUNT PAYLOAD
   3  140     6544        1 Read(IADR4, 0x2a5e)
   4  140     6544        1 Read(P2MBSR, 0x7808)
   5  140     6544        1 Read(P2MBCR, 0x3120)
...

That would require humility ringbuf to inspect the task table, which wouldn't work in single-task dumps (but we could just not display it in single task dumps).

I'm very open to any other naming suggestions or other thoughts for how to make this clearer, as well.

lzrd commented 6 months ago

Confusion is enhanced when looking for a root cause and thinking "I need to check the GEN count (...in tasks, remember the one you want is in tasks, ok?)"