diff options
| author | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2017-03-24 16:46:33 -0400 |
|---|---|---|
| committer | Paul E. McKenney <paulmck@linux.vnet.ibm.com> | 2017-04-18 14:38:22 -0400 |
| commit | f60d231a87c5c9f23f10e69996f396d46f5bf901 (patch) | |
| tree | 04076adf019c43dbf7f31ad435aed8361a9a46b0 /include/linux/srcu.h | |
| parent | 80a7956fe36c2ee40c6ff12c77926d267802b7c8 (diff) | |
srcu: Crude control of expedited grace periods
SRCU's implementation of expedited grace periods has always assumed
that the SRCU instance is idle when the expedited request arrives.
This commit improves this a bit by maintaining a count of the number
of outstanding expedited requests, thus allowing prior non-expedited
grace periods accommodate these requests by shifting to expedited mode.
However, any non-expedited wait already in progress will still wait for
the full duration.
Improved control of expedited grace periods is planned, but one step
at a time.
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Diffstat (limited to 'include/linux/srcu.h')
| -rw-r--r-- | include/linux/srcu.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/linux/srcu.h b/include/linux/srcu.h index e7dbc01b61a1..73a1b6296224 100644 --- a/include/linux/srcu.h +++ b/include/linux/srcu.h | |||
| @@ -42,6 +42,7 @@ struct srcu_array { | |||
| 42 | struct srcu_struct { | 42 | struct srcu_struct { |
| 43 | unsigned long completed; | 43 | unsigned long completed; |
| 44 | unsigned long srcu_gp_seq; | 44 | unsigned long srcu_gp_seq; |
| 45 | atomic_t srcu_exp_cnt; | ||
| 45 | struct srcu_array __percpu *per_cpu_ref; | 46 | struct srcu_array __percpu *per_cpu_ref; |
| 46 | spinlock_t queue_lock; /* protect ->srcu_cblist */ | 47 | spinlock_t queue_lock; /* protect ->srcu_cblist */ |
| 47 | struct rcu_segcblist srcu_cblist; | 48 | struct rcu_segcblist srcu_cblist; |
