public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Jack Steiner <steiner@sgi.com>
To: tj@kernel.org, shijie8@gmail.com, cl@linux-foundation.org
Cc: mingo@elte.hu, tglx@linutronix.de, linux-kernel@vger.kernel.org
Subject: Failure in pcpu_extend_area_map()
Date: Thu, 9 Sep 2010 16:40:58 -0500	[thread overview]
Message-ID: <20100909214058.GA9650@sgi.com> (raw)


We have started to see failures in the percpu allocator in recent
linux-next kernels. Failures seem to occur immediately
after pcpu_chunk_relocate() is called to relocate a chunk from slot
10 in pcpu_slot[] to slot 0.

It appears that the list_for_each_entry() in pcpu_alloc() fails
after pcpu_chunk_relocate() does the list_move().


Call tree is:
	pcpu_alloc -> pcpu_alloc_area -> pcpu_chunk_relocate 	(at end of function - /* fully scanned */)


Adding the following patch fixes the problem but I suspect this is not the proper
fix. Has anyone else seen this this failure?


BUG: unable to handle kernel paging request at ffffc90030d02000^M
IP: [<ffffffff810d3173>] pcpu_extend_area_map+0x70/0xb1^M
PGD e81b067 PUD e81c067 PMD 6117067 PTE 0^M
Oops: 0002 [#1] SMP ^M
last sysfs file: ^M
CPU 0 ^M
Modules linked in:^M
^M
Pid: 1, comm: swapper Not tainted 2.6.36-rc3-next-20100908-medusa+ #1 /^M
RIP: 0010:[<ffffffff810d3173>]  [<ffffffff810d3173>] pcpu_extend_area_map+0x70/0xb1^M
RSP: 0018:ffff88000e9dba60  EFLAGS: 00000007^M
RAX: ffffffffffff8800 RBX: ffffc90028d02000 RCX: fffffffffffe2000^M
RDX: 0000000000000282 RSI: ffff8800019c38a0 RDI: ffffc90028d02000^M
RBP: ffff88000e9dba90 R08: 00000000000000d2 R09: ffffffff810d27f1^M
R10: dead000000100100 R11: 0000000000000001 R12: fffffffffffe2000^M
R13: ffff8800019c3880 R14: ffff8800019c38a0 R15: 0000000002000000^M
FS:  0000000000000000(0000) GS:ffff880001a00000(0000) knlGS:0000000000000000^M
CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005007b^M
CR2: ffffc90030d02000 CR3: 0000000001604000 CR4: 00000000000006f0^M
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000^M
DR3: 0000000000000000 DR6: 0000000000000000 DR7: 0000000000000000^M
Process swapper (pid: 1, threadinfo ffff88000e9da000, task ffff88000e9e0000)^M
Stack:^M
 0000000008000000 0000000002000000 00000000000000a0 ffff8800019c3880^M
<0> 0000000000000282 000000000000000a ffff88000e9dbb30 ffffffff810d36cc^M
<0> 0000000000000004 0000000000000004 0000000400000000 ffffffffffffffff^M
Call Trace:^M
 [<ffffffff810d36cc>] pcpu_alloc+0x197/0x7e1^M
 [<ffffffff811ed846>] ? extract_entropy+0x4c/0x96^M
 [<ffffffff810d3d31>] __alloc_percpu+0xb/0xd^M
 [<ffffffff811925df>] __percpu_counter_init+0x25/0x76^M
 [<ffffffff811396a3>] ext2_fill_super+0xb7c/0xb98^M
 [<ffffffff810dce90>] ? sget+0x3ba/0x3ca^M
 [<ffffffff810dd25c>] get_sb_bdev+0x142/0x18e^M
 [<ffffffff81138b27>] ? ext2_fill_super+0x0/0xb98^M
 [<ffffffff811379df>] ext2_get_sb+0x13/0x15^M
 [<ffffffff810dc8f2>] vfs_kern_mount+0xaf/0x18f^M
 [<ffffffff810dca2f>] do_kern_mount+0x47/0xee^M
 [<ffffffff810f1524>] do_mount+0x6a5/0x742^M
 [<ffffffff810adf69>] ? strndup_user+0x39/0x50^M
 [<ffffffff810f1640>] sys_mount+0x7f/0xb8^M
...



---
 mm/percpu.c |    1 +
 1 file changed, 1 insertion(+)

Index: linux/mm/percpu.c
===================================================================
--- linux.orig/mm/percpu.c      2010-09-09 15:21:22.000000000 -0500
+++ linux/mm/percpu.c   2010-09-09 16:25:52.000000000 -0500
@@ -775,6 +775,7 @@ restart:
                        off = pcpu_alloc_area(chunk, size, align);
                        if (off >= 0)
                                goto area_found;
+                       goto restart;
                }
        }


             reply	other threads:[~2010-09-09 21:41 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-09-09 21:40 Jack Steiner [this message]
2010-09-10 10:19 ` Failure in pcpu_extend_area_map() 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=20100909214058.GA9650@sgi.com \
    --to=steiner@sgi.com \
    --cc=cl@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=shijie8@gmail.com \
    --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