rcutorture: Prepare for ->start_gp_poll and ->poll_gp_state
The new get_state_synchronize_srcu(), start_poll_synchronize_srcu() and poll_state_synchronize_srcu() functions need to be tested, and so this commit prepares by renaming the rcu_torture_ops field ->get_state to ->get_gp_state in order to be consistent with the upcoming ->start_gp_poll and ->poll_gp_state fields. Link: https://lore.kernel.org/rcu/20201112201547.GF3365678@moria.home.lan/ Reported-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
This commit is contained in:
Родитель
4e7ccfae52
Коммит
fd56f64b4e
|
@ -311,7 +311,7 @@ struct rcu_torture_ops {
|
||||||
void (*deferred_free)(struct rcu_torture *p);
|
void (*deferred_free)(struct rcu_torture *p);
|
||||||
void (*sync)(void);
|
void (*sync)(void);
|
||||||
void (*exp_sync)(void);
|
void (*exp_sync)(void);
|
||||||
unsigned long (*get_state)(void);
|
unsigned long (*get_gp_state)(void);
|
||||||
void (*cond_sync)(unsigned long oldstate);
|
void (*cond_sync)(unsigned long oldstate);
|
||||||
call_rcu_func_t call;
|
call_rcu_func_t call;
|
||||||
void (*cb_barrier)(void);
|
void (*cb_barrier)(void);
|
||||||
|
@ -461,7 +461,7 @@ static struct rcu_torture_ops rcu_ops = {
|
||||||
.deferred_free = rcu_torture_deferred_free,
|
.deferred_free = rcu_torture_deferred_free,
|
||||||
.sync = synchronize_rcu,
|
.sync = synchronize_rcu,
|
||||||
.exp_sync = synchronize_rcu_expedited,
|
.exp_sync = synchronize_rcu_expedited,
|
||||||
.get_state = get_state_synchronize_rcu,
|
.get_gp_state = get_state_synchronize_rcu,
|
||||||
.cond_sync = cond_synchronize_rcu,
|
.cond_sync = cond_synchronize_rcu,
|
||||||
.call = call_rcu,
|
.call = call_rcu,
|
||||||
.cb_barrier = rcu_barrier,
|
.cb_barrier = rcu_barrier,
|
||||||
|
@ -1050,10 +1050,10 @@ rcu_torture_writer(void *arg)
|
||||||
/* Initialize synctype[] array. If none set, take default. */
|
/* Initialize synctype[] array. If none set, take default. */
|
||||||
if (!gp_cond1 && !gp_exp1 && !gp_normal1 && !gp_sync1)
|
if (!gp_cond1 && !gp_exp1 && !gp_normal1 && !gp_sync1)
|
||||||
gp_cond1 = gp_exp1 = gp_normal1 = gp_sync1 = true;
|
gp_cond1 = gp_exp1 = gp_normal1 = gp_sync1 = true;
|
||||||
if (gp_cond1 && cur_ops->get_state && cur_ops->cond_sync) {
|
if (gp_cond1 && cur_ops->get_gp_state && cur_ops->cond_sync) {
|
||||||
synctype[nsynctypes++] = RTWS_COND_GET;
|
synctype[nsynctypes++] = RTWS_COND_GET;
|
||||||
pr_info("%s: Testing conditional GPs.\n", __func__);
|
pr_info("%s: Testing conditional GPs.\n", __func__);
|
||||||
} else if (gp_cond && (!cur_ops->get_state || !cur_ops->cond_sync)) {
|
} else if (gp_cond && (!cur_ops->get_gp_state || !cur_ops->cond_sync)) {
|
||||||
pr_alert("%s: gp_cond without primitives.\n", __func__);
|
pr_alert("%s: gp_cond without primitives.\n", __func__);
|
||||||
}
|
}
|
||||||
if (gp_exp1 && cur_ops->exp_sync) {
|
if (gp_exp1 && cur_ops->exp_sync) {
|
||||||
|
@ -1119,7 +1119,7 @@ rcu_torture_writer(void *arg)
|
||||||
break;
|
break;
|
||||||
case RTWS_COND_GET:
|
case RTWS_COND_GET:
|
||||||
rcu_torture_writer_state = RTWS_COND_GET;
|
rcu_torture_writer_state = RTWS_COND_GET;
|
||||||
gp_snap = cur_ops->get_state();
|
gp_snap = cur_ops->get_gp_state();
|
||||||
i = torture_random(&rand) % 16;
|
i = torture_random(&rand) % 16;
|
||||||
if (i != 0)
|
if (i != 0)
|
||||||
schedule_timeout_interruptible(i);
|
schedule_timeout_interruptible(i);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче