[this_cpu_xx 04/11] Use this_cpu ops for network statistics

From: cl
Date: Fri Jun 05 2009 - 18:29:02 EST


Signed-off-by: Christoph Lameter <cl@xxxxxxxxxxxxxxxxxxxx>

---
include/net/neighbour.h | 7 +------
include/net/netfilter/nf_conntrack.h | 9 ++-------
2 files changed, 3 insertions(+), 13 deletions(-)

Index: linux-2.6/include/net/neighbour.h
===================================================================
--- linux-2.6.orig/include/net/neighbour.h 2009-06-03 16:23:29.000000000 -0500
+++ linux-2.6/include/net/neighbour.h 2009-06-03 16:36:23.000000000 -0500
@@ -89,12 +89,7 @@ struct neigh_statistics
unsigned long unres_discards; /* number of unresolved drops */
};

-#define NEIGH_CACHE_STAT_INC(tbl, field) \
- do { \
- preempt_disable(); \
- (per_cpu_ptr((tbl)->stats, smp_processor_id())->field)++; \
- preempt_enable(); \
- } while (0)
+#define NEIGH_CACHE_STAT_INC(tbl, field) this_cpu_inc((tbl)->stats->field)

struct neighbour
{
Index: linux-2.6/include/net/netfilter/nf_conntrack.h
===================================================================
--- linux-2.6.orig/include/net/netfilter/nf_conntrack.h 2009-06-03 16:23:29.000000000 -0500
+++ linux-2.6/include/net/netfilter/nf_conntrack.h 2009-06-03 16:37:17.000000000 -0500
@@ -291,14 +291,9 @@ extern int nf_conntrack_set_hashsize(con
extern unsigned int nf_conntrack_htable_size;
extern unsigned int nf_conntrack_max;

-#define NF_CT_STAT_INC(net, count) \
- (per_cpu_ptr((net)->ct.stat, raw_smp_processor_id())->count++)
+#define NF_CT_STAT_INC(net, count) __this_cpu_inc((net)->ct.stat->count)
#define NF_CT_STAT_INC_ATOMIC(net, count) \
-do { \
- local_bh_disable(); \
- per_cpu_ptr((net)->ct.stat, raw_smp_processor_id())->count++; \
- local_bh_enable(); \
-} while (0)
+ this_cpu_inc((net)->ct.stat->count)

#define MODULE_ALIAS_NFCT_HELPER(helper) \
MODULE_ALIAS("nfct-helper-" helper)

--
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/