Re: kernel BUGs when removing largish files with the SLOB allocator

From: Aubrey
Date: Tue Sep 12 2006 - 06:50:21 EST


On 9/12/06, David Howells <dhowells@xxxxxxxxxx> wrote:
Aubrey <aubreylee@xxxxxxxxx> wrote:

> OK. Here is the patch and work properly on my side.
> Welcome any suggestions and comments.

It looks reasonable. Don't forget to sign off the patch.

> void kmem_cache_init(void)
> {
> +#if 0
> void *p = slob_alloc(PAGE_SIZE, 0, PAGE_SIZE-1);
>
> if (p)
> free_page((unsigned long)p);
> +#endif

Any idea what that's about?

IMHO kmem_cache_init() needn't to do anything for the slob allocation.

In addition, the original code allocate one page and then free it.
Here, with the patch, slob_alloc() will set the SLAB flag on the page,
and the page with this flag can't pass the free_pages_check(), if so,
the kernel will run into bad_page() panic.

So, I removed this piece of code for the draft of the patch.
Welcome any better idea.

Regards,
-Aubrey
-
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/