• Dave Martin's avatar
    tracing: Add array printing helper · 6ea22486
    Dave Martin authored
    If a trace event contains an array, there is currently no standard
    way to format this for text output.  Drivers are currently hacking
    around this by a) local hacks that use the trace_seq functionailty
    directly, or b) just not printing that information.  For fixed size
    arrays, formatting of the elements can be open-coded, but this gets
    cumbersome for arrays of non-trivial size.
    
    These approaches result in non-standard content of the event format
    description delivered to userspace, so userland tools needs to be
    taught to understand and parse each array printing method
    individually.
    
    This patch implements a __print_array() helper that tracepoint
    implementations can use instead of reinventing it.  A simple C-style
    syntax is used to delimit the array and its elements {like,this}.
    
    So that the helpers can be used with large static arrays as well as
    dynamic arrays, they take a pointer and element count: they can be
    used with __get_dynamic_array() for use with dynamic arrays.
    Link: http://lkml.kernel.org/r/1422449335-8289-2-git-send-email-javi.merino@arm.com
    
    Cc: Ingo Molnar <mingo@redhat.com>
    Signed-off-by: default avatarDave Martin <Dave.Martin@arm.com>
    Signed-off-by: default avatarJavi Merino <javi.merino@arm.com>
    Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
    6ea22486
trace_output.c 26.9 KB