Re: slab:Fix the unexpected index mapping result of kmalloc_size(INDEX_NODE + 1)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Jul 31, 2015 at 08:57:35AM -0500, Christoph Lameter wrote:
> On Fri, 31 Jul 2015, Joonsoo Kim wrote:
> 
> > I don't think that this fix is right.
> > Just "kmalloc_size(INDEX_NODE) * 2" looks insane because it means 192 * 2
> > = 384 on his platform. Why we need to check size is larger than 384?
> 
> Its an arbitrary boundary. Making it large ensures that the smaller caches
> stay operational and do not fall back to page sized allocations.

If it is an arbitrary boundary, it would be better to use static value
such as "256" rather than kmalloc_size(INDEX_NODE) * 2.
Value of kmalloc_size(INDEX_NODE) * 2 can be different in some archs
and it is difficult to manage such variation. It would cause this kinds of
bug again. I recommand following change. How about it?

-       if (size >= kmalloc_size(INDEX_NODE + 1)
+       if (!slab_early_init &&
+               size >= kmalloc_size(INDEX_NODE) &&
+               size >= 256

Thanks.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>



[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]