[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH 1/2] lockprof: don't leave locks uninitialized upon allocation failure
On 23.07.2020 13:23, Andrew Cooper wrote: > On 23/07/2020 11:51, Jan Beulich wrote: >> Even if a specific struct lock_profile instance can't be allocated, the >> lock itself should still be functional. As this isn't a production use >> feature, also log a message in the event that the profiling struct can't >> be allocated. >> >> Fixes: d98feda5c756 ("Make lock profiling usable again") >> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> >> >> --- a/xen/include/xen/spinlock.h >> +++ b/xen/include/xen/spinlock.h >> @@ -103,10 +103,16 @@ struct lock_profile_qhead { >> do { >> \ >> struct lock_profile *prof; >> \ >> prof = xzalloc(struct lock_profile); >> \ >> - if (!prof) break; >> \ >> + (s)->l = (spinlock_t)_SPIN_LOCK_UNLOCKED(prof); >> \ >> + if ( !prof ) >> \ >> + { >> \ >> + printk(XENLOG_WARNING >> \ >> + "lock profiling unavailable for %p(%d)'s " #l "\n", >> \ >> + s, (s)->profile_head.idx); >> \ > > You'll end up with far less .rodata if you use %s and pass #l in as a > parameter. Well, "far less" perhaps goes a little far, as we currently have just three use sites, but I see your point and hence will switch. > Either way, Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Thanks, Jan
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |