On Tue, 2021-05-25 at 16:28 -0600, Jens Axboe wrote: > > My issue is that I haven't been able to see hashed pointers output > > from trace. > > Just a quick guess, but does it rely on using %p to print the pointers? > My very limited understanding of how the trace subsystem works is that by default, it doesn't use the provided TK_printk macro at all. the kernel trace subsystem does format internally the passed parameters before sending the output to a ring buffer (yes another ring!). You can override this method through the tracing option to use printk instead and when you do, this is where the TK_printk() macro is used. Before I did realize that, this was making me scratch my head as to why, I was getting a different format output. ie: 9287.369 test/625 io_uring:io_uring_task_run(ctx: 0xffff8fbf9a834800, opcode: 22, user_data: 216454257090494477, result: 195) 9287.386 test/625 io_uring:io_uring_task_run(ctx: 0xffff8fbf9a834800, opcode: 22, user_data: 216454257090494477, result: 195) while the TK_printk macro is: TP_printk("ring %p, req %p, op %d, data 0x%llx", __entry->ctx, __entry->req, __entry->opcode, (unsigned long long) __entry->user_data) The TK_printk macro is naming the ctx variable as 'ring', yet you still get ctx in the trace output! but the pointer hashing that it is supposed to do is a mystery to me...