[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <0000013dd1a300fb-1fbb26a9-77a7-4c24-95ff-f088309206d9-000000@email.amazonses.com>
Date: Wed, 3 Apr 2013 20:42:33 +0000
From: Christoph Lameter <cl@...ux.com>
To: Tejun Heo <htejun@...il.com>
cc: RongQing Li <roy.qing.li@...il.com>,
Shan Wei <davidshan@...cent.com>, netdev@...r.kernel.org,
Eric Dumazet <eric.dumazet@...il.com>
Subject: [PERCPU] Remove & in front of this_cpu_ptr
Subject: percpu: Remove & in front of this_cpu_ptr
Both
this_cpu_ptr(&percpu_pointer->field)
[Add Offset in percpu pointer to the field offset in the struct
and then add to the local percpu base]
as well as
&this_cpu_ptr(percpu_pointer)->field
[Add percpu variable offset to local percpu base to form an address
and then add the field offset to the address].
are correct. However, the latter looks a bit more complicated.
The first one is easier to understand. The second one may be
more difficult for the compiler to optimize as well.
Convert all of them to this_cpu_ptr(&percpu_pointer->field).
Signed-off-by: Christoph Lameter <cl@...ux.com>
Index: linux/fs/gfs2/rgrp.c
===================================================================
--- linux.orig/fs/gfs2/rgrp.c 2013-04-03 15:25:22.576562629 -0500
+++ linux/fs/gfs2/rgrp.c 2013-04-03 15:26:43.045773676 -0500
@@ -1726,7 +1726,7 @@ static bool gfs2_rgrp_congested(const st
s64 var;
preempt_disable();
- st = &this_cpu_ptr(sdp->sd_lkstats)->lkstats[LM_TYPE_RGRP];
+ st = this_cpu_ptr(&sdp->sd_lkstats->lkstats[LM_TYPE_RGRP]);
r_srttb = st->stats[GFS2_LKS_SRTTB];
r_dcount = st->stats[GFS2_LKS_DCOUNT];
var = st->stats[GFS2_LKS_SRTTVARB] +
Index: linux/mm/page_alloc.c
===================================================================
--- linux.orig/mm/page_alloc.c 2013-04-03 15:25:22.576562629 -0500
+++ linux/mm/page_alloc.c 2013-04-03 15:30:02.124769119 -0500
@@ -1342,7 +1342,7 @@ void free_hot_cold_page(struct page *pag
migratetype = MIGRATE_MOVABLE;
}
- pcp = &this_cpu_ptr(zone->pageset)->pcp;
+ pcp = this_cpu_ptr(&zone->pageset->pcp);
if (cold)
list_add_tail(&page->lru, &pcp->lists[migratetype]);
else
@@ -1484,7 +1484,7 @@ again:
struct list_head *list;
local_irq_save(flags);
- pcp = &this_cpu_ptr(zone->pageset)->pcp;
+ pcp = this_cpu_ptr(&zone->pageset->pcp);
list = &pcp->lists[migratetype];
if (list_empty(list)) {
pcp->count += rmqueue_bulk(zone, 0,
Index: linux/net/core/flow.c
===================================================================
--- linux.orig/net/core/flow.c 2013-04-03 15:25:22.576562629 -0500
+++ linux/net/core/flow.c 2013-04-03 15:26:43.045773676 -0500
@@ -328,7 +328,7 @@ static void flow_cache_flush_per_cpu(voi
struct flow_flush_info *info = data;
struct tasklet_struct *tasklet;
- tasklet = &this_cpu_ptr(info->cache->percpu)->flush_tasklet;
+ tasklet = this_cpu_ptr(&info->cache->percpu->flush_tasklet);
tasklet->data = (unsigned long)info;
tasklet_schedule(tasklet);
}
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists