net: core: use this_cpu_ptr per-cpu helper
Subsystems (2)
PATCH v2 1/9 net: core: use this_cpu_ptr per-cpu helper
From: Shan Wei <[email protected]>
Signed-off-by Shan Wei <[email protected]>
Reviewed-by Christoph Lameter <[email protected]>
--- net/core/flow.c | 4 +--- 1 files changed, 1 insertions(+), 3 deletions(-)
net/core/flow.c +1 -3
@@ -327,11 +327,9 @@ static void flow_cache_flush_tasklet(unsigned long data)static void flow_cache_flush_per_cpu (void *data) {struct flow_flush_info *info = data; -int cpu;struct tasklet_struct *tasklet; - cpu =smp_processor_id (); - tasklet = &per_cpu_ptr (info->cache->percpu, cpu)->flush_tasklet; + tasklet = &this_cpu_ptr (info->cache->percpu)->flush_tasklet; tasklet->data = (unsigned long )info;tasklet_schedule (tasklet); }
Signature · 1 line
1.7.1
net/core/flow.c static void flow_cache_flush_tasklet(unsigned long data) · line 332
Quoted 11 lines · Shan Wei
+++
b/net/core/flow.cnet/core/flow.c +1
-3@@ -327,11 +327,9 @@ static void flow_cache_flush_tasklet(unsigned long data)static void flow_cache_flush_per_cpu (void *data) {struct flow_flush_info *info = data; -int cpu;struct tasklet_struct *tasklet; - cpu =smp_processor_id (); - tasklet = &per_cpu_ptr (info->cache->percpu, cpu)->flush_tasklet; + tasklet = &this_cpu_ptr (info->cache->percpu)->flush_tasklet
Another case for the use of this_cpu_read
Quoted 9 lines · Christoph Lameter
Quoted 8 lines · Shan Wei
+++
b/net/core/flow.cnet/core/flow.c +0
-1@@ -327,11 +327,9 @@ static void flow_cache_flush_tasklet(unsigned long data)static void flow_cache_flush_per_cpu (void *data) {struct flow_flush_info *info = data; -int cpu;struct tasklet_struct *tasklet;
Quoted 5 lines
net/core/flow.c static void flow_cache_flush_tasklet(unsigned long data)
Quoted 3 lines
net/core/flow.c +1
-2- cpu =smp_processor_id (); - tasklet = &per_cpu_ptr (info->cache->percpu, cpu)->flush_tasklet; + tasklet = &this_cpu_ptr (info->cache->percpu)->flush_taskletAnother case for the use of
this_cpu_read
Actually, smp_processor_id() is used if either preemtion is off or in a thread that is bound to the current cpu. So all code that uses smp_processor_id() should be able to use __this_cpu_read instead of this_cpu_read.
In this case, flow_cache_flush_per_cpu() is called via smp_call_function(), so it is bound on the current cpu.