#include <stdio.h>
#include <inttypes.h>
#include "optgroup.h"
+#include "compiler/compiler.h"
/*
* Option grouping
.name = "Profiles",
.mask = FIO_OPT_C_PROFILE,
},
+ {
+ .name = "I/O engines",
+ .mask = FIO_OPT_C_ENGINE,
+ },
{
.name = NULL,
},
};
static const struct opt_group fio_opt_cat_groups[] = {
- {
- .name = "Latency profiling",
- .mask = FIO_OPT_G_LATPROF,
- },
{
.name = "Rate",
.mask = FIO_OPT_G_RATE,
.mask = FIO_OPT_G_TIOBENCH,
},
{
- .name = "MTD",
+ .name = "Error handling",
+ .mask = FIO_OPT_G_ERR,
+ },
+ {
+ .name = "Ext4 defrag I/O engine", /* e4defrag */
+ .mask = FIO_OPT_G_E4DEFRAG,
+ },
+ {
+ .name = "Network I/O engine", /* net */
+ .mask = FIO_OPT_G_NETIO,
+ },
+ {
+ .name = "RDMA I/O engine", /* rdma */
+ .mask = FIO_OPT_G_RDMA,
+ },
+ {
+ .name = "librpma I/O engines", /* librpma_apm && librpma_gpspm */
+ .mask = FIO_OPT_G_LIBRPMA,
+ },
+ {
+ .name = "libaio I/O engine", /* libaio */
+ .mask = FIO_OPT_G_LIBAIO,
+ },
+ {
+ .name = "ACT Aerospike like benchmark profile",
+ .mask = FIO_OPT_G_ACT,
+ },
+ {
+ .name = "Latency profiling",
+ .mask = FIO_OPT_G_LATPROF,
+ },
+ {
+ .name = "RBD I/O engine", /* rbd */
+ .mask = FIO_OPT_G_RBD,
+ },
+ {
+ .name = "GlusterFS I/O engine", /* gfapi,gfapi_async */
+ .mask = FIO_OPT_G_GFAPI,
+ },
+ {
+ .name = "MTD I/O engine", /* mtd */
.mask = FIO_OPT_G_MTD,
},
-
+ {
+ .name = "libhdfs I/O engine", /* libhdfs */
+ .mask = FIO_OPT_G_HDFS,
+ },
+ {
+ .name = "NBD I/O engine", /* NBD */
+ .mask = FIO_OPT_G_NBD,
+ },
+ {
+ .name = "libcufile I/O engine", /* libcufile */
+ .mask = FIO_OPT_G_LIBCUFILE,
+ },
+ {
+ .name = "DAOS File System (dfs) I/O engine", /* dfs */
+ .mask = FIO_OPT_G_DFS,
+ },
+ {
+ .name = "NFS I/O engine", /* nfs */
+ .mask = FIO_OPT_G_NFS,
+ },
{
.name = NULL,
- }
+ },
};
static const struct opt_group *group_from_mask(const struct opt_group *ogs,
const struct opt_group *opt_group_cat_from_mask(uint64_t *mask)
{
+ compiletime_assert(__FIO_OPT_G_NR <= 8 * sizeof(uint64_t),
+ "__FIO_OPT_G_NR");
+
return group_from_mask(fio_opt_cat_groups, mask, FIO_OPT_G_INVALID);
}