mirror of https://gitee.com/openkylin/linux.git
lockdep: move state bit definitions around
For convenience later. Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
5346417e17
commit
9851673bc3
|
@ -20,51 +20,10 @@ struct lockdep_map;
|
||||||
#include <linux/stacktrace.h>
|
#include <linux/stacktrace.h>
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Lock-class usage-state bits:
|
* We'd rather not expose kernel/lockdep_states.h this wide, but we do need
|
||||||
|
* the total number of states... :-(
|
||||||
*/
|
*/
|
||||||
enum lock_usage_bit
|
#define XXX_LOCK_USAGE_STATES (1+3*4)
|
||||||
{
|
|
||||||
LOCK_USED = 0,
|
|
||||||
LOCK_USED_IN_HARDIRQ,
|
|
||||||
LOCK_USED_IN_SOFTIRQ,
|
|
||||||
LOCK_USED_IN_RECLAIM_FS,
|
|
||||||
LOCK_ENABLED_SOFTIRQ,
|
|
||||||
LOCK_ENABLED_HARDIRQ,
|
|
||||||
LOCK_ENABLED_RECLAIM_FS,
|
|
||||||
LOCK_USED_IN_HARDIRQ_READ,
|
|
||||||
LOCK_USED_IN_SOFTIRQ_READ,
|
|
||||||
LOCK_USED_IN_RECLAIM_FS_READ,
|
|
||||||
LOCK_ENABLED_SOFTIRQ_READ,
|
|
||||||
LOCK_ENABLED_HARDIRQ_READ,
|
|
||||||
LOCK_ENABLED_RECLAIM_FS_READ,
|
|
||||||
LOCK_USAGE_STATES
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Usage-state bitmasks:
|
|
||||||
*/
|
|
||||||
#define LOCKF_USED (1 << LOCK_USED)
|
|
||||||
#define LOCKF_USED_IN_HARDIRQ (1 << LOCK_USED_IN_HARDIRQ)
|
|
||||||
#define LOCKF_USED_IN_SOFTIRQ (1 << LOCK_USED_IN_SOFTIRQ)
|
|
||||||
#define LOCKF_USED_IN_RECLAIM_FS (1 << LOCK_USED_IN_RECLAIM_FS)
|
|
||||||
#define LOCKF_ENABLED_HARDIRQ (1 << LOCK_ENABLED_HARDIRQ)
|
|
||||||
#define LOCKF_ENABLED_SOFTIRQ (1 << LOCK_ENABLED_SOFTIRQ)
|
|
||||||
#define LOCKF_ENABLED_RECLAIM_FS (1 << LOCK_ENABLED_RECLAIM_FS)
|
|
||||||
|
|
||||||
#define LOCKF_ENABLED_IRQ (LOCKF_ENABLED_HARDIRQ | LOCKF_ENABLED_SOFTIRQ)
|
|
||||||
#define LOCKF_USED_IN_IRQ (LOCKF_USED_IN_HARDIRQ | LOCKF_USED_IN_SOFTIRQ)
|
|
||||||
|
|
||||||
#define LOCKF_USED_IN_HARDIRQ_READ (1 << LOCK_USED_IN_HARDIRQ_READ)
|
|
||||||
#define LOCKF_USED_IN_SOFTIRQ_READ (1 << LOCK_USED_IN_SOFTIRQ_READ)
|
|
||||||
#define LOCKF_USED_IN_RECLAIM_FS_READ (1 << LOCK_USED_IN_RECLAIM_FS_READ)
|
|
||||||
#define LOCKF_ENABLED_HARDIRQ_READ (1 << LOCK_ENABLED_HARDIRQ_READ)
|
|
||||||
#define LOCKF_ENABLED_SOFTIRQ_READ (1 << LOCK_ENABLED_SOFTIRQ_READ)
|
|
||||||
#define LOCKF_ENABLED_RECLAIM_FS_READ (1 << LOCK_ENABLED_RECLAIM_FS_READ)
|
|
||||||
|
|
||||||
#define LOCKF_ENABLED_IRQ_READ \
|
|
||||||
(LOCKF_ENABLED_HARDIRQ_READ | LOCKF_ENABLED_SOFTIRQ_READ)
|
|
||||||
#define LOCKF_USED_IN_IRQ_READ \
|
|
||||||
(LOCKF_USED_IN_HARDIRQ_READ | LOCKF_USED_IN_SOFTIRQ_READ)
|
|
||||||
|
|
||||||
#define MAX_LOCKDEP_SUBCLASSES 8UL
|
#define MAX_LOCKDEP_SUBCLASSES 8UL
|
||||||
|
|
||||||
|
@ -105,7 +64,7 @@ struct lock_class {
|
||||||
* IRQ/softirq usage tracking bits:
|
* IRQ/softirq usage tracking bits:
|
||||||
*/
|
*/
|
||||||
unsigned long usage_mask;
|
unsigned long usage_mask;
|
||||||
struct stack_trace usage_traces[LOCK_USAGE_STATES];
|
struct stack_trace usage_traces[XXX_LOCK_USAGE_STATES];
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* These fields represent a directed graph of lock dependencies,
|
* These fields represent a directed graph of lock dependencies,
|
||||||
|
|
|
@ -6,6 +6,52 @@
|
||||||
* lockdep subsystem internal functions and variables.
|
* lockdep subsystem internal functions and variables.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Lock-class usage-state bits:
|
||||||
|
*/
|
||||||
|
enum lock_usage_bit {
|
||||||
|
LOCK_USED = 0,
|
||||||
|
LOCK_USED_IN_HARDIRQ,
|
||||||
|
LOCK_USED_IN_SOFTIRQ,
|
||||||
|
LOCK_USED_IN_RECLAIM_FS,
|
||||||
|
LOCK_ENABLED_SOFTIRQ,
|
||||||
|
LOCK_ENABLED_HARDIRQ,
|
||||||
|
LOCK_ENABLED_RECLAIM_FS,
|
||||||
|
LOCK_USED_IN_HARDIRQ_READ,
|
||||||
|
LOCK_USED_IN_SOFTIRQ_READ,
|
||||||
|
LOCK_USED_IN_RECLAIM_FS_READ,
|
||||||
|
LOCK_ENABLED_SOFTIRQ_READ,
|
||||||
|
LOCK_ENABLED_HARDIRQ_READ,
|
||||||
|
LOCK_ENABLED_RECLAIM_FS_READ,
|
||||||
|
LOCK_USAGE_STATES
|
||||||
|
};
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Usage-state bitmasks:
|
||||||
|
*/
|
||||||
|
#define LOCKF_USED (1 << LOCK_USED)
|
||||||
|
#define LOCKF_USED_IN_HARDIRQ (1 << LOCK_USED_IN_HARDIRQ)
|
||||||
|
#define LOCKF_USED_IN_SOFTIRQ (1 << LOCK_USED_IN_SOFTIRQ)
|
||||||
|
#define LOCKF_USED_IN_RECLAIM_FS (1 << LOCK_USED_IN_RECLAIM_FS)
|
||||||
|
#define LOCKF_ENABLED_HARDIRQ (1 << LOCK_ENABLED_HARDIRQ)
|
||||||
|
#define LOCKF_ENABLED_SOFTIRQ (1 << LOCK_ENABLED_SOFTIRQ)
|
||||||
|
#define LOCKF_ENABLED_RECLAIM_FS (1 << LOCK_ENABLED_RECLAIM_FS)
|
||||||
|
|
||||||
|
#define LOCKF_ENABLED_IRQ (LOCKF_ENABLED_HARDIRQ | LOCKF_ENABLED_SOFTIRQ)
|
||||||
|
#define LOCKF_USED_IN_IRQ (LOCKF_USED_IN_HARDIRQ | LOCKF_USED_IN_SOFTIRQ)
|
||||||
|
|
||||||
|
#define LOCKF_USED_IN_HARDIRQ_READ (1 << LOCK_USED_IN_HARDIRQ_READ)
|
||||||
|
#define LOCKF_USED_IN_SOFTIRQ_READ (1 << LOCK_USED_IN_SOFTIRQ_READ)
|
||||||
|
#define LOCKF_USED_IN_RECLAIM_FS_READ (1 << LOCK_USED_IN_RECLAIM_FS_READ)
|
||||||
|
#define LOCKF_ENABLED_HARDIRQ_READ (1 << LOCK_ENABLED_HARDIRQ_READ)
|
||||||
|
#define LOCKF_ENABLED_SOFTIRQ_READ (1 << LOCK_ENABLED_SOFTIRQ_READ)
|
||||||
|
#define LOCKF_ENABLED_RECLAIM_FS_READ (1 << LOCK_ENABLED_RECLAIM_FS_READ)
|
||||||
|
|
||||||
|
#define LOCKF_ENABLED_IRQ_READ \
|
||||||
|
(LOCKF_ENABLED_HARDIRQ_READ | LOCKF_ENABLED_SOFTIRQ_READ)
|
||||||
|
#define LOCKF_USED_IN_IRQ_READ \
|
||||||
|
(LOCKF_USED_IN_HARDIRQ_READ | LOCKF_USED_IN_SOFTIRQ_READ)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* MAX_LOCKDEP_ENTRIES is the maximum number of lock dependencies
|
* MAX_LOCKDEP_ENTRIES is the maximum number of lock dependencies
|
||||||
* we track.
|
* we track.
|
||||||
|
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Lockdep states,
|
||||||
|
*
|
||||||
|
* please update XXX_LOCK_USAGE_STATES in include/linux/lockdep.h whenever
|
||||||
|
* you add one, or come up with a nice dynamic solution.
|
||||||
|
*/
|
||||||
LOCKDEP_STATE(HARDIRQ)
|
LOCKDEP_STATE(HARDIRQ)
|
||||||
LOCKDEP_STATE(SOFTIRQ)
|
LOCKDEP_STATE(SOFTIRQ)
|
||||||
LOCKDEP_STATE(RECLAIM_FS)
|
LOCKDEP_STATE(RECLAIM_FS)
|
||||||
|
|
Loading…
Reference in New Issue