Skip to content

Commit 365f344

Browse files
paulmckrcuFrederic Weisbecker
authored andcommitted
srcu: Renaming in preparation for additional reader flavor
Currently, there are only two flavors of readers, normal and NMI-safe. A number of fields, functions, and types reflect this restriction. This renaming-only commit prepares for the addition of light-weight (as in memory-barrier-free) readers. OK, OK, there is also a drive-by white-space fixeup! Signed-off-by: Paul E. McKenney <[email protected]> Cc: Alexei Starovoitov <[email protected]> Cc: Andrii Nakryiko <[email protected]> Cc: Peter Zijlstra <[email protected]> Cc: Kent Overstreet <[email protected]> Cc: <[email protected]> Reviewed-by: Neeraj Upadhyay <[email protected]> Signed-off-by: Frederic Weisbecker <[email protected]>
1 parent e3d6718 commit 365f344

File tree

3 files changed

+22
-23
lines changed

3 files changed

+22
-23
lines changed

include/linux/srcu.h

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -181,10 +181,9 @@ static inline int srcu_read_lock_held(const struct srcu_struct *ssp)
181181
#define SRCU_NMI_SAFE 0x2
182182

183183
#if defined(CONFIG_PROVE_RCU) && defined(CONFIG_TREE_SRCU)
184-
void srcu_check_nmi_safety(struct srcu_struct *ssp, bool nmi_safe);
184+
void srcu_check_read_flavor(struct srcu_struct *ssp, int read_flavor);
185185
#else
186-
static inline void srcu_check_nmi_safety(struct srcu_struct *ssp,
187-
bool nmi_safe) { }
186+
static inline void srcu_check_read_flavor(struct srcu_struct *ssp, int read_flavor) { }
188187
#endif
189188

190189

@@ -245,7 +244,7 @@ static inline int srcu_read_lock(struct srcu_struct *ssp) __acquires(ssp)
245244
{
246245
int retval;
247246

248-
srcu_check_nmi_safety(ssp, false);
247+
srcu_check_read_flavor(ssp, false);
249248
retval = __srcu_read_lock(ssp);
250249
srcu_lock_acquire(&ssp->dep_map);
251250
return retval;
@@ -262,7 +261,7 @@ static inline int srcu_read_lock_nmisafe(struct srcu_struct *ssp) __acquires(ssp
262261
{
263262
int retval;
264263

265-
srcu_check_nmi_safety(ssp, true);
264+
srcu_check_read_flavor(ssp, true);
266265
retval = __srcu_read_lock_nmisafe(ssp);
267266
rcu_try_lock_acquire(&ssp->dep_map);
268267
return retval;
@@ -274,7 +273,7 @@ srcu_read_lock_notrace(struct srcu_struct *ssp) __acquires(ssp)
274273
{
275274
int retval;
276275

277-
srcu_check_nmi_safety(ssp, false);
276+
srcu_check_read_flavor(ssp, false);
278277
retval = __srcu_read_lock(ssp);
279278
return retval;
280279
}
@@ -303,7 +302,7 @@ srcu_read_lock_notrace(struct srcu_struct *ssp) __acquires(ssp)
303302
static inline int srcu_down_read(struct srcu_struct *ssp) __acquires(ssp)
304303
{
305304
WARN_ON_ONCE(in_nmi());
306-
srcu_check_nmi_safety(ssp, false);
305+
srcu_check_read_flavor(ssp, false);
307306
return __srcu_read_lock(ssp);
308307
}
309308

@@ -318,7 +317,7 @@ static inline void srcu_read_unlock(struct srcu_struct *ssp, int idx)
318317
__releases(ssp)
319318
{
320319
WARN_ON_ONCE(idx & ~0x1);
321-
srcu_check_nmi_safety(ssp, false);
320+
srcu_check_read_flavor(ssp, false);
322321
srcu_lock_release(&ssp->dep_map);
323322
__srcu_read_unlock(ssp, idx);
324323
}
@@ -334,7 +333,7 @@ static inline void srcu_read_unlock_nmisafe(struct srcu_struct *ssp, int idx)
334333
__releases(ssp)
335334
{
336335
WARN_ON_ONCE(idx & ~0x1);
337-
srcu_check_nmi_safety(ssp, true);
336+
srcu_check_read_flavor(ssp, true);
338337
rcu_lock_release(&ssp->dep_map);
339338
__srcu_read_unlock_nmisafe(ssp, idx);
340339
}
@@ -343,7 +342,7 @@ static inline void srcu_read_unlock_nmisafe(struct srcu_struct *ssp, int idx)
343342
static inline notrace void
344343
srcu_read_unlock_notrace(struct srcu_struct *ssp, int idx) __releases(ssp)
345344
{
346-
srcu_check_nmi_safety(ssp, false);
345+
srcu_check_read_flavor(ssp, false);
347346
__srcu_read_unlock(ssp, idx);
348347
}
349348

@@ -360,7 +359,7 @@ static inline void srcu_up_read(struct srcu_struct *ssp, int idx)
360359
{
361360
WARN_ON_ONCE(idx & ~0x1);
362361
WARN_ON_ONCE(in_nmi());
363-
srcu_check_nmi_safety(ssp, false);
362+
srcu_check_read_flavor(ssp, false);
364363
__srcu_read_unlock(ssp, idx);
365364
}
366365

include/linux/srcutree.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ struct srcu_data {
2525
/* Read-side state. */
2626
atomic_long_t srcu_lock_count[2]; /* Locks per CPU. */
2727
atomic_long_t srcu_unlock_count[2]; /* Unlocks per CPU. */
28-
int srcu_nmi_safety; /* NMI-safe srcu_struct structure? */
28+
int srcu_reader_flavor; /* Reader flavor for srcu_struct structure? */
2929

3030
/* Update-side state. */
3131
spinlock_t __private lock ____cacheline_internodealigned_in_smp;

kernel/rcu/srcutree.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -460,7 +460,7 @@ static unsigned long srcu_readers_unlock_idx(struct srcu_struct *ssp, int idx)
460460

461461
sum += atomic_long_read(&cpuc->srcu_unlock_count[idx]);
462462
if (IS_ENABLED(CONFIG_PROVE_RCU))
463-
mask = mask | READ_ONCE(cpuc->srcu_nmi_safety);
463+
mask = mask | READ_ONCE(cpuc->srcu_reader_flavor);
464464
}
465465
WARN_ONCE(IS_ENABLED(CONFIG_PROVE_RCU) && (mask & (mask >> 1)),
466466
"Mixed NMI-safe readers for srcu_struct at %ps.\n", ssp);
@@ -699,25 +699,25 @@ EXPORT_SYMBOL_GPL(cleanup_srcu_struct);
699699

700700
#ifdef CONFIG_PROVE_RCU
701701
/*
702-
* Check for consistent NMI safety.
702+
* Check for consistent reader flavor.
703703
*/
704-
void srcu_check_nmi_safety(struct srcu_struct *ssp, bool nmi_safe)
704+
void srcu_check_read_flavor(struct srcu_struct *ssp, int read_flavor)
705705
{
706-
int nmi_safe_mask = 1 << nmi_safe;
707-
int old_nmi_safe_mask;
706+
int reader_flavor_mask = 1 << read_flavor;
707+
int old_reader_flavor_mask;
708708
struct srcu_data *sdp;
709709

710710
/* NMI-unsafe use in NMI is a bad sign */
711-
WARN_ON_ONCE(!nmi_safe && in_nmi());
711+
WARN_ON_ONCE(!read_flavor && in_nmi());
712712
sdp = raw_cpu_ptr(ssp->sda);
713-
old_nmi_safe_mask = READ_ONCE(sdp->srcu_nmi_safety);
714-
if (!old_nmi_safe_mask) {
715-
WRITE_ONCE(sdp->srcu_nmi_safety, nmi_safe_mask);
713+
old_reader_flavor_mask = READ_ONCE(sdp->srcu_reader_flavor);
714+
if (!old_reader_flavor_mask) {
715+
WRITE_ONCE(sdp->srcu_reader_flavor, reader_flavor_mask);
716716
return;
717717
}
718-
WARN_ONCE(old_nmi_safe_mask != nmi_safe_mask, "CPU %d old state %d new state %d\n", sdp->cpu, old_nmi_safe_mask, nmi_safe_mask);
718+
WARN_ONCE(old_reader_flavor_mask != reader_flavor_mask, "CPU %d old state %d new state %d\n", sdp->cpu, old_reader_flavor_mask, reader_flavor_mask);
719719
}
720-
EXPORT_SYMBOL_GPL(srcu_check_nmi_safety);
720+
EXPORT_SYMBOL_GPL(srcu_check_read_flavor);
721721
#endif /* CONFIG_PROVE_RCU */
722722

723723
/*

0 commit comments

Comments
 (0)