2006-01-30 21:23:32

by Matthew Dobson

[permalink] [raw]
Subject: [patch 0/8] Create and Use common mempool allocators (Take 2)

--
In the course of working on some patches to implement subsystem-wide critical
pools through the existing mempool API, I created the following patches which
create 3 new common mempool allocators (mempool_alloc_pages, mempool_kmalloc &
mempool_kzalloc) and freers. The following 6 patches add these new common
allocators and convert existing mempool users to use these common allocators,
where possible. Optionally, the last 2 patches in this series add and use a
wrapper for the common case of creating a slab-based mempool.

After the application of these patches there are only 4 places where
'non-common' allocators are used (drivers/md/raid1.c & raid10.c, mm/highmem.c
and drivers/scsi/scsi_transport_iscsi.c), and all of these are non-trivial
allocators. The sum of these patches is a reduction of 90 lines of kernel
code and the removal of many nearly identical mempool allocators.

New since Take 1:
* Added 4 mempool_create() wrappers to avoid both gratuitous casting
and gratuitous cast warnings.
* Update to 2.6.16-rc1-mm4

Thanks!

-Matt


2006-01-31 07:38:28

by Pekka Enberg

[permalink] [raw]
Subject: Re: [patch 0/8] Create and Use common mempool allocators (Take 2)

On Mon, 30 Jan 2006, Matthew Dobson wrote:
> In the course of working on some patches to implement subsystem-wide critical
> pools through the existing mempool API, I created the following patches which
> create 3 new common mempool allocators (mempool_alloc_pages, mempool_kmalloc &
> mempool_kzalloc) and freers. The following 6 patches add these new common
> allocators and convert existing mempool users to use these common allocators,
> where possible. Optionally, the last 2 patches in this series add and use a
> wrapper for the common case of creating a slab-based mempool.

Looks good to me.

Acked-by: Pekka Enberg <[email protected]>

Pekka