> It seems to me that the struct is better optimised for size than it is
> performance.
Yes. We want to pack as much data into the buffer as possible
> struct { uint32_t; uint32_t; uint32_t; }
That takes 3 times as much space! You're roughly having the amount of useful
data we can store in the trace buffer.
> struct { uint8_t; uint8_t; uint16_t; }
That doesn't leave enough space for the time counter. It's TSC stamping at roughly 2-4GHz, and we need accurate resolution to merge the per-cpu buffers back together. We don't want to log extended timestamp events (whenever your time counter rolls over) too often.