cpuio engine cpuload bug fix
[fio.git] / engines / cpu.c
index cfdf281d1b2ede15ecb7aea920af4eca3bb3b0d1..322dfde7412d9df075132bb8e3bd17c4ad713792 100644 (file)
@@ -9,19 +9,13 @@
 
 static int fio_cpuio_queue(struct thread_data *td, struct io_u fio_unused *io_u)
 {
-       __usec_sleep(td->o.cpucycle);
-       return FIO_Q_COMPLETED;
-}
-
-static int fio_cpuio_setup(struct thread_data fio_unused *td)
-{
-       struct fio_file *f;
-       unsigned int i;
+       usec_spin(td->o.cpucycle);
 
-       for_each_file(td, f, i)
-               f->real_file_size = -1ULL;
+       if (io_u->buflen == 0)
+               io_u->buflen = 1;
+       io_u->resid = 0;
 
-       return 0;
+       return FIO_Q_COMPLETED;
 }
 
 static int fio_cpuio_init(struct thread_data *td)
@@ -47,9 +41,9 @@ static int fio_cpuio_init(struct thread_data *td)
        return 0;
 }
 
-static int fio_cpuio_open(struct thread_data fio_unused *td, struct fio_file *f)
+static int fio_cpuio_open(struct thread_data fio_unused *td,
+                         struct fio_file fio_unused *f)
 {
-       f->fd = 0;
        return 0;
 }
 
@@ -58,9 +52,8 @@ static struct ioengine_ops ioengine = {
        .version        = FIO_IOOPS_VERSION,
        .queue          = fio_cpuio_queue,
        .init           = fio_cpuio_init,
-       .setup          = fio_cpuio_setup,
        .open_file      = fio_cpuio_open,
-       .flags          = FIO_SYNCIO | FIO_DISKLESSIO,
+       .flags          = FIO_SYNCIO | FIO_DISKLESSIO | FIO_NOIO,
 };
 
 static void fio_init fio_cpuio_register(void)