Re: adding swap workarounds oom - was: Re: Out of Memory: Killed process 16498 (java).

From: Andi Kleen
Date: Wed Mar 01 2006 - 09:10:45 EST


On Wednesday 01 March 2006 14:41, Jens Axboe wrote:
> On Wed, Mar 01 2006, Andy Chittenden wrote:
> > with revised patch that does:
> >
> > printk("sg%d: dma=%llx, dma_len=%u/%u, pfn=%lu\n", i,
> > (unsigned long long) sg->dma_address, sg->dma_length, sg->offset,
> > page_to_pfn(sg->page));
>
> That is correct, thanks!
>
> > hda: DMA table too small
> > ide dma table, 255 entries, bounce pfn 1310720
> > sg0: dma=81c8800, dma_len=4096/0, pfn=1296369
>
> Still the same badness here, it's 2kb into a page so straddles two pages
> for one entry.

That's normal if it was in the IOMMU and a merged entry.

You can try iommu=nomerge.

Or maybe the higher layers are passing in physically continuous pages
that get merged? Not too unlikely at boot.


>
> Andi, any idea what is going on here? Why is this throwing up all of a
> sudden??

What is throwing up exactly?

There was a change recently in the merging algorithm, but it shouldn't
cause any bad side effects for correct users of *_map_sg()

-Andi

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