Blame view

kernel/Kconfig.locks 4.91 KB
ec8f24b7f   Thomas Gleixner   treewide: Add SPD...
1
  # SPDX-License-Identifier: GPL-2.0-only
6beb00092   Thomas Gleixner   locking: Make inl...
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
89
  #
  # 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...
90
91
  config UNINLINE_SPIN_UNLOCK
  	bool
6beb00092   Thomas Gleixner   locking: Make inl...
92
93
94
95
96
97
98
99
100
101
  #
  # 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
1b40cd56f   Sebastian Andrzej Siewior   sched/rt, locking...
102
  #   - DEBUG_SPINLOCK=n and PREEMPTION=n
6beb00092   Thomas Gleixner   locking: Make inl...
103
104
105
106
  #
  # unlock_bh and unlock_irqrestore functions are inlined when:
  #   - DEBUG_SPINLOCK=n and ARCH_INLINE_*LOCK=y
  #
4fe84fb8c   Jan Beulich   locking: Adjust s...
107
  if !DEBUG_SPINLOCK
6beb00092   Thomas Gleixner   locking: Make inl...
108
  config INLINE_SPIN_TRYLOCK
4fe84fb8c   Jan Beulich   locking: Adjust s...
109
110
  	def_bool y
  	depends on ARCH_INLINE_SPIN_TRYLOCK
6beb00092   Thomas Gleixner   locking: Make inl...
111
112
  
  config INLINE_SPIN_TRYLOCK_BH
4fe84fb8c   Jan Beulich   locking: Adjust s...
113
114
  	def_bool y
  	depends on ARCH_INLINE_SPIN_TRYLOCK_BH
6beb00092   Thomas Gleixner   locking: Make inl...
115
116
  
  config INLINE_SPIN_LOCK
4fe84fb8c   Jan Beulich   locking: Adjust s...
117
118
  	def_bool y
  	depends on !GENERIC_LOCKBREAK && ARCH_INLINE_SPIN_LOCK
6beb00092   Thomas Gleixner   locking: Make inl...
119
120
  
  config INLINE_SPIN_LOCK_BH
4fe84fb8c   Jan Beulich   locking: Adjust s...
121
122
  	def_bool y
  	depends on !GENERIC_LOCKBREAK && ARCH_INLINE_SPIN_LOCK_BH
6beb00092   Thomas Gleixner   locking: Make inl...
123
124
  
  config INLINE_SPIN_LOCK_IRQ
4fe84fb8c   Jan Beulich   locking: Adjust s...
125
126
  	def_bool y
  	depends on !GENERIC_LOCKBREAK && ARCH_INLINE_SPIN_LOCK_IRQ
6beb00092   Thomas Gleixner   locking: Make inl...
127
128
  
  config INLINE_SPIN_LOCK_IRQSAVE
4fe84fb8c   Jan Beulich   locking: Adjust s...
129
130
  	def_bool y
  	depends on !GENERIC_LOCKBREAK && ARCH_INLINE_SPIN_LOCK_IRQSAVE
6beb00092   Thomas Gleixner   locking: Make inl...
131
132
  
  config INLINE_SPIN_UNLOCK_BH
4fe84fb8c   Jan Beulich   locking: Adjust s...
133
134
  	def_bool y
  	depends on ARCH_INLINE_SPIN_UNLOCK_BH
6beb00092   Thomas Gleixner   locking: Make inl...
135
136
  
  config INLINE_SPIN_UNLOCK_IRQ
4fe84fb8c   Jan Beulich   locking: Adjust s...
137
  	def_bool y
1b40cd56f   Sebastian Andrzej Siewior   sched/rt, locking...
138
  	depends on !PREEMPTION || ARCH_INLINE_SPIN_UNLOCK_IRQ
6beb00092   Thomas Gleixner   locking: Make inl...
139
140
  
  config INLINE_SPIN_UNLOCK_IRQRESTORE
4fe84fb8c   Jan Beulich   locking: Adjust s...
141
142
  	def_bool y
  	depends on ARCH_INLINE_SPIN_UNLOCK_IRQRESTORE
6beb00092   Thomas Gleixner   locking: Make inl...
143
144
145
  
  
  config INLINE_READ_TRYLOCK
4fe84fb8c   Jan Beulich   locking: Adjust s...
146
147
  	def_bool y
  	depends on ARCH_INLINE_READ_TRYLOCK
6beb00092   Thomas Gleixner   locking: Make inl...
148
149
  
  config INLINE_READ_LOCK
4fe84fb8c   Jan Beulich   locking: Adjust s...
150
151
  	def_bool y
  	depends on !GENERIC_LOCKBREAK && ARCH_INLINE_READ_LOCK
6beb00092   Thomas Gleixner   locking: Make inl...
152
153
  
  config INLINE_READ_LOCK_BH
4fe84fb8c   Jan Beulich   locking: Adjust s...
154
155
  	def_bool y
  	depends on !GENERIC_LOCKBREAK && ARCH_INLINE_READ_LOCK_BH
6beb00092   Thomas Gleixner   locking: Make inl...
156
157
  
  config INLINE_READ_LOCK_IRQ
4fe84fb8c   Jan Beulich   locking: Adjust s...
158
159
  	def_bool y
  	depends on !GENERIC_LOCKBREAK && ARCH_INLINE_READ_LOCK_IRQ
6beb00092   Thomas Gleixner   locking: Make inl...
160
161
  
  config INLINE_READ_LOCK_IRQSAVE
4fe84fb8c   Jan Beulich   locking: Adjust s...
162
163
  	def_bool y
  	depends on !GENERIC_LOCKBREAK && ARCH_INLINE_READ_LOCK_IRQSAVE
6beb00092   Thomas Gleixner   locking: Make inl...
164
165
  
  config INLINE_READ_UNLOCK
4fe84fb8c   Jan Beulich   locking: Adjust s...
166
  	def_bool y
1b40cd56f   Sebastian Andrzej Siewior   sched/rt, locking...
167
  	depends on !PREEMPTION || ARCH_INLINE_READ_UNLOCK
6beb00092   Thomas Gleixner   locking: Make inl...
168
169
  
  config INLINE_READ_UNLOCK_BH
4fe84fb8c   Jan Beulich   locking: Adjust s...
170
171
  	def_bool y
  	depends on ARCH_INLINE_READ_UNLOCK_BH
6beb00092   Thomas Gleixner   locking: Make inl...
172
173
  
  config INLINE_READ_UNLOCK_IRQ
4fe84fb8c   Jan Beulich   locking: Adjust s...
174
  	def_bool y
1b40cd56f   Sebastian Andrzej Siewior   sched/rt, locking...
175
  	depends on !PREEMPTION || ARCH_INLINE_READ_UNLOCK_IRQ
6beb00092   Thomas Gleixner   locking: Make inl...
176
177
  
  config INLINE_READ_UNLOCK_IRQRESTORE
4fe84fb8c   Jan Beulich   locking: Adjust s...
178
179
  	def_bool y
  	depends on ARCH_INLINE_READ_UNLOCK_IRQRESTORE
6beb00092   Thomas Gleixner   locking: Make inl...
180
181
182
  
  
  config INLINE_WRITE_TRYLOCK
4fe84fb8c   Jan Beulich   locking: Adjust s...
183
184
  	def_bool y
  	depends on ARCH_INLINE_WRITE_TRYLOCK
6beb00092   Thomas Gleixner   locking: Make inl...
185
186
  
  config INLINE_WRITE_LOCK
4fe84fb8c   Jan Beulich   locking: Adjust s...
187
188
  	def_bool y
  	depends on !GENERIC_LOCKBREAK && ARCH_INLINE_WRITE_LOCK
6beb00092   Thomas Gleixner   locking: Make inl...
189
190
  
  config INLINE_WRITE_LOCK_BH
4fe84fb8c   Jan Beulich   locking: Adjust s...
191
192
  	def_bool y
  	depends on !GENERIC_LOCKBREAK && ARCH_INLINE_WRITE_LOCK_BH
6beb00092   Thomas Gleixner   locking: Make inl...
193
194
  
  config INLINE_WRITE_LOCK_IRQ
4fe84fb8c   Jan Beulich   locking: Adjust s...
195
196
  	def_bool y
  	depends on !GENERIC_LOCKBREAK && ARCH_INLINE_WRITE_LOCK_IRQ
6beb00092   Thomas Gleixner   locking: Make inl...
197
198
  
  config INLINE_WRITE_LOCK_IRQSAVE
4fe84fb8c   Jan Beulich   locking: Adjust s...
199
200
  	def_bool y
  	depends on !GENERIC_LOCKBREAK && ARCH_INLINE_WRITE_LOCK_IRQSAVE
6beb00092   Thomas Gleixner   locking: Make inl...
201
202
  
  config INLINE_WRITE_UNLOCK
4fe84fb8c   Jan Beulich   locking: Adjust s...
203
  	def_bool y
1b40cd56f   Sebastian Andrzej Siewior   sched/rt, locking...
204
  	depends on !PREEMPTION || ARCH_INLINE_WRITE_UNLOCK
6beb00092   Thomas Gleixner   locking: Make inl...
205
206
  
  config INLINE_WRITE_UNLOCK_BH
4fe84fb8c   Jan Beulich   locking: Adjust s...
207
208
  	def_bool y
  	depends on ARCH_INLINE_WRITE_UNLOCK_BH
6beb00092   Thomas Gleixner   locking: Make inl...
209
210
  
  config INLINE_WRITE_UNLOCK_IRQ
4fe84fb8c   Jan Beulich   locking: Adjust s...
211
  	def_bool y
1b40cd56f   Sebastian Andrzej Siewior   sched/rt, locking...
212
  	depends on !PREEMPTION || ARCH_INLINE_WRITE_UNLOCK_IRQ
6beb00092   Thomas Gleixner   locking: Make inl...
213
214
  
  config INLINE_WRITE_UNLOCK_IRQRESTORE
4fe84fb8c   Jan Beulich   locking: Adjust s...
215
216
217
218
  	def_bool y
  	depends on ARCH_INLINE_WRITE_UNLOCK_IRQRESTORE
  
  endif
c02260277   Frederic Weisbecker   mutex: Better con...
219

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

5db6c6fef   Davidlohr Bueso   locking/rwsem: Ad...
226
227
  config RWSEM_SPIN_ON_OWNER
         def_bool y
390a0c62c   Waiman Long   locking/rwsem: Re...
228
         depends on SMP && ARCH_SUPPORTS_ATOMIC_RMW
5db6c6fef   Davidlohr Bueso   locking/rwsem: Ad...
229

d84b6728c   Davidlohr Bueso   locking/mcs: Bett...
230
231
232
  config LOCK_SPIN_ON_OWNER
         def_bool y
         depends on MUTEX_SPIN_ON_OWNER || RWSEM_SPIN_ON_OWNER
62c7a1e9a   Ingo Molnar   locking/pvqspinlo...
233
  config ARCH_USE_QUEUED_SPINLOCKS
a33fda35e   Waiman Long   locking/qspinlock...
234
  	bool
62c7a1e9a   Ingo Molnar   locking/pvqspinlo...
235
236
  config QUEUED_SPINLOCKS
  	def_bool y if ARCH_USE_QUEUED_SPINLOCKS
e95e6f176   David Vrabel   locking/pvqspinlo...
237
  	depends on SMP
a33fda35e   Waiman Long   locking/qspinlock...
238

d83525ca6   Alexei Starovoitov   bpf: introduce bp...
239
240
  config BPF_ARCH_SPINLOCK
  	bool
c7114b4e6   Waiman Long   locking/qrwlock: ...
241
  config ARCH_USE_QUEUED_RWLOCKS
70af2f8a4   Waiman Long   locking/rwlocks: ...
242
  	bool
c7114b4e6   Waiman Long   locking/qrwlock: ...
243
244
  config QUEUED_RWLOCKS
  	def_bool y if ARCH_USE_QUEUED_RWLOCKS
70af2f8a4   Waiman Long   locking/rwlocks: ...
245
  	depends on SMP
d1be6a28b   Will Deacon   asm-generic/mmiow...
246
247
248
249
250
251
252
  
  config ARCH_HAS_MMIOWB
  	bool
  
  config MMIOWB
  	def_bool y if ARCH_HAS_MMIOWB
  	depends on SMP