fio: better info when engine not found
authorYigal Korman <ykorman@gmail.com>
Fri, 3 Jul 2020 12:38:43 +0000 (15:38 +0300)
committerJens Axboe <axboe@kernel.dk>
Fri, 3 Jul 2020 14:34:32 +0000 (08:34 -0600)
Jens 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@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
ioengines.c

index 78262bc1a3c70484701345e524f17fb06e60870e..c1b430a1722bfd2ee5f7566bbcf5775b413cd472 100644 (file)
@@ -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)