> On Jul 25, 2019, at 5:36 AM, Thomas Gleixner wrote:
>
> On Mon, 22 Jul 2019, Nadav Amit wrote:
>>> On Jul 22, 2019, at 11:51 AM, Thomas Gleixner wrote:
>>> void on_each_cpu(void (*func) (void *info), void *info, int wait)
>>> {
>>> unsigned long flags;
>>>
>>> preempt_disable();
On Mon, 22 Jul 2019, Nadav Amit wrote:
> > On Jul 22, 2019, at 11:51 AM, Thomas Gleixner wrote:
> > void on_each_cpu(void (*func) (void *info), void *info, int wait)
> > {
> >unsigned long flags;
> >
> >preempt_disable();
> > smp_call_function(func, info, wait);
> >
> >
On Mon, Jul 22, 2019 at 06:41:44PM +, Nadav Amit wrote:
> > On Jul 22, 2019, at 11:16 AM, Peter Zijlstra wrote:
> >
> > On Fri, Jul 19, 2019 at 11:23:06AM -0700, Dave Hansen wrote:
> >> On 7/18/19 5:58 PM, Nadav Amit wrote:
> >>> @@ -624,16 +622,11 @@ EXPORT_SYMBOL(on_each_cpu);
> >>> void
On Mon, Jul 22, 2019 at 06:34:22PM +, Nadav Amit wrote:
> > On Jul 22, 2019, at 11:21 AM, Peter Zijlstra wrote:
> >
> > On Thu, Jul 18, 2019 at 05:58:29PM -0700, Nadav Amit wrote:
> >> +/*
> >> + * Call a function on all processors. May be used during early boot while
> >> + *
> On Jul 22, 2019, at 11:51 AM, Thomas Gleixner wrote:
>
> On Mon, 22 Jul 2019, Nadav Amit wrote:
>>> On Jul 22, 2019, at 11:37 AM, Thomas Gleixner wrote:
>>>
>>> On Mon, 22 Jul 2019, Peter Zijlstra wrote:
>>>
On Thu, Jul 18, 2019 at 05:58:29PM -0700, Nadav Amit wrote:
> +/*
> +
On Mon, 22 Jul 2019, Nadav Amit wrote:
> > On Jul 22, 2019, at 11:37 AM, Thomas Gleixner wrote:
> >
> > On Mon, 22 Jul 2019, Peter Zijlstra wrote:
> >
> >> On Thu, Jul 18, 2019 at 05:58:29PM -0700, Nadav Amit wrote:
> >>> +/*
> >>> + * Call a function on all processors. May be used during
> On Jul 22, 2019, at 11:16 AM, Peter Zijlstra wrote:
>
> On Fri, Jul 19, 2019 at 11:23:06AM -0700, Dave Hansen wrote:
>> On 7/18/19 5:58 PM, Nadav Amit wrote:
>>> @@ -624,16 +622,11 @@ EXPORT_SYMBOL(on_each_cpu);
>>> void on_each_cpu_mask(const struct cpumask *mask, smp_call_func_t func,
>>>
> On Jul 22, 2019, at 11:37 AM, Thomas Gleixner wrote:
>
> On Mon, 22 Jul 2019, Peter Zijlstra wrote:
>
>> On Thu, Jul 18, 2019 at 05:58:29PM -0700, Nadav Amit wrote:
>>> +/*
>>> + * Call a function on all processors. May be used during early boot while
>>> + * early_boot_irqs_disabled is set.
On Mon, 22 Jul 2019, Peter Zijlstra wrote:
> On Thu, Jul 18, 2019 at 05:58:29PM -0700, Nadav Amit wrote:
> > +/*
> > + * Call a function on all processors. May be used during early boot while
> > + * early_boot_irqs_disabled is set.
> > + */
> > +static inline void on_each_cpu(smp_call_func_t
> On Jul 22, 2019, at 11:21 AM, Peter Zijlstra wrote:
>
> On Thu, Jul 18, 2019 at 05:58:29PM -0700, Nadav Amit wrote:
>> +/*
>> + * Call a function on all processors. May be used during early boot while
>> + * early_boot_irqs_disabled is set.
>> + */
>> +static inline void
On Thu, Jul 18, 2019 at 05:58:29PM -0700, Nadav Amit wrote:
> +/*
> + * Call a function on all processors. May be used during early boot while
> + * early_boot_irqs_disabled is set.
> + */
> +static inline void on_each_cpu(smp_call_func_t func, void *info, int wait)
> +{
> +
On Fri, Jul 19, 2019 at 11:23:06AM -0700, Dave Hansen wrote:
> On 7/18/19 5:58 PM, Nadav Amit wrote:
> > @@ -624,16 +622,11 @@ EXPORT_SYMBOL(on_each_cpu);
> > void on_each_cpu_mask(const struct cpumask *mask, smp_call_func_t func,
> > void *info, bool wait)
> > {
> > - int
On 7/18/19 5:58 PM, Nadav Amit wrote:
> @@ -624,16 +622,11 @@ EXPORT_SYMBOL(on_each_cpu);
> void on_each_cpu_mask(const struct cpumask *mask, smp_call_func_t func,
> void *info, bool wait)
> {
> - int cpu = get_cpu();
> + preempt_disable();
>
> -
Currently, on_each_cpu() and similar functions do not exploit the
potential of concurrency: the function is first executed remotely and
only then it is executed locally. Functions such as TLB flush can take
considerable time, so this provides an opportunity for performance
optimization.
To do so,
14 matches
Mail list logo