Jans suggested we provide the user with the likely reasons why we failed to load the given engine. This should help better resolve these issues. Signed-off-by: Yigal Korman <ykorman@xxxxxxxxx> --- ioengines.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/ioengines.c b/ioengines.c index 78262bc1..c1b430a1 100644 --- a/ioengines.c +++ b/ioengines.c @@ -79,10 +79,16 @@ static struct ioengine_ops *find_ioengine(const char *name) static void *dlopen_external(struct thread_data *td, const char *engine) { char engine_path[PATH_MAX]; + void *dlhandle; sprintf(engine_path, "%s/lib%s.so", FIO_EXT_ENG_DIR, engine); - return dlopen(engine_path, RTLD_LAZY); + dlhandle = dlopen(engine_path, RTLD_LAZY); + if (!dlhandle) + log_info("Engine %s not found; Either name is invalid, was not built, or fio-engine-%s package is missing.\n", + engine, engine); + + return dlhandle; } #else #define dlopen_external(td, engine) (NULL) -- 2.17.1