Re: slub: Lockout validation scans during freeing of object

From: Markus Trippelsdorf
Date: Tue Nov 22 2011 - 14:32:34 EST


On 2011.11.22 at 13:20 -0600, Christoph Lameter wrote:
> On Tue, 22 Nov 2011, Markus Trippelsdorf wrote:
>
> > On 2011.11.22 at 11:40 -0600, Christoph Lameter wrote:
> > > On Tue, 22 Nov 2011, Eric Dumazet wrote:
> > >
> > > > This seems better, but I still have some warnings :
> > >
> > > Trying to reproduce with a kernel configured to do preempt. This is
> > > actually quite interesting since its always off by 1.
> >
> > BTW there are some obvious overflows in the "slabinfo -l" output on my machine:
>
> Could you get me the value of the "slabs" field for the slabs showing the
> wierd values. I.e. do
>
> cat /sys/kernel/slab/signal_cache/slabs
>
> > signal_cache 268 920 360.4K 18446744073709551614/7/24 17 2 31 68 A
>

It's quite easy to explain. You're using unsigned ints in:
snprintf(dist_str, 40, "%lu/%lu/%d", s->slabs - s->cpu_slabs, s->partial, s->cpu_slabs);

and (s->slabs - s->cpu_slabs) can get negative. For example:

task_struct 269 1504 557.0K 18446744073709551601/5/32 21 3 29 72

Here s-slabs is 17 and s->cpu_slabs is 32.
That gives: 17-32=18446744073709551601.

--
Markus
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/