mirror of https://gitee.com/openkylin/linux.git
workqueue: add args to workqueue lockdep name
Tommi noticed a 'funny' lock class name: "%s#5" from a lock acquired in process_one_work(). Maybe #fmt plus #args could be used as the lock_name to give some more information for some fmt string like the above. __builtin_constant_p() check is removed (as there seems no good way to check all the variables in args list). However, by removing the check, it only adds two additional "s for those constants. Some lockdep name examples printed out after the change: lockdep name wq->name "events_long" events_long "%s"("khelper") khelper "xfs-data/%s"mp->m_fsname xfs-data/dm-3 Signed-off-by: Li Zhong <zhong@linux.vnet.ibm.com> Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
parent
38dbfb59d1
commit
fada94ee64
|
@ -419,10 +419,7 @@ __alloc_workqueue_key(const char *fmt, unsigned int flags, int max_active,
|
|||
static struct lock_class_key __key; \
|
||||
const char *__lock_name; \
|
||||
\
|
||||
if (__builtin_constant_p(fmt)) \
|
||||
__lock_name = (fmt); \
|
||||
else \
|
||||
__lock_name = #fmt; \
|
||||
__lock_name = #fmt#args; \
|
||||
\
|
||||
__alloc_workqueue_key((fmt), (flags), (max_active), \
|
||||
&__key, __lock_name, ##args); \
|
||||
|
|
Loading…
Reference in New Issue