On 31 August 2017 at 21:13, <kusumi.tomohiro@xxxxxxxxx> wrote: > From: Tomohiro Kusumi <tkusumi@xxxxxxxxxx> > > To load ioengines, it should be done by either > 1) find the ioengine from the existing (static linked) ioengines or > 2) dlopen the path in case of external ioengine, > > but not to do 2 if 1 failed, as fio doesn't expect an ioengine to be > dynamically loaded unless with "external:" prefix by design. > > The current implementation (i.e. do 2 if 1 failed) happened to have > been able to load an external ioengine with below syntax without > "external:" prefix, but this is a bug rather than a feature. > > (--)ioengine=./engines/skeleton_external.so > > The design of the external ioengine option since below commits in 2007 > 7b395ca5('Prefix external io engine loading with 'external'') > 8a7bd877('Document loading external io engines') > is to use "external:/path/to/so" syntax. > > This commit fixes above bug, which also potentially avoids the case > where "/path/to/so" within the given "external:/path/to/so" happens > to match the existing name, though this is normally unlikely to happen. People have already started depending on the "wrong" behaviour e.g. ioengine=libfio_ceph_objectstore.so # must be found in your LD_LIBRARY_PATH from https://github.com/ceph/ceph/blob/master/src/test/fio/ceph-bluestore.fio . Because they're external it's hard to find out just how prevalent this behaviour is. -- Sitsofe | http://sucs.org/~sits/ -- To unsubscribe from this list: send the line "unsubscribe fio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html