Re: [RFC PATCH 12/12] rcu: Nocb (de)activate through sysfs

From: Paul E. McKenney
Date: Mon Sep 21 2020 - 20:26:35 EST


On Mon, Sep 21, 2020 at 02:43:51PM +0200, Frederic Weisbecker wrote:
> Not for merge.
>
> Make nocb toggable for a given CPU using:
> /sys/devices/system/cpu/cpu*/hotplug/nocb
>
> This is only intended for those who want to test this patchset. The real
> interfaces will be cpuset/isolation and rcutorture.

Excellent choice for testing in the near term!

How does rcutorture fare with this series if an additional kthread toggles
offloading on and off continually?

All questions and concerns aside, excellent progress and nice work!!!

Thanx, Paul

> Not-Signed-off-by: Frederic Weisbecker <frederic@xxxxxxxxxx>
> Cc: Paul E. McKenney <paulmck@xxxxxxxxxx>
> Cc: Josh Triplett <josh@xxxxxxxxxxxxxxxx>
> Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
> Cc: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxxxx>
> Cc: Lai Jiangshan <jiangshanlai@xxxxxxxxx>
> Cc: Joel Fernandes <joel@xxxxxxxxxxxxxxxxx>
> ---
> kernel/cpu.c | 23 +++++++++++++++++++++++
> 1 file changed, 23 insertions(+)
>
> diff --git a/kernel/cpu.c b/kernel/cpu.c
> index 6ff2578ecf17..a36634113b8e 100644
> --- a/kernel/cpu.c
> +++ b/kernel/cpu.c
> @@ -2224,10 +2224,33 @@ static ssize_t show_cpuhp_fail(struct device *dev,
>
> static DEVICE_ATTR(fail, 0644, show_cpuhp_fail, write_cpuhp_fail);
>
> +static ssize_t write_nocb(struct device *dev,
> + struct device_attribute *attr,
> + const char *buf, size_t count)
> +{
> + int val, ret;
> +
> + ret = kstrtoint(buf, 10, &val);
> + if (ret)
> + return ret;
> +
> + if (val == 0)
> + rcu_nocb_cpu_deoffload(dev->id);
> + else if (val == 1)
> + rcu_nocb_cpu_offload(dev->id);
> + else
> + return -EINVAL;
> +
> + return count;
> +}
> +
> +static DEVICE_ATTR(nocb, 0644, NULL, write_nocb);
> +
> static struct attribute *cpuhp_cpu_attrs[] = {
> &dev_attr_state.attr,
> &dev_attr_target.attr,
> &dev_attr_fail.attr,
> + &dev_attr_nocb.attr,
> NULL
> };
>
> --
> 2.28.0
>