Re: [RFC v2 PATCH] mm/percpu.c: fix panic triggered by BUG_ON() falsely

From: Andrew Morton
Date: Wed Oct 12 2016 - 17:41:40 EST


On Tue, 11 Oct 2016 22:00:28 +0800 zijun_hu <zijun_hu@xxxxxxxx> wrote:

> as shown by pcpu_build_alloc_info(), the number of units within a percpu
> group is educed by rounding up the number of CPUs within the group to
> @upa boundary, therefore, the number of CPUs isn't equal to the units's
> if it isn't aligned to @upa normally. however, pcpu_page_first_chunk()
> uses BUG_ON() to assert one number is equal the other roughly, so a panic
> is maybe triggered by the BUG_ON() falsely.
>
> in order to fix this issue, the number of CPUs is rounded up then compared
> with units's, the BUG_ON() is replaced by warning and returning error code
> as well to keep system alive as much as possible.

Under what circumstances is the triggered? In other words, what are
the end-user visible effects of the fix?

I mean, this is pretty old code (isn't it?) so what are you doing that
triggers this?