X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=profile.c;h=6a80dec2c7b7479cff92d24c47d2a0d9ac8fa691;hp=3ed9127b9007e6a5978ef8008e90b62bd2bac59c;hb=5a3cd5f3e9b4a38c961279cb8616ac1803735139;hpb=7eb36574da703ebdfac414d7428712320f552a96 diff --git a/profile.c b/profile.c index 3ed9127b..6a80dec2 100644 --- a/profile.c +++ b/profile.c @@ -31,7 +31,7 @@ int load_profile(const char *profile) ops = find_profile(profile); if (ops) { ops->prep_cmd(); - add_job_opts(ops->cmdline); + add_job_opts(ops->cmdline, FIO_CLIENT_TYPE_CLI); return 0; } @@ -42,7 +42,7 @@ int load_profile(const char *profile) static int add_profile_options(struct profile_ops *ops) { struct fio_option *o; - + if (!ops->options) return 0; @@ -93,6 +93,26 @@ void profile_add_hooks(struct thread_data *td) if (!ops) return; - if (ops->io_ops) + if (ops->io_ops) { td->prof_io_ops = *ops->io_ops; + td->flags |= TD_F_PROFILE_OPS; + } +} + +int profile_td_init(struct thread_data *td) +{ + struct prof_io_ops *ops = &td->prof_io_ops; + + if (ops->td_init) + return ops->td_init(td); + + return 0; +} + +void profile_td_exit(struct thread_data *td) +{ + struct prof_io_ops *ops = &td->prof_io_ops; + + if (ops->td_exit) + ops->td_exit(td); }