glusterfs: update for new API
[fio.git] / profiles / act.c
index cc1455db10bee0d8cbc375cb2e41cdab8e250f6d..5d3bd2544ed9b714b5b769c2bbe7cf6bcb7c4a09 100644 (file)
@@ -38,7 +38,7 @@ struct act_slice {
 };
 
 struct act_run_data {
-       struct fio_mutex *mutex;
+       struct fio_sem *sem;
        unsigned int pending;
 
        struct act_slice *slices;
@@ -89,6 +89,7 @@ static struct fio_option options[] = {
                .help   = "Devices to use",
                .category = FIO_OPT_C_PROFILE,
                .group  = FIO_OPT_G_ACT,
+               .no_free = true,
        },
        {
                .name   = "load",
@@ -287,10 +288,11 @@ static int act_prep_cmdline(void)
        return 0;
 }
 
-static int act_io_u_lat(struct thread_data *td, uint64_t usec)
+static int act_io_u_lat(struct thread_data *td, uint64_t nsec)
 {
        struct act_prof_data *apd = td->prof_data;
        struct act_slice *slice;
+       uint64_t usec = nsec / 1000ULL;
        int i, ret = 0;
        double perm;
 
@@ -335,9 +337,9 @@ static int act_io_u_lat(struct thread_data *td, uint64_t usec)
 
 static void get_act_ref(void)
 {
-       fio_mutex_down(act_run_data->mutex);
+       fio_sem_down(act_run_data->sem);
        act_run_data->pending++;
-       fio_mutex_up(act_run_data->mutex);
+       fio_sem_up(act_run_data->sem);
 }
 
 static int show_slice(struct act_slice *slice, unsigned int slice_num)
@@ -394,7 +396,7 @@ static void put_act_ref(struct thread_data *td)
        struct act_prof_data *apd = td->prof_data;
        unsigned int i, slice;
 
-       fio_mutex_down(act_run_data->mutex);
+       fio_sem_down(act_run_data->sem);
 
        if (!act_run_data->slices) {
                act_run_data->slices = calloc(apd->nr_slices, sizeof(struct act_slice));
@@ -414,7 +416,7 @@ static void put_act_ref(struct thread_data *td)
        if (!--act_run_data->pending)
                act_show_all_stats();
 
-       fio_mutex_up(act_run_data->mutex);
+       fio_sem_up(act_run_data->sem);
 }
 
 static int act_td_init(struct thread_data *td)
@@ -462,7 +464,7 @@ static struct profile_ops act_profile = {
 static void fio_init act_register(void)
 {
        act_run_data = calloc(1, sizeof(*act_run_data));
-       act_run_data->mutex = fio_mutex_init(FIO_MUTEX_UNLOCKED);
+       act_run_data->sem = fio_sem_init(FIO_SEM_UNLOCKED);
 
        if (register_profile(&act_profile))
                log_err("fio: failed to register profile 'act'\n");
@@ -474,7 +476,7 @@ static void fio_exit act_unregister(void)
                free((void *) act_opts[++org_idx]);
 
        unregister_profile(&act_profile);
-       fio_mutex_remove(act_run_data->mutex);
+       fio_sem_remove(act_run_data->sem);
        free(act_run_data->slices);
        free(act_run_data);
        act_run_data = NULL;