[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v5 5/5] xen: add function name to lock profiling data
On 12.09.2019 15:28, Juergen Gross wrote: > --- a/xen/common/spinlock.c > +++ b/xen/common/spinlock.c > @@ -348,6 +348,7 @@ static s_time_t lock_profile_start; > static struct lock_profile_anc *lock_profile_ancs; > static struct lock_profile_qhead lock_profile_glb_q; > static spinlock_t lock_profile_lock = SPIN_LOCK_UNLOCKED; > +static const char *lock_profile_nofunc = __PRETTY_FUNCTION__; const also for the variable itself? > @@ -371,8 +372,10 @@ static void spinlock_profile_print_elem(struct > lock_profile *data, > printk("%s ", type); > if ( idx != LOCKPROF_IDX_NONE ) > printk("%d ", idx); > - printk("%s: addr=%p, lockval=%08x, ", data->name, lock, > - lock->tickets.head_tail); > + printk("%s", data->name); > + if ( data->func && strcmp(data->func, lock_profile_nofunc) ) > + printk("@%s", data->func); > + printk(": addr=%p, lockval=%08x, ", lock, lock->tickets.head_tail); As long as this is used from a key handler only, I guess the splitting of the printk()s isn't much of a problem. > @@ -427,7 +430,14 @@ static void spinlock_profile_ucopy_elem(struct > lock_profile *data, > > if ( p->pc->nr_elem < p->pc->max_elem ) > { > - safe_strcpy(elem.name, data->name); > + if ( data->func && strcmp(data->func, lock_profile_nofunc) ) > + { > + snprintf(elem.name, sizeof(elem.name), "%s@%s", data->name, > + data->func); > + elem.name[sizeof(elem.name) - 1] = 0; This isn't needed after snprintf(), is it? With the two suggested adjustments (provided you agree, and which could probably be done while committing) Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |