[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <4B90A214.70301@kernel.org>
Date: Fri, 05 Mar 2010 15:17:56 +0900
From: Tejun Heo <tj@...nel.org>
To: Sachin Sant <sachinp@...ibm.com>
CC: linux-next@...r.kernel.org, LKML <linux-kernel@...r.kernel.org>
Subject: Re: -next March 3: Boot failure on x86 (Oops)
Hello,
On 03/05/2010 03:09 PM, Tejun Heo wrote:
> On 03/05/2010 03:08 PM, Tejun Heo wrote:
>> Hmmm... this means that on one of the chunks, chunk->list.next was
>> NULL (BTW, the disassembly is from unlinked object, right?). The main
>> allocation code hasn't seen much change lately. The only changes are,
>>
>> 22b737f4c75197372d64afc6ed1bccd58c00e549 : just refactoring
>> 833af8427be4b217b5bc522f61afdbd3f1d282c2 : possible but isn't very new
>
> Can you also please try reverting the above two commits?
Sorry about all the fuss but I think this could be it. It looks like
I forgot to update need_to_extend logic while adding simultaneous
head/tail split for alignment, so the array might be overrun by one
entry. Can you please try this one first?
Thanks.
diff --git a/mm/percpu.c b/mm/percpu.c
index 768419d..f1ed9ea 100644
--- a/mm/percpu.c
+++ b/mm/percpu.c
@@ -373,11 +373,11 @@ static int pcpu_need_to_extend(struct pcpu_chunk *chunk)
{
int new_alloc;
- if (chunk->map_alloc >= chunk->map_used + 2)
+ if (chunk->map_alloc >= chunk->map_used + 3)
return 0;
new_alloc = PCPU_DFL_MAP_ALLOC;
- while (new_alloc < chunk->map_used + 2)
+ while (new_alloc < chunk->map_used + 3)
new_alloc *= 2;
return new_alloc;
--
tejun
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists