"Martin J. Bligh" wrote:
>
> >> Nope, kept OOMing and killing everything .
> >
> > Something broke.
>
> Even I worked that out ;-)
Well I'm feeling especially helpful today.
> > Blockdevices only use ZONE_NORMAL for their pagecache. That cat will
> > selectively put pressure on the normal zone (and DMA zone, of course).
>
> Ah, I recall that now. That's fundamentally screwed.
When filesystems want to access metadata, they will typically read
a block into a buffer_head and access the memory directly.
mnm:/usr/src/25> grep -rI b_data fs | wc -l
844
That's a lot of kmaps need adding.
So we constrain blockdev->bd_inode->i_mapping->gfp_mask so that
the blockdev's pagecache memory is always in the direct-addressed
region.
It would be possible to fix on a per-fs basis - teach a filesystem
to kmap bh->b_page appropriately and then set __GFP_HIGHMEM in the
blockdev's gfp_mask.
But it doesn't seem to cause a lot of trouble in practice.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
This archive was generated by hypermail 2b29 : Wed Oct 23 2002 - 22:00:56 EST