[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 02/13] xen/spinlock: reduce lock profile ifdefs
On 13.10.2023 11:42, Juergen Gross wrote: > With some small adjustments to the LOCK_PROFILE_* macros some #ifdefs > can be dropped from spinlock.c. > > Signed-off-by: Juergen Gross <jgross@xxxxxxxx> > --- > V2: > - new patch > --- > xen/common/spinlock.c | 45 ++++++++++++++++++------------------------- > 1 file changed, 19 insertions(+), 26 deletions(-) > > diff --git a/xen/common/spinlock.c b/xen/common/spinlock.c > index 202c707540..4878a01302 100644 > --- a/xen/common/spinlock.c > +++ b/xen/common/spinlock.c > @@ -267,25 +267,28 @@ void spin_debug_disable(void) > lock->profile->time_hold += NOW() - lock->profile->time_locked; > \ > lock->profile->lock_cnt++; > \ > } > -#define LOCK_PROFILE_VAR s_time_t block = 0 > -#define LOCK_PROFILE_BLOCK block = block ? : NOW(); > -#define LOCK_PROFILE_GOT > \ > +#define LOCK_PROFILE_VAR(val) s_time_t block = (val) This macro, and then at least for consistency also ... > +#define LOCK_PROFILE_BLOCK block = block ? : NOW() ... this one should imo take the variable name as an argument. Otherwise situations like ... > void _spin_barrier(spinlock_t *lock) > { > spinlock_tickets_t sample; > -#ifdef CONFIG_DEBUG_LOCK_PROFILE > - s_time_t block = NOW(); > -#endif > + LOCK_PROFILE_VAR(NOW()); > > check_barrier(&lock->debug); > smp_mb(); > @@ -432,13 +431,7 @@ void _spin_barrier(spinlock_t *lock) > { > while ( observe_head(&lock->tickets) == sample.head ) > arch_lock_relax(); > -#ifdef CONFIG_DEBUG_LOCK_PROFILE > - if ( lock->profile ) > - { > - lock->profile->time_block += NOW() - block; > - lock->profile->block_cnt++; > - } > -#endif > + LOCK_PROFILE_BLKACC(lock->profile, block); > } > smp_mb(); > } ... this arise where there's no visible declaration of "block", but a use. (Originally I was meaning to ask how this function would build, when the declaration is dropped.) Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |