linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Lameter <cl@linux.com>
To: Tejun Heo <tj@kernel.org>
Cc: akpm@linuxfoundation.org, rostedt@goodmis.org,
	linux-kernel@vger.kernel.org, Ingo Molnar <mingo@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Thomas Gleixner <tglx@linutronix.de>,
	akpm@linux-foundation.org, linux-mm@kvack.org
Subject: [PATCH 01/41] mm: Replace __get_cpu_var uses with this_cpu_ptr
Date: Fri, 17 Jan 2014 09:18:13 -0600	[thread overview]
Message-ID: <20140117151834.455697264@linux.com> (raw)
In-Reply-To: 20140117151812.770437629@linux.com

[-- Attachment #1: this_mm --]
[-- Type: text/plain, Size: 5731 bytes --]

Replace places where __get_cpu_var() is used for an address calculation
with this_cpu_ptr().

Cc: akpm@linux-foundation.org
Cc: linux-mm@kvack.org
Signed-off-by: Christoph Lameter <cl@linux.com>

Index: linux/lib/radix-tree.c
===================================================================
--- linux.orig/lib/radix-tree.c	2013-12-18 21:50:02.550389590 -0600
+++ linux/lib/radix-tree.c	2013-12-18 21:50:02.530389966 -0600
@@ -221,7 +221,7 @@
 		 * succeed in getting a node here (and never reach
 		 * kmem_cache_alloc)
 		 */
-		rtp = &__get_cpu_var(radix_tree_preloads);
+		rtp = this_cpu_ptr(&radix_tree_preloads);
 		if (rtp->nr) {
 			ret = rtp->nodes[rtp->nr - 1];
 			rtp->nodes[rtp->nr - 1] = NULL;
@@ -277,14 +277,14 @@
 	int ret = -ENOMEM;
 
 	preempt_disable();
-	rtp = &__get_cpu_var(radix_tree_preloads);
+	rtp = this_cpu_ptr(&radix_tree_preloads);
 	while (rtp->nr < ARRAY_SIZE(rtp->nodes)) {
 		preempt_enable();
 		node = kmem_cache_alloc(radix_tree_node_cachep, gfp_mask);
 		if (node == NULL)
 			goto out;
 		preempt_disable();
-		rtp = &__get_cpu_var(radix_tree_preloads);
+		rtp = this_cpu_ptr(&radix_tree_preloads);
 		if (rtp->nr < ARRAY_SIZE(rtp->nodes))
 			rtp->nodes[rtp->nr++] = node;
 		else
Index: linux/mm/memcontrol.c
===================================================================
--- linux.orig/mm/memcontrol.c	2013-12-18 21:50:02.550389590 -0600
+++ linux/mm/memcontrol.c	2013-12-18 21:50:02.534389891 -0600
@@ -2432,7 +2432,7 @@
  */
 static void drain_local_stock(struct work_struct *dummy)
 {
-	struct memcg_stock_pcp *stock = &__get_cpu_var(memcg_stock);
+	struct memcg_stock_pcp *stock = this_cpu_ptr(&memcg_stock);
 	drain_stock(stock);
 	clear_bit(FLUSHING_CACHED_CHARGE, &stock->flags);
 }
Index: linux/mm/memory-failure.c
===================================================================
--- linux.orig/mm/memory-failure.c	2013-12-18 21:50:02.550389590 -0600
+++ linux/mm/memory-failure.c	2013-12-18 21:50:02.534389891 -0600
@@ -1286,7 +1286,7 @@
 	unsigned long proc_flags;
 	int gotten;
 
-	mf_cpu = &__get_cpu_var(memory_failure_cpu);
+	mf_cpu = this_cpu_ptr(&memory_failure_cpu);
 	for (;;) {
 		spin_lock_irqsave(&mf_cpu->lock, proc_flags);
 		gotten = kfifo_get(&mf_cpu->fifo, &entry);
Index: linux/mm/page-writeback.c
===================================================================
--- linux.orig/mm/page-writeback.c	2013-12-18 21:50:02.550389590 -0600
+++ linux/mm/page-writeback.c	2013-12-18 21:50:02.538389816 -0600
@@ -1628,7 +1628,7 @@
 	 * 1000+ tasks, all of them start dirtying pages at exactly the same
 	 * time, hence all honoured too large initial task->nr_dirtied_pause.
 	 */
-	p =  &__get_cpu_var(bdp_ratelimits);
+	p =  this_cpu_ptr(&bdp_ratelimits);
 	if (unlikely(current->nr_dirtied >= ratelimit))
 		*p = 0;
 	else if (unlikely(*p >= ratelimit_pages)) {
@@ -1640,7 +1640,7 @@
 	 * short-lived tasks (eg. gcc invocations in a kernel build) escaping
 	 * the dirty throttling and livelock other long-run dirtiers.
 	 */
-	p = &__get_cpu_var(dirty_throttle_leaks);
+	p = this_cpu_ptr(&dirty_throttle_leaks);
 	if (*p > 0 && current->nr_dirtied < ratelimit) {
 		unsigned long nr_pages_dirtied;
 		nr_pages_dirtied = min(*p, ratelimit - current->nr_dirtied);
Index: linux/mm/swap.c
===================================================================
--- linux.orig/mm/swap.c	2013-12-18 21:50:02.550389590 -0600
+++ linux/mm/swap.c	2013-12-18 21:50:02.538389816 -0600
@@ -409,7 +409,7 @@
 
 		page_cache_get(page);
 		local_irq_save(flags);
-		pvec = &__get_cpu_var(lru_rotate_pvecs);
+		pvec = this_cpu_ptr(&lru_rotate_pvecs);
 		if (!pagevec_add(pvec, page))
 			pagevec_move_tail(pvec);
 		local_irq_restore(flags);
Index: linux/mm/vmalloc.c
===================================================================
--- linux.orig/mm/vmalloc.c	2013-12-18 21:50:02.550389590 -0600
+++ linux/mm/vmalloc.c	2013-12-18 21:50:02.538389816 -0600
@@ -1488,7 +1488,7 @@
 	if (!addr)
 		return;
 	if (unlikely(in_interrupt())) {
-		struct vfree_deferred *p = &__get_cpu_var(vfree_deferred);
+		struct vfree_deferred *p = this_cpu_ptr(&vfree_deferred);
 		if (llist_add((struct llist_node *)addr, &p->list))
 			schedule_work(&p->wq);
 	} else
Index: linux/mm/slub.c
===================================================================
--- linux.orig/mm/slub.c	2013-12-18 21:50:02.550389590 -0600
+++ linux/mm/slub.c	2013-12-18 21:50:02.542389740 -0600
@@ -2176,7 +2176,7 @@
 
 	page = new_slab(s, flags, node);
 	if (page) {
-		c = __this_cpu_ptr(s->cpu_slab);
+		c = raw_cpu_ptr(s->cpu_slab);
 		if (c->page)
 			flush_slab(s, c);
 
@@ -2396,7 +2396,7 @@
 	 * and the retrieval of the tid.
 	 */
 	preempt_disable();
-	c = __this_cpu_ptr(s->cpu_slab);
+	c = this_cpu_ptr(s->cpu_slab);
 
 	/*
 	 * The transaction ids are globally unique per cpu and per operation on
@@ -2651,7 +2651,7 @@
 	 * during the cmpxchg then the free will succedd.
 	 */
 	preempt_disable();
-	c = __this_cpu_ptr(s->cpu_slab);
+	c = this_cpu_ptr(s->cpu_slab);
 
 	tid = c->tid;
 	preempt_enable();
Index: linux/mm/vmstat.c
===================================================================
--- linux.orig/mm/vmstat.c	2013-12-18 21:50:02.550389590 -0600
+++ linux/mm/vmstat.c	2013-12-18 21:50:13.586182025 -0600
@@ -489,7 +489,7 @@
 			continue;
 
 		if (__this_cpu_read(p->pcp.count))
-			drain_zone_pages(zone, __this_cpu_ptr(&p->pcp));
+			drain_zone_pages(zone, this_cpu_ptr(&p->pcp));
 #endif
 	}
 	fold_diff(global_diff);
@@ -1218,7 +1218,7 @@
 static void vmstat_update(struct work_struct *w)
 {
 	refresh_cpu_vm_stats();
-	schedule_delayed_work(&__get_cpu_var(vmstat_work),
+	schedule_delayed_work(this_cpu_ptr(&vmstat_work),
 		round_jiffies_relative(sysctl_stat_interval));
 }
 


  reply	other threads:[~2014-01-17 15:18 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-17 15:18 [PATCH 00/41] percpu: Consistent per cpu operations V3 Christoph Lameter
2014-01-17 15:18 ` Christoph Lameter [this message]
2014-01-17 15:18 ` [PATCH 02/41] tracing: Replace __get_cpu_var uses with this_cpu_ptr Christoph Lameter
2014-01-17 15:18 ` [PATCH 03/41] percpu: Replace __get_cpu_var " Christoph Lameter
2014-01-17 15:18 ` [PATCH 04/41] kernel misc: Replace __get_cpu_var uses Christoph Lameter
2014-01-17 15:18 ` [PATCH 05/41] drivers/char/random: " Christoph Lameter
2014-01-17 15:18 ` [PATCH 06/41] drivers/cpuidle: Replace __get_cpu_var uses for address calculation Christoph Lameter
2014-01-17 15:18 ` [PATCH 07/41] drivers/oprofile: " Christoph Lameter
2014-01-17 15:18 ` [PATCH 08/41] drivers/leds: Replace __get_cpu_var use through this_cpu_ptr Christoph Lameter
2014-01-17 15:18 ` [PATCH 09/41] drivers/clocksource: Replace __get_cpu_var used for address calculation Christoph Lameter
2014-01-17 15:18 ` [PATCH 10/41] staging/zsmalloc: Replace instances of using __get_cpu_var " Christoph Lameter
2014-01-17 15:18 ` [PATCH 11/41] parisc: Replace __get_cpu_var uses " Christoph Lameter
2014-01-17 15:18 ` [PATCH 12/41] metag: " Christoph Lameter
2014-01-17 15:18 ` [PATCH 13/41] drivers/net/ethernet/tile: " Christoph Lameter
2014-01-17 15:18 ` [PATCH 14/41] percpu: Add raw_cpu_ops Christoph Lameter
2014-01-17 15:18 ` [PATCH 15/41] mm: Use raw_cpu ops for determining current NUMA node Christoph Lameter
2014-01-17 15:18 ` [PATCH 16/41] modules: Use raw_cpu_write for initialization of per cpu refcount Christoph Lameter
2014-01-17 15:18 ` [PATCH 17/41] net: Replace __this_cpu_inc in route.c with raw_cpu_inc Christoph Lameter
2014-01-18  3:05   ` David Miller
2014-01-17 15:18 ` [PATCH 18/41] percpu: Add preemption checks to __this_cpu ops Christoph Lameter
2014-01-17 15:18 ` [PATCH 19/41] time: Replace __get_cpu_var uses Christoph Lameter
2014-01-17 15:18 ` [PATCH 20/41] scheduler: Replace __get_cpu_var with this_cpu_ptr Christoph Lameter
2014-01-17 15:18 ` [PATCH 21/41] block: Replace __this_cpu_ptr with raw_cpu_ptr Christoph Lameter
2014-01-17 15:18 ` [PATCH 22/41] rcu: Replace __this_cpu_ptr uses " Christoph Lameter
2014-01-17 15:18 ` [PATCH 23/41] watchdog: Replace __raw_get_cpu_var uses Christoph Lameter
2014-01-17 15:18 ` [PATCH 24/41] net: Replace get_cpu_var through this_cpu_ptr Christoph Lameter
2014-01-18  3:05   ` David Miller
2014-01-17 15:18 ` [PATCH 25/41] md: Replace __this_cpu_ptr with raw_cpu_ptr Christoph Lameter
2014-01-17 15:18 ` [PATCH 26/41] irqchips: Replace __this_cpu_ptr uses Christoph Lameter
2014-01-17 15:18 ` [PATCH 27/41] x86: Replace __get_cpu_var uses Christoph Lameter
2014-01-17 16:29   ` H. Peter Anvin
2014-01-17 15:18 ` [PATCH 28/41] arm: Replace __this_cpu_ptr with raw_cpu_ptr Christoph Lameter
2014-01-17 15:18 ` [PATCH 29/41] MIPS: Replace __get_cpu_var uses in FPU emulator Christoph Lameter
2014-01-17 15:18 ` [PATCH 30/41] mips: Replace __get_cpu_var uses Christoph Lameter
2014-01-17 15:18 ` [PATCH 31/41] s390: rename __this_cpu_ptr to raw_cpu_ptr Christoph Lameter
2014-01-17 15:18 ` [PATCH 32/41] ia64: Replace __get_cpu_var uses Christoph Lameter
2014-01-17 15:18 ` [PATCH 33/41] powerpc: " Christoph Lameter
2014-01-17 15:18 ` [PATCH 34/41] sparc: " Christoph Lameter
2014-01-17 15:18 ` [PATCH 35/41] tile: " Christoph Lameter
2014-01-17 15:18 ` [PATCH 36/41] blackfin: " Christoph Lameter
2014-01-17 15:18 ` [PATCH 37/41] avr32: Replace __get_cpu_var with __this_cpu_write Christoph Lameter
2014-01-17 15:18 ` [PATCH 38/41] alpha: Replace __get_cpu_var Christoph Lameter
2014-01-17 15:18 ` [PATCH 39/41] sh: Replace __get_cpu_var uses Christoph Lameter
2014-01-17 15:18 ` [PATCH 40/41] Remove __get_cpu_var and __raw_get_cpu_var macros [only in 3.15] Christoph Lameter
2014-01-17 15:18 ` [PATCH 41/41] percpu: Remove __this_cpu_ptr Christoph Lameter
  -- strict thread matches above, loose matches on Subject: below --
2013-12-03 23:32 [PATCH 00/41] percpu: Consistent per cpu operations V1 Christoph Lameter
2013-12-03 23:32 ` [PATCH 01/41] mm: Replace __get_cpu_var uses with this_cpu_ptr Christoph Lameter
2014-08-26 17:59   ` Tejun Heo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20140117151834.455697264@linux.com \
    --to=cl@linux.com \
    --cc=akpm@linux-foundation.org \
    --cc=akpm@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=tglx@linutronix.de \
    --cc=tj@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).