Check for that and error out if necessary.
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
close_ioengine(td);
cleanup_io_u(td);
close_ioengine(td);
cleanup_io_u(td);
- if (td->o.cpumask_set)
- fio_cpuset_exit(td);
+ if (td->o.cpumask_set) {
+ int ret = fio_cpuset_exit(&td->o.cpumask);
+
+ td_verror(td, ret, "fio_cpuset_exit");
+ }
/*
* do this very late, it will log file closing as well
/*
* do this very late, it will log file closing as well
struct thread_data *td = data;
unsigned int i;
long max_cpu;
struct thread_data *td = data;
unsigned int i;
long max_cpu;
+ int ret;
+
+ ret = fio_cpuset_init(&td->o.cpumask);
+ if (ret < 0) {
+ log_err("fio: cpuset_init failed\n");
+ td_verror(td, ret, "fio_cpuset_init");
+ return 1;
+ }
max_cpu = sysconf(_SC_NPROCESSORS_ONLN);
for (i = 0; i < sizeof(int) * 8; i++) {
max_cpu = sysconf(_SC_NPROCESSORS_ONLN);
for (i = 0; i < sizeof(int) * 8; i++) {
long max_cpu;
int ret = 0;
long max_cpu;
int ret = 0;
+ ret = fio_cpuset_init(&td->o.cpumask);
+ if (ret < 0) {
+ log_err("fio: cpuset_init failed\n");
+ td_verror(td, ret, "fio_cpuset_init");
+ return 1;
+ }
#define fio_cpu_clear(mask, cpu) CPU_CLR((cpu), (mask))
#define fio_cpu_set(mask, cpu) CPU_SET((cpu), (mask))
#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)
+
+static inline int fio_cpuset_init(os_cpu_mask_t *mask)
+{
+ CPU_ZERO(mask);
+ return 0;
+}
+
+static inline int fio_cpuset_exit(os_cpu_mask_t *mask)
+{
+ return 0;
+}
#define FIO_MAX_CPUS CPU_SETSIZE
#define FIO_MAX_CPUS CPU_SETSIZE
#define fio_cpu_clear(mask, cpu) pset_assign(*(mask), (cpu), PS_NONE)
#define fio_cpu_set(mask, cpu) pset_assign(*(mask), (cpu), PS_MYID)
#define fio_cpu_clear(mask, cpu) pset_assign(*(mask), (cpu), PS_NONE)
#define fio_cpu_set(mask, cpu) pset_assign(*(mask), (cpu), PS_MYID)
-#define fio_cpuset_init(td) pset_create(&(td)->o.cpumask)
-#define fio_cpuset_exit(td) pset_destroy((td)->o.cpumask)
+
+static inline int fio_cpuset_init(os_cpu_mask_t *mask)
+{
+ int ret;
+
+ if (pset_create(mask) < 0) {
+ ret = errno;
+ return -1;
+ }
+
+ return 0;
+}
+
+static inline int fio_cpuset_exit(os_cpu_mask_t *mask)
+{
+ int ret;
+
+ if (pset_destroy(*mask) < 0) {
+ ret = errno;
+ return -1;
+ }
+
+ return 0;
+}
/*
* Should be enough, not aware of what (if any) restrictions Solaris has
/*
* Should be enough, not aware of what (if any) restrictions Solaris has