|
[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 |