From ba1d1aecf37295df8b6b8ccc9ef300168c3e3cbd Mon Sep 17 00:00:00 2001 From: Sergey Truschev Date: Fri, 31 Oct 2025 18:51:50 +0300 Subject: [PATCH] fio: add xattr ioengines The patch introduce ioengines that allow to measure extended attributes access: filesetxattr for xattrs value setting, filegetxattr - for lookup. Signed-off-by: Sergei Truschev --- HOWTO.rst | 42 ++++-- engines/fileoperations.c | 253 +++++++++++++++++++++++++++++++- examples/filexattr-ioengine.fio | 18 +++ examples/filexattr-ioengine.png | Bin 0 -> 58661 bytes fio.1 | 16 ++ optgroup.h | 2 + 6 files changed, 316 insertions(+), 15 deletions(-) create mode 100644 examples/filexattr-ioengine.fio create mode 100644 examples/filexattr-ioengine.png diff --git a/HOWTO.rst b/HOWTO.rst index 9f55a73bde..c9c42d34f9 100644 --- a/HOWTO.rst +++ b/HOWTO.rst @@ -2332,6 +2332,18 @@ I/O engine This engine is to measure file lookup and meta data access. Example job file: filestat-ioengine.fio. + **filesetxattr** + Simply set files extended attributes via setxattr(). You need to set 'filesize' + and 'nrfiles', so that files will be created. + This engine is to measure extended attributes access. + Example job file: filexattr-ioengine.fio. + + **filelistxattr** + Simply list and then get all files extended attributes via listxattr and getxattr. + You need to set 'filesize' and 'nrfiles', so that files will be created. + This engine is to measure extended attributes access. + Example job file: filexattr-ioengine.fio. + **filedelete** Simply delete the files by unlink() and do no I/O to them. You need to set 'filesize' and 'nrfiles', so that the files will be created. @@ -4854,17 +4866,21 @@ writes in the example above). In the order listed, they denote: For file and directory operation engines, **clat** denotes the time to complete one file or directory operation. - **filecreate engine**:the time cost to create a new file + **filecreate engine**: the time cost to create a new file - **filestat engine**: the time cost to look up an existing file + **filestat engine**: the time cost to look up an existing file - **filedelete engine**:the time cost to delete a file + **filesetxattr engine**:the time cost to set a bunch of file extended attributes - **dircreate engine**: the time cost to create a new directory + **filestat engine**: the time cost to look up all file extended attributes - **dirstat engine**: the time cost to look up an existing directory + **filedelete engine**: the time cost to delete a file - **dirdelete engine**: the time cost to delete a directory + **dircreate engine**: the time cost to create a new directory + + **dirstat engine**: the time cost to look up an existing directory + + **dirdelete engine**: the time cost to delete a directory **lat** Total latency. Same names as slat and clat, this denotes the time from @@ -4896,17 +4912,19 @@ writes in the example above). In the order listed, they denote: fundamental index to denote the performance. It means how many files or directories can be operated per second. - **filecreate engine**:number of files can be created per second + **filecreate engine**: number of files can be created per second + + **filestat engine**: number of files can be looked up per second - **filestat engine**: number of files can be looked up per second + **filesetxattr engine**: number of files for which extended attributes can been set per second - **filedelete engine**:number of files can be deleted per second + **filelistxattr engine**:number of all file extended attributes fetches per second - **dircreate engine**: number of directories can be created per second + **dircreate engine**: number of directories can be created per second - **dirstat engine**: number of directories can be looked up per second + **dirstat engine**: number of directories can be looked up per second - **dirdelete engine**: number of directories can be deleted per second + **dirdelete engine**: number of directories can be deleted per second **lat (nsec/usec/msec)** The distribution of I/O completion latencies. This is the time from when diff --git a/engines/fileoperations.c b/engines/fileoperations.c index e530335958..3e3e17a978 100644 --- a/engines/fileoperations.c +++ b/engines/fileoperations.c @@ -10,6 +10,9 @@ #include #include #include +#ifndef _WIN32 +#include +#endif #include #include "../fio.h" #include "../optgroup.h" @@ -31,13 +34,47 @@ struct filestat_options { unsigned int stat_type; }; +struct xattr_options { + void* pad; + int size; + int count; +}; + enum { FIO_FILESTAT_STAT = 1, FIO_FILESTAT_LSTAT = 2, FIO_FILESTAT_STATX = 3, }; -static struct fio_option options[] = { +#ifndef _WIN32 +static struct fio_option xattr_options[] = { + { + .name = "xattr_size", + .lname = "xattr_size", + .type = FIO_OPT_INT, + .off1 = offsetof(struct xattr_options, size), + .help = "Specify the size of the extended attribute to be set.", + .def = "512", + .category = FIO_OPT_C_ENGINE, + .group = FIO_OPT_G_FILEXATTR, + }, + { + .name = "xattr_count", + .lname = "xattr_count", + .type = FIO_OPT_INT, + .off1 = offsetof(struct xattr_options, count), + .help = "Specify the number of the extended attributes to be set.", + .def = "1", + .category = FIO_OPT_C_ENGINE, + .group = FIO_OPT_G_FILEXATTR, + }, + { + .name = NULL, + } +}; +#endif + +static struct fio_option stat_options[] = { { .name = "stat_type", .lname = "stat_type", @@ -206,6 +243,178 @@ static int stat_file(struct thread_data *td, struct fio_file *f) return 0; } +#ifndef _WIN32 +static int file_setxattr(struct thread_data *td, struct fio_file *f) +{ + struct xattr_options *o = td->eo; + struct timespec start; + int attrcount; + char attrname[256]; + char *attrval; + int ret; + + dprint(FD_FILE, "fd setxattr %s, count = %i, size = %i\n", f->file_name, + o->count, o->size); + + if (f->filetype != FIO_TYPE_FILE) { + log_err("fio: only files are supported\n"); + return 1; + } + if (!strcmp(f->file_name, "-")) { + log_err("fio: can't read/write to stdin/out\n"); + return 1; + } + + if (!td->o.disable_lat) + fio_gettime(&start, NULL); + + attrcount = o->count; + while (attrcount > 0) { + attrval = malloc(o->size); + snprintf(attrname, 256, "user.fio_xattr_%i", attrcount--); +#ifdef __linux__ + ret = setxattr(f->file_name, attrname, attrval, o->size, 0); +#elif defined (__APPLE__) + ret = setxattr(f->file_name, attrname, attrval, o->size, 0, 0); +#else + ret = -1; +#endif + free(attrval); + + if (ret == -1) { + char buf[FIO_VERROR_SIZE]; + int e = errno; + + snprintf(buf, sizeof(buf), "setxattr(%s)", f->file_name); + td_verror(td, e, buf); + return 1; + } + } + + if (!td->o.disable_lat) { + struct fc_data *data = td->io_ops_data; + uint64_t nsec; + + nsec = ntime_since_now(&start); + add_clat_sample(td, data->stat_ddir, nsec, 0, NULL); + } + + return 0; +} + +static int file_listxattr(struct thread_data *td, struct fio_file *f) +{ + struct timespec start; + + ssize_t buflen; + ssize_t vallen; + size_t namelen; + char *attrname; + char *attrbuf; + char *attrval; + + const char *errfn; + char buf[FIO_VERROR_SIZE]; + int e; + + dprint(FD_FILE, "fd listxattr %s\n", f->file_name); + + if (f->filetype != FIO_TYPE_FILE) { + log_err("fio: only files are supported\n"); + return 1; + } + if (!strcmp(f->file_name, "-")) { + log_err("fio: can't read/write to stdin/out\n"); + return 1; + } + + if (!td->o.disable_lat) + fio_gettime(&start, NULL); + +#ifdef __linux__ + buflen = listxattr(f->file_name, NULL, 0); +#elif defined (__APPLE__) + buflen = listxattr(f->file_name, NULL, 0, 0); +#else + buflen = -1; +#endif + if (buflen == -1) { + errfn = "listxattr"; + goto err; + } else if (buflen == 0) { + return 0; + } + + attrbuf = malloc(buflen); +#ifdef __linux__ + buflen = listxattr(f->file_name, attrbuf, buflen); +#elif defined (__APPLE__) + buflen = listxattr(f->file_name, attrbuf, buflen, 0); +#else + buflen = -1; +#endif + if (buflen == -1) { + errfn = "listxattr"; + goto err_cleanup; + } + + attrname = attrbuf; + while (buflen > 0) { +#ifdef __linux__ + vallen = getxattr(f->file_name, attrname, NULL, 0); +#elif defined (__APPLE__) + vallen = getxattr(f->file_name, attrname, NULL, 0, 0, 0); +#else + vallen = -1; +#endif + if (vallen == -1) { + errfn = "getxattr"; + goto err_cleanup; + } + + if (vallen > 0) { + attrval = malloc(vallen); +#ifdef __linux__ + vallen = getxattr(f->file_name, attrname, attrval, vallen); +#elif defined (__APPLE__) + vallen = getxattr(f->file_name, attrname, attrval, vallen, 0, 0); +#else + vallen = -1; +#endif + free(attrval); + if (vallen == -1) { + errfn = "getxattr"; + goto err_cleanup; + } + } + + namelen = strlen(attrname) + 1; + buflen -= namelen; + attrname += namelen; + } + + free(attrbuf); + + if (!td->o.disable_lat) { + struct fc_data *data = td->io_ops_data; + uint64_t nsec; + + nsec = ntime_since_now(&start); + add_clat_sample(td, data->stat_ddir, nsec, 0, NULL); + } + + return 0; + +err_cleanup: + free(attrbuf); +err: + e = errno; + snprintf(buf, sizeof(buf), "%s(%s)", errfn, f->file_name); + td_verror(td, e, buf); + return 1; +} +#endif + static int delete_file(struct thread_data *td, struct fio_file *f) { struct timespec start; @@ -341,7 +550,7 @@ static struct ioengine_ops ioengine_filestat = { .open_file = stat_file, .flags = FIO_SYNCIO | FIO_FAKEIO | FIO_NOSTATS | FIO_NOFILEHASH, - .options = options, + .options = stat_options, .option_struct_size = sizeof(struct filestat_options), }; @@ -385,7 +594,7 @@ static struct ioengine_ops ioengine_dirstat = { .unlink_file = remove_dir, .flags = FIO_DISKLESSIO | FIO_SYNCIO | FIO_FAKEIO | FIO_NOSTATS | FIO_NOFILEHASH, - .options = options, + .options = stat_options, .option_struct_size = sizeof(struct filestat_options), }; @@ -404,6 +613,36 @@ static struct ioengine_ops ioengine_dirdelete = { FIO_NOSTATS | FIO_NOFILEHASH, }; +#ifndef _WIN32 +static struct ioengine_ops ioengine_filesetxattr = { + .name = "filesetxattr", + .version = FIO_IOOPS_VERSION, + .init = init, + .cleanup = cleanup, + .queue = queue_io, + .invalidate = invalidate_do_nothing, + .get_file_size = generic_get_file_size, + .open_file = file_setxattr, + .flags = FIO_SYNCIO | FIO_FAKEIO | + FIO_NOSTATS | FIO_NOFILEHASH, + .options = xattr_options, + .option_struct_size = sizeof(struct xattr_options), +}; + +static struct ioengine_ops ioengine_filelistxattr = { + .name = "filelistxattr", + .version = FIO_IOOPS_VERSION, + .init = init, + .invalidate = invalidate_do_nothing, + .cleanup = cleanup, + .queue = queue_io, + .get_file_size = generic_get_file_size, + .open_file = file_listxattr, + .flags = FIO_SYNCIO | FIO_FAKEIO | + FIO_NOSTATS | FIO_NOFILEHASH, +}; +#endif + static void fio_init fio_fileoperations_register(void) { register_ioengine(&ioengine_filecreate); @@ -412,6 +651,10 @@ static void fio_init fio_fileoperations_register(void) register_ioengine(&ioengine_dircreate); register_ioengine(&ioengine_dirstat); register_ioengine(&ioengine_dirdelete); +#ifndef _WIN32 + register_ioengine(&ioengine_filesetxattr); + register_ioengine(&ioengine_filelistxattr); +#endif } static void fio_exit fio_fileoperations_unregister(void) @@ -422,4 +665,8 @@ static void fio_exit fio_fileoperations_unregister(void) unregister_ioengine(&ioengine_dircreate); unregister_ioengine(&ioengine_dirstat); unregister_ioengine(&ioengine_dirdelete); +#ifndef _WIN32 + unregister_ioengine(&ioengine_filesetxattr); + unregister_ioengine(&ioengine_filelistxattr); +#endif } diff --git a/examples/filexattr-ioengine.fio b/examples/filexattr-ioengine.fio new file mode 100644 index 0000000000..bbf2c7fe63 --- /dev/null +++ b/examples/filexattr-ioengine.fio @@ -0,0 +1,18 @@ +# Example filesetxattr and filelistattr job + +[global] +nrfiles=100 +filesize=4k +openfiles=1 +directory=./small_files +filename_format=small_file.$jobnum.$filenum + +[setxattr] +ioengine=filesetxattr +xattr_count=2 +xattr_size=128 + +[listxattr] +stonewall=1 +ioengine=filelistxattr + diff --git a/examples/filexattr-ioengine.png b/examples/filexattr-ioengine.png new file mode 100644 index 0000000000000000000000000000000000000000..aff245926c2c384e6d84b7ac6bc560d9ce3c6642 GIT binary patch literal 58661 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 j4RyW@5*_N2Pgyb0;Pq5YPBiC