Re: [PATCH v2 0/4] fio: option to make engines load dynamically

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

 



On 7/3/20 6:38 AM, Yigal Korman wrote:
> The following patchset provides a configuration option that converts a
> select set of engines into external engines that are loaded dynamically
> on demand.  The purpose of this option is to provide distribution
> packagers the ability to separate the core fio functionality from the
> additional optional engines.  Some of the optional engines have multiple
> dependencies that increase the footprint of fio considerably even when
> the user requires only the basic 'sync' engine.
> 
> For example, without the patchset, on a Fedora 31 system, installing fio
> brings a total of 38 package dependencies, the installed size is 57MB.
> With the patchset, installing fio brings a single dependency
> (numactl-libs) and the installed size is 2.1MB.
> 
> These numbers are relatively small but when one needs to bring fio to
> an offline server, collecting these dependencies is a hassle.
> Also, bundling fio into a container where the base image is small
> (Fedora 31 is ~200MB), the install size becomes more prominent.
> 
> I've tried to keep the changes as small and unobtrusive as possible.
> The only significant change is the way an engine is defined in the
> Makefile (variables are now prefixed with engine name).  If the option
> is provided, the Makefile will build the engines as external libraries
> and install them in /usr/lib/fio by default.  Fio will then search for
> the engines in that location if the engine is not compiled in.  The last
> patch should help with the migration to the new scheme by suggesting
> that an additional package is required if the engine is not found.
> 
> Future work to consider:
> * Move the engine help text from fio to the engines themselves.  Create
> * a whitelist of engines so that only engines that are part of the main
> * codebase are searched and loaded automatically.  Convert more engines
> * to this scheme. The current set of engines was selected based on
> * simplicity and external dependencies. Engines with multiple exported
> * flavors (i.e. glusterfs) are not converted yet.

Looks good to me, I've applied it. Thanks!

-- 
Jens Axboe




[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