0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #ifndef __LOCKING_LOCK_EVENTS_H
0017 #define __LOCKING_LOCK_EVENTS_H
0018
0019 enum lock_events {
0020
0021 #include "lock_events_list.h"
0022
0023 lockevent_num,
0024 LOCKEVENT_reset_cnts = lockevent_num,
0025 };
0026
0027 #ifdef CONFIG_LOCK_EVENT_COUNTS
0028
0029
0030
0031 DECLARE_PER_CPU(unsigned long, lockevents[lockevent_num]);
0032
0033
0034
0035
0036
0037 static inline void __lockevent_inc(enum lock_events event, bool cond)
0038 {
0039 if (cond)
0040 raw_cpu_inc(lockevents[event]);
0041 }
0042
0043 #define lockevent_inc(ev) __lockevent_inc(LOCKEVENT_ ##ev, true)
0044 #define lockevent_cond_inc(ev, c) __lockevent_inc(LOCKEVENT_ ##ev, c)
0045
0046 static inline void __lockevent_add(enum lock_events event, int inc)
0047 {
0048 raw_cpu_add(lockevents[event], inc);
0049 }
0050
0051 #define lockevent_add(ev, c) __lockevent_add(LOCKEVENT_ ##ev, c)
0052
0053 #else
0054
0055 #define lockevent_inc(ev)
0056 #define lockevent_add(ev, c)
0057 #define lockevent_cond_inc(ev, c)
0058
0059 #endif
0060 #endif