Re: [BLOCK] bh: Ensure bh fits within a page

From: Christoph Lameter
Date: Tue Aug 01 2006 - 13:35:05 EST


On Mon, 31 Jul 2006, Andrew Morton wrote:

> > Sure, this particular instance is in journal_write_metadata_buffer
> > where the bh may be constructed from kmalloc memory (search for the
> > call to jbd_rep_kmalloc). Because the memory returned by kmalloc
> > may straddle a page (when slab debugging is enabled that is), this
> > causes a broken bh to be injected into submit_bh.
> >
>
> Crap, that's hard to fix. Am I allowed to blame submit_bh()? ;)
>
> uhm, we don't want to lose kmalloc redzoning, so I guess we need to create
> on-demand ext3-private slab caches for 1024, 2048, and 4096 bytes. With
> the appropriate slab flags to defeat the redzoning.

The slab allocator gives no guarantee that a structure is not straddling a
page boundary regardless of debug or not. It may just happen that the
objects are arranged if kmem_cache_cretae() is called with certain
parameters. Another arch with other cacheline alignment and another page
size may arrange the objects differently.

-
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/