Re: [Xen-devel] [PATCH v7 2/5] xen/rcu: don't use stop_machine_run() for rcu_barrier()

2020-03-26 Thread Julien Grall
On 26/03/2020 08:50, Jürgen Groß wrote: On 26.03.20 09:49, Jan Beulich wrote: On 26.03.2020 08:24, Jürgen Groß wrote: On 26.03.20 07:58, Jan Beulich wrote: On 25.03.2020 17:13, Julien Grall wrote: On 25/03/2020 10:55, Juergen Gross wrote: @@ -143,51 +143,90 @@ static int qhimark = 1;

Re: [Xen-devel] [PATCH v7 2/5] xen/rcu: don't use stop_machine_run() for rcu_barrier()

2020-03-26 Thread Jürgen Groß
On 26.03.20 09:49, Jan Beulich wrote: On 26.03.2020 08:24, Jürgen Groß wrote: On 26.03.20 07:58, Jan Beulich wrote: On 25.03.2020 17:13, Julien Grall wrote: On 25/03/2020 10:55, Juergen Gross wrote: @@ -143,51 +143,90 @@ static int qhimark = 1;    static int qlowmark = 100;    static in

Re: [Xen-devel] [PATCH v7 2/5] xen/rcu: don't use stop_machine_run() for rcu_barrier()

2020-03-26 Thread Jan Beulich
On 26.03.2020 08:24, Jürgen Groß wrote: > On 26.03.20 07:58, Jan Beulich wrote: >> On 25.03.2020 17:13, Julien Grall wrote: >>> On 25/03/2020 10:55, Juergen Gross wrote: @@ -143,51 +143,90 @@ static int qhimark = 1;    static int qlowmark = 100;    static int rsinterval = 1000; >

Re: [Xen-devel] [PATCH v7 2/5] xen/rcu: don't use stop_machine_run() for rcu_barrier()

2020-03-26 Thread Jürgen Groß
On 26.03.20 07:58, Jan Beulich wrote: On 25.03.2020 17:13, Julien Grall wrote: On 25/03/2020 10:55, Juergen Gross wrote: @@ -143,51 +143,90 @@ static int qhimark = 1;   static int qlowmark = 100;   static int rsinterval = 1000;   -struct rcu_barrier_data { -    struct rcu_head head; -   

Re: [Xen-devel] [PATCH v7 2/5] xen/rcu: don't use stop_machine_run() for rcu_barrier()

2020-03-26 Thread Jan Beulich
On 25.03.2020 17:13, Julien Grall wrote: > On 25/03/2020 10:55, Juergen Gross wrote: >> @@ -143,51 +143,90 @@ static int qhimark = 1; >>   static int qlowmark = 100; >>   static int rsinterval = 1000; >>   -struct rcu_barrier_data { >> -    struct rcu_head head; >> -    atomic_t *cpu_count; >>

Re: [Xen-devel] [PATCH v7 2/5] xen/rcu: don't use stop_machine_run() for rcu_barrier()

2020-03-25 Thread Julien Grall
Hi Juergen, On 25/03/2020 10:55, Juergen Gross wrote: Today rcu_barrier() is calling stop_machine_run() to synchronize all physical cpus in order to ensure all pending rcu calls have finished when returning. As stop_machine_run() is using tasklets this requires scheduling of idle vcpus on all c

Re: [Xen-devel] [PATCH v7 2/5] xen/rcu: don't use stop_machine_run() for rcu_barrier()

2020-03-25 Thread Jan Beulich
On 25.03.2020 11:55, Juergen Gross wrote: > Today rcu_barrier() is calling stop_machine_run() to synchronize all > physical cpus in order to ensure all pending rcu calls have finished > when returning. > > As stop_machine_run() is using tasklets this requires scheduling of > idle vcpus on all cpus

[Xen-devel] [PATCH v7 2/5] xen/rcu: don't use stop_machine_run() for rcu_barrier()

2020-03-25 Thread Juergen Gross
Today rcu_barrier() is calling stop_machine_run() to synchronize all physical cpus in order to ensure all pending rcu calls have finished when returning. As stop_machine_run() is using tasklets this requires scheduling of idle vcpus on all cpus imposing the need to call rcu_barrier() on idle cpus