[BLOCK] Don't pin lots of memory in mempools

Currently we scale the mempool sizes depending on memory installed
in the machine, except for the bio pool itself which sits at a fixed
256 entry pre-allocation.

There's really no point in "optimizing" this OOM path, we just need
enough preallocated to make progress. A single unit is enough, lets
scale it down to 2 just to be on the safe side.

This patch saves ~150kb of pinned kernel memory on a 32-bit box.

Signed-off-by: Jens Axboe <[email protected]>
This commit is contained in:
Jens Axboe 2007-04-02 10:06:42 +02:00 • committed by Jens Axboe
commit 5972511b77
6 changed files with 11 additions and 40 deletions

View file

@ -867,7 +867,7 @@ static int crypt_ctr(struct dm_target *ti, unsigned int argc, char **argv)
goto bad4;
}
cc->bs = bioset_create(MIN_IOS, MIN_IOS, 4);
cc->bs = bioset_create(MIN_IOS, MIN_IOS);
if (!cc->bs) {
ti->error = "Cannot allocate crypt bioset";
goto bad_bs;

View file

@ -60,7 +60,7 @@ static int resize_pool(unsigned int new_ios)
if (!_io_pool)
return -ENOMEM;
_bios = bioset_create(16, 16, 4);
_bios = bioset_create(16, 16);
if (!_bios) {
mempool_destroy(_io_pool);
_io_pool = NULL;

View file

@ -1012,7 +1012,7 @@ static struct mapped_device *alloc_dev(int minor)
if (!md->tio_pool)
goto bad3;
md->bs = bioset_create(16, 16, 4);
md->bs = bioset_create(16, 16);
if (!md->bs)
goto bad_no_bioset;