From: Jens Axboe Date: Wed, 27 Feb 2008 17:58:00 +0000 (+0100) Subject: Confusion between mutex and semaphore naming X-Git-Tag: fio-1.20-rc1~33 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=cdd18ad87ed9a3639b76c41cfc9682ad7cce652e;ds=sidebyside Confusion between mutex and semaphore naming There's a semaphore implementation and option coming, so rename the bits. Signed-off-by: Jens Axboe --- diff --git a/fio.c b/fio.c index 6e25c5fe..1594bf64 100644 --- a/fio.c +++ b/fio.c @@ -49,7 +49,7 @@ int nr_thread = 0; int shm_id = 0; int temp_stall_ts; -static struct fio_sem *startup_sem; +static struct fio_mutex *startup_mutex; static volatile int fio_abort; static int exit_value; @@ -822,14 +822,14 @@ static void *thread_main(void *data) td->io_hist_tree = RB_ROOT; td_set_runstate(td, TD_INITIALIZED); - fio_sem_up(startup_sem); - fio_sem_down(td->mutex); + fio_mutex_up(startup_mutex); + fio_mutex_down(td->mutex); /* - * the ->mutex semaphore is now no longer used, close it to avoid + * the ->mutex mutex is now no longer used, close it to avoid * eating a file descriptor */ - fio_sem_remove(td->mutex); + fio_mutex_remove(td->mutex); /* * May alter parameters that init_io_u() will use, so we need to @@ -1213,7 +1213,7 @@ static void run_threads(void) exit(ret); } } - fio_sem_down(startup_sem); + fio_mutex_down(startup_mutex); } /* @@ -1268,7 +1268,7 @@ static void run_threads(void) m_rate += td->o.ratemin; t_rate += td->o.rate; todo--; - fio_sem_up(td->mutex); + fio_mutex_up(td->mutex); } reap_threads(&nr_running, &t_rate, &m_rate); @@ -1317,7 +1317,7 @@ int main(int argc, char *argv[]) setup_log(&agg_io_log[DDIR_WRITE]); } - startup_sem = fio_sem_init(0); + startup_mutex = fio_mutex_init(0); set_genesis_time(); @@ -1333,6 +1333,6 @@ int main(int argc, char *argv[]) } } - fio_sem_remove(startup_sem); + fio_mutex_remove(startup_mutex); return exit_value; } diff --git a/fio.h b/fio.h index 0c5b6487..d7875b04 100644 --- a/fio.h +++ b/fio.h @@ -563,7 +563,7 @@ struct thread_data { unsigned long long io_skip_bytes; unsigned long long this_io_bytes[2]; unsigned long long zone_bytes; - struct fio_sem *mutex; + struct fio_mutex *mutex; /* * State for random io, a bitmap of blocks done vs not done diff --git a/init.c b/init.c index 65997297..d860179d 100644 --- a/init.c +++ b/init.c @@ -466,7 +466,7 @@ static int add_job(struct thread_data *td, const char *jobname, int job_add_num) f->real_file_size = -1ULL; } - td->mutex = fio_sem_init(0); + td->mutex = fio_mutex_init(0); td->ts.clat_stat[0].min_val = td->ts.clat_stat[1].min_val = ULONG_MAX; td->ts.slat_stat[0].min_val = td->ts.slat_stat[1].min_val = ULONG_MAX; diff --git a/mutex.c b/mutex.c index 17e62c9f..f3c83266 100644 --- a/mutex.c +++ b/mutex.c @@ -8,43 +8,43 @@ #include "mutex.h" -void fio_sem_remove(struct fio_sem *sem) +void fio_mutex_remove(struct fio_mutex *mutex) { - close(sem->sem_fd); - munmap(sem, sizeof(*sem)); + close(mutex->mutex_fd); + munmap(mutex, sizeof(*mutex)); } -struct fio_sem *fio_sem_init(int value) +struct fio_mutex *fio_mutex_init(int value) { - char sem_name[] = "/tmp/.fio_sem.XXXXXX"; - struct fio_sem *sem = NULL; + char mutex_name[] = "/tmp/.fio_mutex.XXXXXX"; + struct fio_mutex *mutex = NULL; pthread_mutexattr_t attr; pthread_condattr_t cond; int fd; - fd = mkstemp(sem_name); + fd = mkstemp(mutex_name); if (fd < 0) { - perror("open sem"); + perror("open mutex"); return NULL; } - if (ftruncate(fd, sizeof(struct fio_sem)) < 0) { - perror("ftruncate sem"); + if (ftruncate(fd, sizeof(struct fio_mutex)) < 0) { + perror("ftruncate mutex"); goto err; } - sem = mmap(NULL, sizeof(struct fio_sem), PROT_READ | PROT_WRITE, + mutex = mmap(NULL, sizeof(struct fio_mutex), PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0); - if (sem == MAP_FAILED) { - perror("mmap sem"); + if (mutex == MAP_FAILED) { + perror("mmap mutex"); close(fd); - sem = NULL; + mutex = NULL; goto err; } - unlink(sem_name); - sem->sem_fd = fd; - sem->value = value; + unlink(mutex_name); + mutex->mutex_fd = fd; + mutex->value = value; if (pthread_mutexattr_init(&attr)) { perror("pthread_mutexattr_init"); @@ -57,36 +57,36 @@ struct fio_sem *fio_sem_init(int value) pthread_condattr_init(&cond); pthread_condattr_setpshared(&cond, PTHREAD_PROCESS_SHARED); - pthread_cond_init(&sem->cond, &cond); + pthread_cond_init(&mutex->cond, &cond); - if (pthread_mutex_init(&sem->lock, &attr)) { + if (pthread_mutex_init(&mutex->lock, &attr)) { perror("pthread_mutex_init"); goto err; } - return sem; + return mutex; err: - if (sem) - fio_sem_remove(sem); + if (mutex) + fio_mutex_remove(mutex); - unlink(sem_name); + unlink(mutex_name); return NULL; } -void fio_sem_down(struct fio_sem *sem) +void fio_mutex_down(struct fio_mutex *mutex) { - pthread_mutex_lock(&sem->lock); - while (sem->value == 0) - pthread_cond_wait(&sem->cond, &sem->lock); - sem->value--; - pthread_mutex_unlock(&sem->lock); + pthread_mutex_lock(&mutex->lock); + while (mutex->value == 0) + pthread_cond_wait(&mutex->cond, &mutex->lock); + mutex->value--; + pthread_mutex_unlock(&mutex->lock); } -void fio_sem_up(struct fio_sem *sem) +void fio_mutex_up(struct fio_mutex *mutex) { - pthread_mutex_lock(&sem->lock); - if (!sem->value) - pthread_cond_signal(&sem->cond); - sem->value++; - pthread_mutex_unlock(&sem->lock); + pthread_mutex_lock(&mutex->lock); + if (!mutex->value) + pthread_cond_signal(&mutex->cond); + mutex->value++; + pthread_mutex_unlock(&mutex->lock); } diff --git a/mutex.h b/mutex.h index c4b0d8ed..85f5f69c 100644 --- a/mutex.h +++ b/mutex.h @@ -3,17 +3,17 @@ #include -struct fio_sem { +struct fio_mutex { pthread_mutex_t lock; pthread_cond_t cond; unsigned int value; - int sem_fd; + int mutex_fd; }; -extern struct fio_sem *fio_sem_init(int); -extern void fio_sem_remove(struct fio_sem *); -extern inline void fio_sem_down(struct fio_sem *); -extern inline void fio_sem_up(struct fio_sem *sem); +extern struct fio_mutex *fio_mutex_init(int); +extern void fio_mutex_remove(struct fio_mutex *); +extern inline void fio_mutex_down(struct fio_mutex *); +extern inline void fio_mutex_up(struct fio_mutex *); #endif