[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090120075440.GA29426@elte.hu>
Date: Tue, 20 Jan 2009 08:54:40 +0100
From: Ingo Molnar <mingo@...e.hu>
To: Li Zefan <lizf@...fujitsu.com>,
Jaswinder Singh Rajput <jaswinder@...nel.org>,
Nick Piggin <npiggin@...e.de>
Cc: Rusty Russell <rusty@...tcorp.com.au>,
Mike Travis <travis@....com>,
LKML <linux-kernel@...r.kernel.org>
Subject: Re: [BUG] kernel BUG at arch/x86/kernel/tlb_32.c:130!
* Li Zefan <lizf@...fujitsu.com> wrote:
> I was using mmotm 2009-01-16-16-18, and I ran into this BUG,
> the line is:
> BUG_ON(cpumask_empty(cpumask));
>
> I suspect it is caused by:
>
> commit 4595f9620cda8a1e973588e743cf5f8436dd20c6
> Author: Rusty Russell <rusty@...tcorp.com.au>
> Date: Sat Jan 10 21:58:09 2009 -0800
>
> x86: change flush_tlb_others to take a const struct cpumask
>
> Impact: reduce stack usage, use new cpumask API.
Jaswinder reported a similar crash.
Mike, Rusty, what's going on with this commit? Why does this code:
+ if (cpumask_any_but(&mm->cpu_vm_mask, smp_processor_id()) < nr_cpu_ids)
+ flush_tlb_others(&mm->cpu_vm_mask, mm, TLB_FLUSH_ALL);
Assume that mm->cpu_vm_mask wont change? TLB flushes go async and the MM's
schedulability is not locked during that. I.e. mm->cpu_vm_mask can change
under you while the TLB flush IPIs are flying around - while when the
cpumask was passed on-stack this wouldnt happen.
Ingo
--
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