[PATCH] afs: fix tracepoint string placement with built-in AFS

David Howells dhowells at redhat.com
Tue Jun 15 01:49:47 PDT 2021


David Howells <dhowells at redhat.com> wrote:

> Alexey Dobriyan <adobriyan at gmail.com> wrote:
> 
> > -	char afs_SRXCB##name##_name[] __tracepoint_string =	\
> > -		"CB." #name
> 
> I seem to remember that when I did this, it couldn't be a const string for
> some reason, though I don't remember exactly why now if that was indeed the
> case.
> 
> I wonder if it's better just to turn it into an enum-string table in
> linux/events/afs.h.

Hmmm...  It's not necessarily quite that simple - at least if I want to use
the operation ID as the key to the table - as there are at least three
separate services involved and they can have overlapping op IDs.

Is it possible to switch the table passed to __print_symbolic()?  For example,
in the afs_call tracepoint, could I do:

	    TP_printk("c=%08x %s u=%d o=%d sp=%pSR",
		      __entry->call,
		      __print_symbolic(__entry->op,
				       __entry->is_vl ? afs_vl_call_traces :
				       __entry->is_yfs ? afs_yfs_call_traces :
				       afs_fs_call_traces),
		      __entry->usage,
		      __entry->outstanding,
		      __entry->where)

David




More information about the linux-afs mailing list