|
@@ -45,6 +45,14 @@ enum {
|
|
#define LOCKF_USED_IN_IRQ_READ \
|
|
#define LOCKF_USED_IN_IRQ_READ \
|
|
(LOCKF_USED_IN_HARDIRQ_READ | LOCKF_USED_IN_SOFTIRQ_READ)
|
|
(LOCKF_USED_IN_HARDIRQ_READ | LOCKF_USED_IN_SOFTIRQ_READ)
|
|
|
|
|
|
|
|
+/*
|
|
|
|
+ * CONFIG_PROVE_LOCKING_SMALL is defined for sparc. Sparc requires .text,
|
|
|
|
+ * .data and .bss to fit in required 32MB limit for the kernel. With
|
|
|
|
+ * PROVE_LOCKING we could go over this limit and cause system boot-up problems.
|
|
|
|
+ * So, reduce the static allocations for lockdeps related structures so that
|
|
|
|
+ * everything fits in current required size limit.
|
|
|
|
+ */
|
|
|
|
+#ifdef CONFIG_PROVE_LOCKING_SMALL
|
|
/*
|
|
/*
|
|
* MAX_LOCKDEP_ENTRIES is the maximum number of lock dependencies
|
|
* MAX_LOCKDEP_ENTRIES is the maximum number of lock dependencies
|
|
* we track.
|
|
* we track.
|
|
@@ -54,18 +62,24 @@ enum {
|
|
* table (if it's not there yet), and we check it for lock order
|
|
* table (if it's not there yet), and we check it for lock order
|
|
* conflicts and deadlocks.
|
|
* conflicts and deadlocks.
|
|
*/
|
|
*/
|
|
|
|
+#define MAX_LOCKDEP_ENTRIES 16384UL
|
|
|
|
+#define MAX_LOCKDEP_CHAINS_BITS 15
|
|
|
|
+#define MAX_STACK_TRACE_ENTRIES 262144UL
|
|
|
|
+#else
|
|
#define MAX_LOCKDEP_ENTRIES 32768UL
|
|
#define MAX_LOCKDEP_ENTRIES 32768UL
|
|
|
|
|
|
#define MAX_LOCKDEP_CHAINS_BITS 16
|
|
#define MAX_LOCKDEP_CHAINS_BITS 16
|
|
-#define MAX_LOCKDEP_CHAINS (1UL << MAX_LOCKDEP_CHAINS_BITS)
|
|
|
|
-
|
|
|
|
-#define MAX_LOCKDEP_CHAIN_HLOCKS (MAX_LOCKDEP_CHAINS*5)
|
|
|
|
|
|
|
|
/*
|
|
/*
|
|
* Stack-trace: tightly packed array of stack backtrace
|
|
* Stack-trace: tightly packed array of stack backtrace
|
|
* addresses. Protected by the hash_lock.
|
|
* addresses. Protected by the hash_lock.
|
|
*/
|
|
*/
|
|
#define MAX_STACK_TRACE_ENTRIES 524288UL
|
|
#define MAX_STACK_TRACE_ENTRIES 524288UL
|
|
|
|
+#endif
|
|
|
|
+
|
|
|
|
+#define MAX_LOCKDEP_CHAINS (1UL << MAX_LOCKDEP_CHAINS_BITS)
|
|
|
|
+
|
|
|
|
+#define MAX_LOCKDEP_CHAIN_HLOCKS (MAX_LOCKDEP_CHAINS*5)
|
|
|
|
|
|
extern struct list_head all_lock_classes;
|
|
extern struct list_head all_lock_classes;
|
|
extern struct lock_chain lock_chains[];
|
|
extern struct lock_chain lock_chains[];
|