libaio,io_uring: improve cmdprio_percentage option
[fio.git] / engines / cmdprio.h
CommitLineData
e9f6567a
DLM
1/*
2 * IO priority handling declarations and helper functions common to the
3 * libaio and io_uring engines.
4 */
5
6#ifndef FIO_CMDPRIO_H
7#define FIO_CMDPRIO_H
8
9#include "../fio.h"
10
11struct cmdprio {
12 unsigned int percentage[DDIR_RWDIR_CNT];
13};
14
15static int fio_cmdprio_init(struct thread_data *td, struct cmdprio *cmdprio,
16 bool *has_cmdprio)
17{
18 struct thread_options *to = &td->o;
19 bool has_cmdprio_percentage = false;
20 int i;
21
22 for (i = 0; i < DDIR_RWDIR_CNT; i++) {
23 if (cmdprio->percentage[i])
24 has_cmdprio_percentage = true;
25 }
26
27 /*
28 * Check for option conflicts
29 */
30 if (has_cmdprio_percentage &&
31 (fio_option_is_set(to, ioprio) ||
32 fio_option_is_set(to, ioprio_class))) {
33 log_err("%s: cmdprio_percentage option and mutually exclusive "
34 "prio or prioclass option is set, exiting\n",
35 to->name);
36 return 1;
37 }
38
39 *has_cmdprio = has_cmdprio_percentage;
40
41 return 0;
42}
43
44#endif