Re: [PATCH 4/5] fix load_ioengine() not to support no "external:" prefix

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2017-09-01 7:52 GMT+03:00 Sitsofe Wheeler <sitsofe@xxxxxxxxx>:
> 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.

Then they can add "external:".
If it has ever been official (in docs/etc), then the program should
maintain such behavior, like fio keeps kb_base=1024 by default.

This isn't the first time fio broke external ioengines to begin with,
and fio doesn't guarantee external ioengines.
e.g. this commit more than a year ago broke ABI.
565e784df05c2529479eed8a38701a33b01894bd

It's essentially the same as non mainline'd kernel modules are on
their own to be uptodate with upstream.

>
> --
> 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



[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux