Commit | Line | Data |
---|---|---|
c60d54ae VF |
1 | #ifndef FIO_DATAPLACEMENT_H |
2 | #define FIO_DATAPLACEMENT_H | |
a7e8aae0 KB |
3 | |
4 | #include "io_u.h" | |
5 | ||
1a3a21b7 VF |
6 | #define STREAMS_DIR_DTYPE 1 |
7 | #define FDP_DIR_DTYPE 2 | |
8 | #define FDP_MAX_RUHS 128 | |
9 | #define FIO_MAX_DP_IDS 16 | |
04d5add8 | 10 | #define DP_MAX_SCHEME_ENTRIES 32 |
98cd3c0e | 11 | |
d3e310c5 AK |
12 | /* |
13 | * How fio chooses what placement identifier to use next. Choice of | |
14 | * uniformly random, or roundrobin. | |
15 | */ | |
65ca6791 VF |
16 | enum { |
17 | FIO_DP_RANDOM = 0x1, | |
18 | FIO_DP_RR = 0x2, | |
04d5add8 | 19 | FIO_DP_SCHEME = 0x3, |
65ca6791 VF |
20 | }; |
21 | ||
d3e310c5 | 22 | enum { |
65ca6791 VF |
23 | FIO_DP_NONE = 0x0, |
24 | FIO_DP_FDP = 0x1, | |
25 | FIO_DP_STREAMS = 0x2, | |
d3e310c5 AK |
26 | }; |
27 | ||
a7e8aae0 KB |
28 | struct fio_ruhs_info { |
29 | uint32_t nr_ruhs; | |
30 | uint32_t pli_loc; | |
31 | uint16_t plis[]; | |
32 | }; | |
33 | ||
04d5add8 HP |
34 | struct fio_ruhs_scheme_entry { |
35 | unsigned long long start_offset; | |
36 | unsigned long long end_offset; | |
37 | uint16_t pli; | |
38 | }; | |
39 | ||
40 | struct fio_ruhs_scheme { | |
41 | uint16_t nr_schemes; | |
42 | struct fio_ruhs_scheme_entry scheme_entries[DP_MAX_SCHEME_ENTRIES]; | |
43 | }; | |
44 | ||
c60d54ae | 45 | int dp_init(struct thread_data *td); |
a7e8aae0 | 46 | void fdp_free_ruhs_info(struct fio_file *f); |
c60d54ae | 47 | void dp_fill_dspec_data(struct thread_data *td, struct io_u *io_u); |
a7e8aae0 | 48 | |
c60d54ae | 49 | #endif /* FIO_DATAPLACEMENT_H */ |