Re: [PATCH] Use extents for recording what swap is allocated.

From: Nigel Cunningham
Date: Tue Oct 24 2006 - 18:06:58 EST


Hi.

On Tue, 2006-10-24 at 21:42 +0100, Christoph Hellwig wrote:
> On Mon, Oct 23, 2006 at 02:14:17PM +1000, Nigel Cunningham wrote:
> > Switch from bitmaps to using extents to record what swap is allocated;
> > they make more efficient use of memory, particularly where the allocated
> > storage is small and the swap space is large.
> >
> > This is also part of the ground work for implementing support for
> > supporting multiple swap devices.
>
> In addition to the very useful comments from Rafael there's some observations
> of my own:
>
> - there's an awful lot of opencoded list manipulation, any chance you
> could use list.h instead?

IIRC, I avoided list.h because I only wanted a singly linked list (it
never gets traversed backwards). List.h looks to me like all doubly
linked lists. Do you know if there are any other singly linked list
implementations I could piggy-back?

That said, since there's normally not that many extents, I could switch
quite easily and it wouldn't normally waste much memory.

> - what unit are the extent values in? The usage of unsigned long rings
> warning bells for me, shouldn't this be something like pgoff_t or
> sector_t depending on what you describe with it?

For this use, they're swap extents. For another use I have in suspend2,
they're sector_t >> block_device_size. That's why I picked ul; something
generic in what's supposed to be a generic implementation.

Thanks for the comments.

Nigel

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