On Wed, 24 Sep 2014 12:03:29 -0400
Josef Bacik <jbacik@xxxxxx> wrote:
The way the ftrace kernel_stack event is handled doesn't work right with the
normal event reading stuff in python. The raw buffer read stuff expects the
size of the event to be non-zero, but in the case of kernel_stack the caller
array is 0 and we are given a size field
field:int size; offset:8; size:4; signed:1;
field:unsigned long caller; offset:16; size:0; signed:0;
This screws up python becuase it uses the size field to indicate how much of the
memory buffer is there to read, which in this case is 0. This makes it
impossible to actually read the caller array from python. So add a new c
binding to specially read the addr array and go ahead and look up the function
names for the addr and return those strings. With this I can now pull the
function names for a kernel_stack event from the python library. Thanks,
No need to add "Thanks" to a change log ;-)
Will this still work if we convert the kernel_stack to be the same as
the other dynamic_arrays?
I'm assuming so, as there doesn't seem to be anything here that looks
specific to the kernel_stack event, and we wouldn't want to break the
other events.
I just want to make sure you are testing both formats.