Add a cpuset exit function
authorJens Axboe <jens.axboe@oracle.com>
Fri, 12 Dec 2008 19:40:27 +0000 (20:40 +0100)
committerJens Axboe <jens.axboe@oracle.com>
Fri, 12 Dec 2008 19:40:27 +0000 (20:40 +0100)
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
fio.c
os/os-linux.h

diff --git a/fio.c b/fio.c
index a11f2bb..2a468b1 100644 (file)
--- a/fio.c
+++ b/fio.c
@@ -970,10 +970,6 @@ static void *thread_main(void *data)
         * thread from this job
         */
        if (td->o.gtod_cpu) {
-               if (fio_getaffinity(td->pid, &td->o.cpumask) == -1) {
-                       td_verror(td, errno, "cpu_get_affinity");
-                       goto err;
-               }
                fio_cpu_clear(&td->o.cpumask, td->o.gtod_cpu);
                if (fio_setaffinity(td) == -1) {
                        td_verror(td, errno, "cpu_set_affinity");
@@ -1120,6 +1116,9 @@ err:
        close_ioengine(td);
        cleanup_io_u(td);
 
+       if (td->o.cpumask_set)
+               fio_cpuset_exit(td);
+
        /*
         * do this very late, it will log file closing as well
         */
index ea2db9b..3338046 100644 (file)
 #define CLOCK_MONOTONIC 1
 #endif
 
-#ifdef FIO_HAVE_CPU_AFFINITY
 typedef cpu_set_t os_cpu_mask_t;
-#else
-typedef int os_cpu_mask_t;
-#endif
+
 typedef struct drand48_data os_random_state_t;
 
 /*
@@ -69,6 +66,7 @@ typedef struct drand48_data os_random_state_t;
 #define fio_cpu_clear(mask, cpu)       CPU_CLR((cpu), (mask))
 #define fio_cpu_set(mask, cpu)         CPU_SET((cpu), (mask))
 #define fio_cpuset_init(td)            CPU_ZERO(&(td)->o.cpumask)
+#define fio_cpuset_exit(td)            do { } while (0)
 
 #define FIO_MAX_CPUS                   CPU_SETSIZE