linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Lameter <cl@linux.com>
To: Pekka Enberg <penberg@kernel.org>
Cc: Christian Kujau <lists@nerdbynature.de>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Eric Dumazet <eric.dumazet@gmail.com>,
	Markus Trippelsdorf <markus@trippelsdorf.de>,
	"Alex,Shi" <alex.shi@intel.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"linux-mm@kvack.org" <linux-mm@kvack.org>,
	Matt Mackall <mpm@selenic.com>,
	"netdev@vger.kernel.org" <netdev@vger.kernel.org>,
	Tejun Heo <tj@kernel.org>, David Rientjes <rientjes@google.com>
Subject: slub: use irqsafe_cpu_cmpxchg for put_cpu_partial
Date: Wed, 23 Nov 2011 09:14:38 -0600 (CST)	[thread overview]
Message-ID: <alpine.DEB.2.00.1111230907330.16139@router.home> (raw)
In-Reply-To: <CAOJsxLGWTRuwQ04Mg26fNhZEmo7yVXG5vSZgF7Q5GESCk65odA@mail.gmail.com>

On Wed, 23 Nov 2011, Pekka Enberg wrote:

> 2011/11/23 Christian Kujau <lists@nerdbynature.de>:
> > OK, with Christoph's patch applied, 3.2.0-rc2-00274-g6fe4c6d-dirty survives
> > on this machine, with the disk & cpu workload that caused the machine to
> > panic w/o the patch. Load was at 4-5 this time, which is expected for this
> > box. I'll run a few more tests later on, but it seems ok for now.
> >
> > I couldn't resist and ran "slabinfo" anyway (after the workload!) - the
> > box survived, nothing was printed in syslog either. Output attached.
>
> Christoph, Eric, would you mind sending me the final patches that
> Christian tested? Maybe CC David too for extra pair of eyes.

I think he only tested the patch that he showed us. Here is the patch
cleaned up. Do you Want me to feed you the debug fixes patch by patch as
well?

Subject: slub: use irqsafe_cpu_cmpxchg for put_cpu_partial

The cmpxchg must be irq safe. The fallback for this_cpu_cmpxchg only
disables preemption which results in per cpu partial page operation
potentially failing on non x86 platforms.

Signed-off-by: Christoph Lameter <cl@linux.com>

---
 mm/slub.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: linux-2.6/mm/slub.c
===================================================================
--- linux-2.6.orig/mm/slub.c	2011-11-23 09:10:48.000000000 -0600
+++ linux-2.6/mm/slub.c	2011-11-23 09:10:57.000000000 -0600
@@ -1969,7 +1969,7 @@ int put_cpu_partial(struct kmem_cache *s
 		page->pobjects = pobjects;
 		page->next = oldpage;

-	} while (this_cpu_cmpxchg(s->cpu_slab->partial, oldpage, page) != oldpage);
+	} while (irqsafe_cpu_cmpxchg(s->cpu_slab->partial, oldpage, page) != oldpage);
 	stat(s, CPU_PARTIAL_FREE);
 	return pobjects;
 }

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2011-11-23 15:14 UTC|newest]

Thread overview: 109+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-11-18  7:25 WARNING: at mm/slub.c:3357, kernel BUG at mm/slub.c:3413 Markus Trippelsdorf
2011-11-18  7:55 ` Markus Trippelsdorf
2011-11-18  8:43   ` Alex,Shi
2011-11-18  8:54     ` Markus Trippelsdorf
2011-11-18  8:57       ` Markus Trippelsdorf
2011-11-18 12:02       ` Markus Trippelsdorf
2011-11-21  0:44         ` Alex,Shi
2011-11-21  7:29           ` Markus Trippelsdorf
2011-11-21  8:05           ` Markus Trippelsdorf
2011-11-21  8:24             ` Markus Trippelsdorf
2011-11-21  8:56               ` Eric Dumazet
2011-11-21  9:16               ` Eric Dumazet
2011-11-21 13:15                 ` Markus Trippelsdorf
2011-11-21 14:16                   ` Eric Dumazet
2011-11-21 14:21                     ` Markus Trippelsdorf
2011-11-21 15:36                     ` Markus Trippelsdorf
2011-11-21 15:48                       ` Eric Dumazet
2011-11-21 16:10                         ` Markus Trippelsdorf
2011-11-21 16:34                           ` Markus Trippelsdorf
2011-11-22  8:36                             ` Markus Trippelsdorf
2011-12-19  3:21                               ` Eric W. Biederman
2011-12-19  9:19                                 ` Markus Trippelsdorf
2011-12-19  9:06                                   ` Eric W. Biederman
2011-11-21 16:52                           ` Eric Dumazet
2011-11-21 17:15                             ` Eric Dumazet
2011-11-21 17:35                               ` Markus Trippelsdorf
2011-11-21 18:39                                 ` Eric Dumazet
2011-11-21 18:52                                   ` Markus Trippelsdorf
2011-11-21 19:51                                     ` Markus Trippelsdorf
2011-11-21 20:27                                       ` Benjamin Herrenschmidt
2011-11-21 21:30                                         ` Pekka Enberg
2011-11-21 21:43                                           ` Christoph Lameter
2011-11-22  0:21                                         ` Christian Kujau
2011-11-22  0:42                                           ` Christian Kujau
2011-11-22  2:17                                           ` Benjamin Herrenschmidt
2011-11-22  8:37                                             ` Christian Kujau
2011-11-22  3:18                                           ` Christoph Lameter
2011-11-22  7:48                                             ` Eric Dumazet
2011-11-22  7:51                                               ` Markus Trippelsdorf
2011-11-22  8:27                                               ` Eric Dumazet
2011-11-23  7:13                                                 ` Markus Trippelsdorf
2011-11-23  7:20                                                   ` Eric Dumazet
2011-11-22  8:39                                               ` Christian Kujau
2011-11-22 22:16                                                 ` Benjamin Herrenschmidt
2011-11-22 22:31                                                   ` Eric Dumazet
2011-11-22 22:32                                                   ` Christoph Lameter
2011-11-22 21:58                                               ` Benjamin Herrenschmidt
2011-11-22 23:12                                                 ` Christian Kujau
2011-11-23  0:18                                                   ` Benjamin Herrenschmidt
2011-11-23  1:22                                                     ` Christian Kujau
2011-11-23  1:43                                                       ` Benjamin Herrenschmidt
2011-11-23  5:51                                                     ` Christian Kujau
2011-11-23  6:59                                                       ` Pekka Enberg
2011-11-23 15:14                                                         ` Christoph Lameter [this message]
2011-11-23 16:04                                                           ` slub: use irqsafe_cpu_cmpxchg for put_cpu_partial Eric Dumazet
2011-11-23 18:33                                                           ` Christian Kujau
2011-11-24  6:45                                                             ` Pekka Enberg
2011-11-23 23:15                                                           ` David Rientjes
2011-11-22  8:45                                             ` WARNING: at mm/slub.c:3357, kernel BUG at mm/slub.c:3413 Markus Trippelsdorf
2011-11-22  9:25                                               ` Eric Dumazet
2011-11-22  9:27                                                 ` Eric Dumazet
2011-11-22  9:38                                               ` Eric Dumazet
2011-11-22  9:46                                                 ` Eric Dumazet
2011-11-22 14:46                                                   ` Christoph Lameter
2011-11-22 14:52                                                     ` Eric Dumazet
2011-11-22 15:02                                                       ` Christoph Lameter
2011-11-22 15:07                                                         ` Christoph Lameter
2011-11-22 16:20                                                           ` Christoph Lameter
2011-11-22 16:32                                                             ` Eric Dumazet
2011-11-22 16:36                                                               ` Christoph Lameter
2011-11-22 16:41                                                                 ` Christoph Lameter
2011-11-22 16:53                                                                   ` slub: Lockout validation scans during freeing of object Christoph Lameter
2011-11-22 17:21                                                                     ` Eric Dumazet
2011-11-22 17:40                                                                       ` Christoph Lameter
2011-11-22 18:55                                                                         ` Markus Trippelsdorf
2011-11-22 19:20                                                                           ` Christoph Lameter
2011-11-22 19:32                                                                             ` Markus Trippelsdorf
2011-11-22 19:46                                                                               ` Christoph Lameter
2011-11-22 17:59                                                                       ` Christoph Lameter
2011-11-22 11:21                                                 ` WARNING: at mm/slub.c:3357, kernel BUG at mm/slub.c:3413 Markus Trippelsdorf
2011-11-22 14:50                                                   ` Christoph Lameter
2011-11-22 14:44                                                 ` Christoph Lameter
2011-11-21 15:51                       ` Markus Trippelsdorf
2011-11-23 16:03                       ` Markus Trippelsdorf
2011-11-23 16:06                         ` Christoph Lameter
2011-11-24  8:50                           ` Markus Trippelsdorf
2011-12-01  8:44                             ` Markus Trippelsdorf
2011-12-01  8:53                               ` Pekka Enberg
2011-12-02 19:43                               ` Jerome Glisse
2011-12-02 20:06                                 ` Markus Trippelsdorf
2011-12-02 20:48                                   ` Markus Trippelsdorf
2011-12-07 14:32                                     ` Robert Richter
2011-12-07 14:39                                       ` Markus Trippelsdorf
2011-12-02 23:04                             ` Jerome Glisse
2011-12-03  9:28                               ` Markus Trippelsdorf
2011-12-03 12:20                                 ` Dave Airlie
2011-12-03 12:29                                   ` Markus Trippelsdorf
2011-12-03 19:31                                     ` Jerome Glisse
2011-12-03 19:32                                       ` Jerome Glisse
2011-12-04  1:02                                       ` Markus Trippelsdorf
2011-12-04 17:32                                         ` Jerome Glisse
2011-12-05 17:10                                         ` Jerome Glisse
2011-12-05 18:15                                           ` Markus Trippelsdorf
2011-12-05 18:43                                             ` Jerome Glisse
2011-12-05 19:11                                             ` Jerome Glisse
2011-12-05 19:27                                               ` Markus Trippelsdorf
2011-12-05 20:10                                                 ` Pekka Enberg
2011-12-05 20:20                                                   ` Jerome Glisse
2011-12-05 10:44                                     ` David Laight

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=alpine.DEB.2.00.1111230907330.16139@router.home \
    --to=cl@linux.com \
    --cc=alex.shi@intel.com \
    --cc=benh@kernel.crashing.org \
    --cc=eric.dumazet@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=lists@nerdbynature.de \
    --cc=markus@trippelsdorf.de \
    --cc=mpm@selenic.com \
    --cc=netdev@vger.kernel.org \
    --cc=penberg@kernel.org \
    --cc=rientjes@google.com \
    --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