Re: 2.6.9-rc2-mm1 swsusp bug report.

From: Pavel Machek
Date: Sun Sep 26 2004 - 13:40:55 EST


Hi!

> > > What causes memory to be so fragmented?
> >
> > Normal usage; the pattern of pages being freed and allocated inevitably
> > leads to fragmentation. The buddy allocator does a good job of
> > minimising it, but what is really needed is a run-time defragmenter. I
> > saw mention of this recently, but it's probably not that practical to
> > implement IMHO.
>
> I think it is possible to have a defragmenter: allocate new page,
> invalidate mapped pte's, invalidate radix tree entry (and block radix lookups),`
> copy data from oldpage to newpage, remap pte's, insert radix tree
> entry, free oldpage.
>
> The memory hotplug patches do it - I'm trying to implement a similar version
> to free physically nearby pages and form high order pages.

Well, swsusp is kind of special case. If it is possible to swap that
page out or discard, it is swapped out/discarded already. What remains
are things like kmalloc(), and you can't move them...

Anyway solution for swsusp is to avoid using such big pages, it is
less complex than doing defragmenter.
Pavel
--
People were complaining that M$ turns users into beta-testers...
...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl!
-
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/