search for: __smp_call_function_many

Displaying 16 results from an estimated 16 matches for "__smp_call_function_many".

2019 Jul 22
2
[PATCH v3 4/9] x86/mm/tlb: Flush remote and local TLBs concurrently
...Nadav Amit wrote: > @@ -709,8 +716,9 @@ void native_flush_tlb_others(const struct cpumask *cpumask, > * doing a speculative memory access. > */ > if (info->freed_tables) { > - smp_call_function_many(cpumask, flush_tlb_func_remote, > - (void *)info, 1); > + __smp_call_function_many(cpumask, flush_tlb_func_remote, > + flush_tlb_func_local, > + (void *)info, 1); > } else { > /* > * Although we could have used on_each_cpu_cond_mask(), > @@ -737,7 +745,8 @@ void native_flush_tlb_others(const struct cpumask *cpumask, > if (tlb_is_not_laz...
2019 Jul 22
2
[PATCH v3 4/9] x86/mm/tlb: Flush remote and local TLBs concurrently
...Nadav Amit wrote: > @@ -709,8 +716,9 @@ void native_flush_tlb_others(const struct cpumask *cpumask, > * doing a speculative memory access. > */ > if (info->freed_tables) { > - smp_call_function_many(cpumask, flush_tlb_func_remote, > - (void *)info, 1); > + __smp_call_function_many(cpumask, flush_tlb_func_remote, > + flush_tlb_func_local, > + (void *)info, 1); > } else { > /* > * Although we could have used on_each_cpu_cond_mask(), > @@ -737,7 +745,8 @@ void native_flush_tlb_others(const struct cpumask *cpumask, > if (tlb_is_not_laz...
2019 Jul 22
0
[PATCH v3 4/9] x86/mm/tlb: Flush remote and local TLBs concurrently
...; @@ -709,8 +716,9 @@ void native_flush_tlb_others(const struct cpumask *cpumask, >> * doing a speculative memory access. >> */ >> if (info->freed_tables) { >> - smp_call_function_many(cpumask, flush_tlb_func_remote, >> - (void *)info, 1); >> + __smp_call_function_many(cpumask, flush_tlb_func_remote, >> + flush_tlb_func_local, >> + (void *)info, 1); >> } else { >> /* >> * Although we could have used on_each_cpu_cond_mask(), >> @@ -737,7 +745,8 @@ void native_flush_tlb_others(const struct cpumask *cpumask, >&g...
2019 Jun 13
4
[PATCH 4/9] x86/mm/tlb: Flush remote and local TLBs concurrently
...cpumask *cpumask, * doing a speculative memory access. */ if (info->freed_tables) - smp_call_function_many(cpumask, flush_tlb_func_remote, - (void *)info, 1); - else - on_each_cpu_cond_mask(tlb_is_not_lazy, flush_tlb_func_remote, - (void *)info, 1, GFP_ATOMIC, cpumask); + __smp_call_function_many(cpumask, flush_tlb_func_remote, + flush_tlb_func_local, (void *)info, 1); + else { + /* + * Although we could have used on_each_cpu_cond_mask(), + * open-coding it has several performance advantages: (1) we can + * use specialized functions for remote and local flushes; (2) + * no nee...
2019 Jun 13
4
[PATCH 4/9] x86/mm/tlb: Flush remote and local TLBs concurrently
...cpumask *cpumask, * doing a speculative memory access. */ if (info->freed_tables) - smp_call_function_many(cpumask, flush_tlb_func_remote, - (void *)info, 1); - else - on_each_cpu_cond_mask(tlb_is_not_lazy, flush_tlb_func_remote, - (void *)info, 1, GFP_ATOMIC, cpumask); + __smp_call_function_many(cpumask, flush_tlb_func_remote, + flush_tlb_func_local, (void *)info, 1); + else { + /* + * Although we could have used on_each_cpu_cond_mask(), + * open-coding it has several performance advantages: (1) we can + * use specialized functions for remote and local flushes; (2) + * no nee...
2019 Jul 19
5
[PATCH v3 0/9] x86: Concurrent TLB flushes
[ Cover-letter is identical to v2, including benchmark results, excluding the change log. ] Currently, local and remote TLB flushes are not performed concurrently, which introduces unnecessary overhead - each INVLPG can take 100s of cycles. This patch-set allows TLB flushes to be run concurrently: first request the remote CPUs to initiate the flush, then run it locally, and finally wait for
2019 Jun 25
0
[PATCH 4/9] x86/mm/tlb: Flush remote and local TLBs concurrently
...ive memory access. > */ > if (info->freed_tables) > - smp_call_function_many(cpumask, flush_tlb_func_remote, > - (void *)info, 1); > - else > - on_each_cpu_cond_mask(tlb_is_not_lazy, flush_tlb_func_remote, > - (void *)info, 1, GFP_ATOMIC, cpumask); > + __smp_call_function_many(cpumask, flush_tlb_func_remote, > + flush_tlb_func_local, (void *)info, 1); > + else { I prefer brackets be added for 'if' blocks like this since it doesn't take up any meaningful space and makes it less prone to compile errors. > + /* > + * Although we could have...
2019 Jun 26
2
[PATCH 4/9] x86/mm/tlb: Flush remote and local TLBs concurrently
...*/ >> if (info->freed_tables) >> - smp_call_function_many(cpumask, flush_tlb_func_remote, >> - (void *)info, 1); >> - else >> - on_each_cpu_cond_mask(tlb_is_not_lazy, flush_tlb_func_remote, >> - (void *)info, 1, GFP_ATOMIC, cpumask); >> + __smp_call_function_many(cpumask, flush_tlb_func_remote, >> + flush_tlb_func_local, (void *)info, 1); >> + else { > > I prefer brackets be added for 'if' blocks like this since it doesn't > take up any meaningful space and makes it less prone to compile errors. If you say so. >...
2019 Jun 26
2
[PATCH 4/9] x86/mm/tlb: Flush remote and local TLBs concurrently
...*/ >> if (info->freed_tables) >> - smp_call_function_many(cpumask, flush_tlb_func_remote, >> - (void *)info, 1); >> - else >> - on_each_cpu_cond_mask(tlb_is_not_lazy, flush_tlb_func_remote, >> - (void *)info, 1, GFP_ATOMIC, cpumask); >> + __smp_call_function_many(cpumask, flush_tlb_func_remote, >> + flush_tlb_func_local, (void *)info, 1); >> + else { > > I prefer brackets be added for 'if' blocks like this since it doesn't > take up any meaningful space and makes it less prone to compile errors. If you say so. >...
2019 Jul 19
0
[PATCH v3 4/9] x86/mm/tlb: Flush remote and local TLBs concurrently
...p_call_function_many(cpumask, flush_tlb_func_remote, @@ -709,8 +716,9 @@ void native_flush_tlb_others(const struct cpumask *cpumask, * doing a speculative memory access. */ if (info->freed_tables) { - smp_call_function_many(cpumask, flush_tlb_func_remote, - (void *)info, 1); + __smp_call_function_many(cpumask, flush_tlb_func_remote, + flush_tlb_func_local, + (void *)info, 1); } else { /* * Although we could have used on_each_cpu_cond_mask(), @@ -737,7 +745,8 @@ void native_flush_tlb_others(const struct cpumask *cpumask, if (tlb_is_not_lazy(cpu)) __cpumask_set_cpu(cpu,...
2019 May 31
2
[RFC PATCH v2 04/12] x86/mm/tlb: Flush remote and local TLBs concurrently
...cpumask *cpumask, * doing a speculative memory access. */ if (info->freed_tables) - smp_call_function_many(cpumask, flush_tlb_func_remote, - (void *)info, 1); - else - on_each_cpu_cond_mask(tlb_is_not_lazy, flush_tlb_func_remote, - (void *)info, 1, GFP_ATOMIC, cpumask); + __smp_call_function_many(cpumask, flush_tlb_func_remote, + flush_tlb_func_local, (void *)info, 1); + else { + /* + * Although we could have used on_each_cpu_cond_mask(), + * open-coding it has several performance advantages: (1) we can + * use specialized functions for remote and local flushes; (2) + * no nee...
2019 May 31
2
[RFC PATCH v2 04/12] x86/mm/tlb: Flush remote and local TLBs concurrently
...cpumask *cpumask, * doing a speculative memory access. */ if (info->freed_tables) - smp_call_function_many(cpumask, flush_tlb_func_remote, - (void *)info, 1); - else - on_each_cpu_cond_mask(tlb_is_not_lazy, flush_tlb_func_remote, - (void *)info, 1, GFP_ATOMIC, cpumask); + __smp_call_function_many(cpumask, flush_tlb_func_remote, + flush_tlb_func_local, (void *)info, 1); + else { + /* + * Although we could have used on_each_cpu_cond_mask(), + * open-coding it has several performance advantages: (1) we can + * use specialized functions for remote and local flushes; (2) + * no nee...
2019 Jul 02
0
[PATCH v2 4/9] x86/mm/tlb: Flush remote and local TLBs concurrently
...p_call_function_many(cpumask, flush_tlb_func_remote, @@ -709,8 +721,9 @@ void native_flush_tlb_others(const struct cpumask *cpumask, * doing a speculative memory access. */ if (info->freed_tables) { - smp_call_function_many(cpumask, flush_tlb_func_remote, - (void *)info, 1); + __smp_call_function_many(cpumask, flush_tlb_func_remote, + __flush_tlb_func_local, + (void *)info, 1); } else { /* * Although we could have used on_each_cpu_cond_mask(), @@ -737,7 +750,8 @@ void native_flush_tlb_others(const struct cpumask *cpumask, if (tlb_is_not_lazy(cpu)) __cpumask_set_cpu(cp...
2019 May 25
3
[RFC PATCH 5/6] x86/mm/tlb: Flush remote and local TLBs concurrently
...cpumask *cpumask, * doing a speculative memory access. */ if (info->freed_tables) - smp_call_function_many(cpumask, flush_tlb_func_remote, - (void *)info, 1); - else - on_each_cpu_cond_mask(tlb_is_not_lazy, flush_tlb_func_remote, - (void *)info, 1, GFP_ATOMIC, cpumask); + __smp_call_function_many(cpumask, flush_tlb_func_remote, + flush_tlb_func_local, (void *)info, 1); + else { + /* + * Although we could have used on_each_cpu_cond_mask(), + * open-coding it has several performance advantages: (1) we can + * use specialized functions for remote and local flushes; (2) + * no nee...
2019 May 25
3
[RFC PATCH 5/6] x86/mm/tlb: Flush remote and local TLBs concurrently
...cpumask *cpumask, * doing a speculative memory access. */ if (info->freed_tables) - smp_call_function_many(cpumask, flush_tlb_func_remote, - (void *)info, 1); - else - on_each_cpu_cond_mask(tlb_is_not_lazy, flush_tlb_func_remote, - (void *)info, 1, GFP_ATOMIC, cpumask); + __smp_call_function_many(cpumask, flush_tlb_func_remote, + flush_tlb_func_local, (void *)info, 1); + else { + /* + * Although we could have used on_each_cpu_cond_mask(), + * open-coding it has several performance advantages: (1) we can + * use specialized functions for remote and local flushes; (2) + * no nee...
2019 Jul 02
2
[PATCH v2 0/9] x86: Concurrent TLB flushes
Currently, local and remote TLB flushes are not performed concurrently, which introduces unnecessary overhead - each INVLPG can take 100s of cycles. This patch-set allows TLB flushes to be run concurrently: first request the remote CPUs to initiate the flush, then run it locally, and finally wait for the remote CPUs to finish their work. In addition, there are various small optimizations to avoid