Re: [RFC][PATCH -mm] swsusp: Use rbtree for tracking allocated swap

From: Pavel Machek
Date: Tue Apr 10 2007 - 10:17:21 EST


Hi!

> > > Some time ago we discussed the possibility of simplifying the swsusp's approach
> > > towards tracking the swap pages allocated by it for saving the image (so that
> > > they can be freed if there's an error).
> > >
> > > I think we can get back to it now, as it is a nice optimization that should
> > > allow us to use less memory (almost always) and improve performance a bit.
> > >
> >
> > Well, I do not think you can measure the difference, but...
>
> As far as the memory usage is concerned, I can. :-) Usually, it takes 1 extent
> (40 B on x86_64) to register all of the allocated swap pages. If bitmaps are
> used, we need as many bits as there are swap pages available (for 1 GB swap
> and 4 KB pages that would be ~250000 bits, which gives ~8 pages, and we can
> save more than 800 extents using that much memory).

Well... obviously it works for the best case. OTOH, for the worst, it
needs 40bytes for every 2 bits. That's 16000% worse. And for that
nightmare-fragmented 1GB swap, you'll need 5000000bytes... which is
pretty bad.

OTOH 5MB RAM per 1GB swap is not _too_ bad... so we can do it...

> > > kernel/power/power.h | 27 +---------
> > > kernel/power/swap.c | 18 +-----
> > > kernel/power/swsusp.c | 135 ++++++++++++++++++++++++++------------------------
> > > kernel/power/user.c | 22 +-------
> > > 4 files changed, 85 insertions(+), 117 deletions(-)

...and call it 'cleanup' not 'speedup'.


> > ....as it removes code... I think we can do that. But it is 2.6.23+
> > material.
>
> Yes, I think so, but still we can ask Andrew to include it into -mm earlier? ;-)

Yes, that's okay with me.

--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
-
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/