Blame view

kernel/Kconfig.locks 4.76 KB
6beb00092   Thomas Gleixner   locking: Make inl...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
  #
  # The ARCH_INLINE foo is necessary because select ignores "depends on"
  #
  config ARCH_INLINE_SPIN_TRYLOCK
  	bool
  
  config ARCH_INLINE_SPIN_TRYLOCK_BH
  	bool
  
  config ARCH_INLINE_SPIN_LOCK
  	bool
  
  config ARCH_INLINE_SPIN_LOCK_BH
  	bool
  
  config ARCH_INLINE_SPIN_LOCK_IRQ
  	bool
  
  config ARCH_INLINE_SPIN_LOCK_IRQSAVE
  	bool
  
  config ARCH_INLINE_SPIN_UNLOCK
  	bool
  
  config ARCH_INLINE_SPIN_UNLOCK_BH
  	bool
  
  config ARCH_INLINE_SPIN_UNLOCK_IRQ
  	bool
  
  config ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
  	bool
  
  
  config ARCH_INLINE_READ_TRYLOCK
  	bool
  
  config ARCH_INLINE_READ_LOCK
  	bool
  
  config ARCH_INLINE_READ_LOCK_BH
  	bool
  
  config ARCH_INLINE_READ_LOCK_IRQ
  	bool
  
  config ARCH_INLINE_READ_LOCK_IRQSAVE
  	bool
  
  config ARCH_INLINE_READ_UNLOCK
  	bool
  
  config ARCH_INLINE_READ_UNLOCK_BH
  	bool
  
  config ARCH_INLINE_READ_UNLOCK_IRQ
  	bool
  
  config ARCH_INLINE_READ_UNLOCK_IRQRESTORE
  	bool
  
  
  config ARCH_INLINE_WRITE_TRYLOCK
  	bool
  
  config ARCH_INLINE_WRITE_LOCK
  	bool
  
  config ARCH_INLINE_WRITE_LOCK_BH
  	bool
  
  config ARCH_INLINE_WRITE_LOCK_IRQ
  	bool
  
  config ARCH_INLINE_WRITE_LOCK_IRQSAVE
  	bool
  
  config ARCH_INLINE_WRITE_UNLOCK
  	bool
  
  config ARCH_INLINE_WRITE_UNLOCK_BH
  	bool
  
  config ARCH_INLINE_WRITE_UNLOCK_IRQ
  	bool
  
  config ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
  	bool
4fe84fb8c   Jan Beulich   locking: Adjust s...
89
90
  config UNINLINE_SPIN_UNLOCK
  	bool
6beb00092   Thomas Gleixner   locking: Make inl...
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
  #
  # lock_* functions are inlined when:
  #   - DEBUG_SPINLOCK=n and GENERIC_LOCKBREAK=n and ARCH_INLINE_*LOCK=y
  #
  # trylock_* functions are inlined when:
  #   - DEBUG_SPINLOCK=n and ARCH_INLINE_*LOCK=y
  #
  # unlock and unlock_irq functions are inlined when:
  #   - DEBUG_SPINLOCK=n and ARCH_INLINE_*LOCK=y
  #  or
  #   - DEBUG_SPINLOCK=n and PREEMPT=n
  #
  # unlock_bh and unlock_irqrestore functions are inlined when:
  #   - DEBUG_SPINLOCK=n and ARCH_INLINE_*LOCK=y
  #
4fe84fb8c   Jan Beulich   locking: Adjust s...
106
  if !DEBUG_SPINLOCK
6beb00092   Thomas Gleixner   locking: Make inl...
107
  config INLINE_SPIN_TRYLOCK
4fe84fb8c   Jan Beulich   locking: Adjust s...
108
109
  	def_bool y
  	depends on ARCH_INLINE_SPIN_TRYLOCK
6beb00092   Thomas Gleixner   locking: Make inl...
110
111
  
  config INLINE_SPIN_TRYLOCK_BH
4fe84fb8c   Jan Beulich   locking: Adjust s...
112
113
  	def_bool y
  	depends on ARCH_INLINE_SPIN_TRYLOCK_BH
6beb00092   Thomas Gleixner   locking: Make inl...
114
115
  
  config INLINE_SPIN_LOCK
4fe84fb8c   Jan Beulich   locking: Adjust s...
116
117
  	def_bool y
  	depends on !GENERIC_LOCKBREAK && ARCH_INLINE_SPIN_LOCK
6beb00092   Thomas Gleixner   locking: Make inl...
118
119
  
  config INLINE_SPIN_LOCK_BH
4fe84fb8c   Jan Beulich   locking: Adjust s...
120
121
  	def_bool y
  	depends on !GENERIC_LOCKBREAK && ARCH_INLINE_SPIN_LOCK_BH
6beb00092   Thomas Gleixner   locking: Make inl...
122
123
  
  config INLINE_SPIN_LOCK_IRQ
4fe84fb8c   Jan Beulich   locking: Adjust s...
124
125
  	def_bool y
  	depends on !GENERIC_LOCKBREAK && ARCH_INLINE_SPIN_LOCK_IRQ
6beb00092   Thomas Gleixner   locking: Make inl...
126
127
  
  config INLINE_SPIN_LOCK_IRQSAVE
4fe84fb8c   Jan Beulich   locking: Adjust s...
128
129
  	def_bool y
  	depends on !GENERIC_LOCKBREAK && ARCH_INLINE_SPIN_LOCK_IRQSAVE
6beb00092   Thomas Gleixner   locking: Make inl...
130
131
  
  config INLINE_SPIN_UNLOCK_BH
4fe84fb8c   Jan Beulich   locking: Adjust s...
132
133
  	def_bool y
  	depends on ARCH_INLINE_SPIN_UNLOCK_BH
6beb00092   Thomas Gleixner   locking: Make inl...
134
135
  
  config INLINE_SPIN_UNLOCK_IRQ
4fe84fb8c   Jan Beulich   locking: Adjust s...
136
  	def_bool y
4eedb77a9   Paul Bolle   locking: Fix copy...
137
  	depends on !PREEMPT || ARCH_INLINE_SPIN_UNLOCK_IRQ
6beb00092   Thomas Gleixner   locking: Make inl...
138
139
  
  config INLINE_SPIN_UNLOCK_IRQRESTORE
4fe84fb8c   Jan Beulich   locking: Adjust s...
140
141
  	def_bool y
  	depends on ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
6beb00092   Thomas Gleixner   locking: Make inl...
142
143
144
  
  
  config INLINE_READ_TRYLOCK
4fe84fb8c   Jan Beulich   locking: Adjust s...
145
146
  	def_bool y
  	depends on ARCH_INLINE_READ_TRYLOCK
6beb00092   Thomas Gleixner   locking: Make inl...
147
148
  
  config INLINE_READ_LOCK
4fe84fb8c   Jan Beulich   locking: Adjust s...
149
150
  	def_bool y
  	depends on !GENERIC_LOCKBREAK && ARCH_INLINE_READ_LOCK
6beb00092   Thomas Gleixner   locking: Make inl...
151
152
  
  config INLINE_READ_LOCK_BH
4fe84fb8c   Jan Beulich   locking: Adjust s...
153
154
  	def_bool y
  	depends on !GENERIC_LOCKBREAK && ARCH_INLINE_READ_LOCK_BH
6beb00092   Thomas Gleixner   locking: Make inl...
155
156
  
  config INLINE_READ_LOCK_IRQ
4fe84fb8c   Jan Beulich   locking: Adjust s...
157
158
  	def_bool y
  	depends on !GENERIC_LOCKBREAK && ARCH_INLINE_READ_LOCK_IRQ
6beb00092   Thomas Gleixner   locking: Make inl...
159
160
  
  config INLINE_READ_LOCK_IRQSAVE
4fe84fb8c   Jan Beulich   locking: Adjust s...
161
162
  	def_bool y
  	depends on !GENERIC_LOCKBREAK && ARCH_INLINE_READ_LOCK_IRQSAVE
6beb00092   Thomas Gleixner   locking: Make inl...
163
164
  
  config INLINE_READ_UNLOCK
4fe84fb8c   Jan Beulich   locking: Adjust s...
165
166
  	def_bool y
  	depends on !PREEMPT || ARCH_INLINE_READ_UNLOCK
6beb00092   Thomas Gleixner   locking: Make inl...
167
168
  
  config INLINE_READ_UNLOCK_BH
4fe84fb8c   Jan Beulich   locking: Adjust s...
169
170
  	def_bool y
  	depends on ARCH_INLINE_READ_UNLOCK_BH
6beb00092   Thomas Gleixner   locking: Make inl...
171
172
  
  config INLINE_READ_UNLOCK_IRQ
4fe84fb8c   Jan Beulich   locking: Adjust s...
173
  	def_bool y
4eedb77a9   Paul Bolle   locking: Fix copy...
174
  	depends on !PREEMPT || ARCH_INLINE_READ_UNLOCK_IRQ
6beb00092   Thomas Gleixner   locking: Make inl...
175
176
  
  config INLINE_READ_UNLOCK_IRQRESTORE
4fe84fb8c   Jan Beulich   locking: Adjust s...
177
178
  	def_bool y
  	depends on ARCH_INLINE_READ_UNLOCK_IRQRESTORE
6beb00092   Thomas Gleixner   locking: Make inl...
179
180
181
  
  
  config INLINE_WRITE_TRYLOCK
4fe84fb8c   Jan Beulich   locking: Adjust s...
182
183
  	def_bool y
  	depends on ARCH_INLINE_WRITE_TRYLOCK
6beb00092   Thomas Gleixner   locking: Make inl...
184
185
  
  config INLINE_WRITE_LOCK
4fe84fb8c   Jan Beulich   locking: Adjust s...
186
187
  	def_bool y
  	depends on !GENERIC_LOCKBREAK && ARCH_INLINE_WRITE_LOCK
6beb00092   Thomas Gleixner   locking: Make inl...
188
189
  
  config INLINE_WRITE_LOCK_BH
4fe84fb8c   Jan Beulich   locking: Adjust s...
190
191
  	def_bool y
  	depends on !GENERIC_LOCKBREAK && ARCH_INLINE_WRITE_LOCK_BH
6beb00092   Thomas Gleixner   locking: Make inl...
192
193
  
  config INLINE_WRITE_LOCK_IRQ
4fe84fb8c   Jan Beulich   locking: Adjust s...
194
195
  	def_bool y
  	depends on !GENERIC_LOCKBREAK && ARCH_INLINE_WRITE_LOCK_IRQ
6beb00092   Thomas Gleixner   locking: Make inl...
196
197
  
  config INLINE_WRITE_LOCK_IRQSAVE
4fe84fb8c   Jan Beulich   locking: Adjust s...
198
199
  	def_bool y
  	depends on !GENERIC_LOCKBREAK && ARCH_INLINE_WRITE_LOCK_IRQSAVE
6beb00092   Thomas Gleixner   locking: Make inl...
200
201
  
  config INLINE_WRITE_UNLOCK
4fe84fb8c   Jan Beulich   locking: Adjust s...
202
203
  	def_bool y
  	depends on !PREEMPT || ARCH_INLINE_WRITE_UNLOCK
6beb00092   Thomas Gleixner   locking: Make inl...
204
205
  
  config INLINE_WRITE_UNLOCK_BH
4fe84fb8c   Jan Beulich   locking: Adjust s...
206
207
  	def_bool y
  	depends on ARCH_INLINE_WRITE_UNLOCK_BH
6beb00092   Thomas Gleixner   locking: Make inl...
208
209
  
  config INLINE_WRITE_UNLOCK_IRQ
4fe84fb8c   Jan Beulich   locking: Adjust s...
210
  	def_bool y
4eedb77a9   Paul Bolle   locking: Fix copy...
211
  	depends on !PREEMPT || ARCH_INLINE_WRITE_UNLOCK_IRQ
6beb00092   Thomas Gleixner   locking: Make inl...
212
213
  
  config INLINE_WRITE_UNLOCK_IRQRESTORE
4fe84fb8c   Jan Beulich   locking: Adjust s...
214
215
216
217
  	def_bool y
  	depends on ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
  
  endif
c02260277   Frederic Weisbecker   mutex: Better con...
218

4badad352   Peter Zijlstra   locking/mutex: Di...
219
220
  config ARCH_SUPPORTS_ATOMIC_RMW
  	bool
c02260277   Frederic Weisbecker   mutex: Better con...
221
  config MUTEX_SPIN_ON_OWNER
4fe84fb8c   Jan Beulich   locking: Adjust s...
222
  	def_bool y
a3ea3d9b8   Peter Zijlstra   locking/mutex: Al...
223
  	depends on SMP && ARCH_SUPPORTS_ATOMIC_RMW
70af2f8a4   Waiman Long   locking/rwlocks: ...
224

5db6c6fef   Davidlohr Bueso   locking/rwsem: Ad...
225
226
227
  config RWSEM_SPIN_ON_OWNER
         def_bool y
         depends on SMP && RWSEM_XCHGADD_ALGORITHM && ARCH_SUPPORTS_ATOMIC_RMW
d84b6728c   Davidlohr Bueso   locking/mcs: Bett...
228
229
230
  config LOCK_SPIN_ON_OWNER
         def_bool y
         depends on MUTEX_SPIN_ON_OWNER || RWSEM_SPIN_ON_OWNER
62c7a1e9a   Ingo Molnar   locking/pvqspinlo...
231
  config ARCH_USE_QUEUED_SPINLOCKS
a33fda35e   Waiman Long   locking/qspinlock...
232
  	bool
62c7a1e9a   Ingo Molnar   locking/pvqspinlo...
233
234
  config QUEUED_SPINLOCKS
  	def_bool y if ARCH_USE_QUEUED_SPINLOCKS
e95e6f176   David Vrabel   locking/pvqspinlo...
235
  	depends on SMP
a33fda35e   Waiman Long   locking/qspinlock...
236

c7114b4e6   Waiman Long   locking/qrwlock: ...
237
  config ARCH_USE_QUEUED_RWLOCKS
70af2f8a4   Waiman Long   locking/rwlocks: ...
238
  	bool
c7114b4e6   Waiman Long   locking/qrwlock: ...
239
240
  config QUEUED_RWLOCKS
  	def_bool y if ARCH_USE_QUEUED_RWLOCKS
70af2f8a4   Waiman Long   locking/rwlocks: ...
241
  	depends on SMP