X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=smalloc.c;h=fdf7d22ec4bf2b256f755842d97ec578baaa9fb9;hb=b463e9363b826d5ba4f16e0115a26f24b77078f4;hp=ac5754d5f496119a342180eeae58bb4a229e4cf0;hpb=122426daab0fbd2fce244ac018d737a8f302f974;p=fio.git diff --git a/smalloc.c b/smalloc.c index ac5754d5..fdf7d22e 100644 --- a/smalloc.c +++ b/smalloc.c @@ -10,9 +10,11 @@ #include #include #include +#include #include "mutex.h" #include "arch/arch.h" +#include "os/os.h" #define SMALLOC_REDZONE /* define to detect memory corruption */ @@ -20,7 +22,7 @@ #define SMALLOC_BPI (sizeof(unsigned int) * 8) #define SMALLOC_BPL (SMALLOC_BPB * SMALLOC_BPI) -#define INITIAL_SIZE 1024*1024 /* new pool size */ +#define INITIAL_SIZE 8192*1024 /* new pool size */ #define MAX_POOLS 128 /* maximum number of pools to setup */ #define SMALLOC_PRE_RED 0xdeadbeefU @@ -196,10 +198,14 @@ static int add_pool(struct pool *pool, unsigned int alloc_size) bitmap_blocks = alloc_size / SMALLOC_BPL; alloc_size += bitmap_blocks * sizeof(unsigned int); pool->mmap_size = alloc_size; - + pool->nr_blocks = bitmap_blocks; pool->free_blocks = bitmap_blocks * SMALLOC_BPB; +#ifdef FIO_HAVE_FALLOCATE + posix_fallocate(fd, 0, alloc_size); +#endif + if (ftruncate(fd, alloc_size) < 0) goto out_unlink;