From 4efa970e05d33a280976402da55a93fca0cc8a19 Mon Sep 17 00:00:00 2001 From: Jens Axboe Date: Wed, 31 May 2006 11:56:49 +0200 Subject: [PATCH] [PATCH] Use mmap for mlocked memory --- fio.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/fio.c b/fio.c index 09f40afe..f98cd5b8 100644 --- a/fio.c +++ b/fio.c @@ -2240,24 +2240,23 @@ static void run_threads(void) printf("Starting %d thread%s\n", thread_number, thread_number > 1 ? "s" : ""); + signal(SIGINT, sig_handler); + signal(SIGALRM, sig_handler); + if (mlock_size) { - mlocked_mem = malloc(mlock_size); + mlocked_mem = mmap(NULL, mlock_size, PROT_READ | PROT_WRITE, MAP_PRIVATE | OS_MAP_ANON, 0, 0); if (!mlocked_mem) { - perror("malloc locked mem"); + perror("mmap locked mem"); return; } if (mlock(mlocked_mem, mlock_size) < 0) { - free(mlocked_mem); - perror("mlock"); + munmap(mlocked_mem, mlock_size); return; } } fflush(stdout); - signal(SIGINT, sig_handler); - signal(SIGALRM, sig_handler); - todo = thread_number; nr_running = 0; nr_started = 0; @@ -2368,7 +2367,7 @@ static void run_threads(void) if (mlocked_mem) { if (munlock(mlocked_mem, mlock_size) < 0) perror("munlock"); - free(mlocked_mem); + munmap(mlocked_mem, mlock_size); } } -- 2.25.1