> -----Original Message----- > From: Fabiano Rosas <faro...@suse.de> > Sent: Wednesday, March 6, 2024 4:32 AM > To: Liu, Yuan1 <yuan1....@intel.com>; pet...@redhat.com > Cc: qemu-devel@nongnu.org; hao.xi...@bytedance.com; > bryan.zh...@bytedance.com; Liu, Yuan1 <yuan1....@intel.com>; Zou, Nanhai > <nanhai....@intel.com> > Subject: Re: [PATCH v4 3/8] configure: add --enable-qpl build option > > Yuan Liu <yuan1....@intel.com> writes: > > > add --enable-qpl and --disable-qpl options to enable and disable > > the QPL compression method for multifd migration. > > > > the Query Processing Library (QPL) is an open-source library > > that supports data compression and decompression features. > > > > The QPL compression is based on the deflate compression algorithm > > and use Intel In-Memory Analytics Accelerator(IAA) hardware for > > compression and decompression acceleration. > > > > Please refer to the following for more information about QPL > > > https://intel.github.io/qpl/documentation/introduction_docs/introduction.h > tml > > > > Signed-off-by: Yuan Liu <yuan1....@intel.com> > > Reviewed-by: Nanhai Zou <nanhai....@intel.com> > > --- > > meson.build | 18 ++++++++++++++++++ > > meson_options.txt | 2 ++ > > scripts/meson-buildoptions.sh | 3 +++ > > 3 files changed, 23 insertions(+) > > > > diff --git a/meson.build b/meson.build > > index c1dc83e4c0..2dea1e6834 100644 > > --- a/meson.build > > +++ b/meson.build > > @@ -1197,6 +1197,22 @@ if not get_option('zstd').auto() or have_block > > required: get_option('zstd'), > > method: 'pkg-config') > > endif > > +qpl = not_found > > +if not get_option('qpl').auto() > > + libqpl = cc.find_library('qpl', required: false) > > + if not libqpl.found() > > + error('libqpl not found, please install it from ' + > > + > 'https://intel.github.io/qpl/documentation/get_started_docs/installation.h > tml') > > + endif > > + libaccel = cc.find_library('accel-config', required: false) > > + if not libaccel.found() > > + error('libaccel-config not found, please install it from ' + > > + 'https://github.com/intel/idxd-config') > > accel-config seems to be packaged by many distros, I'm not sure we need > to reference the repository here. > > https://repology.org/project/accel-config/versions
Yes, accel-config has been added to many distributions, I will use pkgconfig to detect the libaccel and the version(at least v4.0). I have a question, I didn't find accel-config installation package from https://repology.org/project/accel-config/versions. Does using this link also require the user to build an accel-config package, and then install it? It is easy to install accel-config using the installation package, but I didn't find a repo that provides accel-config installation packages for most distributions. First check accel-config is available through pktconfig, and if it is not available, prompts users to install it from https://github.com/intel/idxd-config, is it OK? > > + endif > > + qpl = declare_dependency(dependencies: [libqpl, libaccel, > > + cc.find_library('dl', required: get_option('qpl'))], > > + link_args: ['-lstdc++']) > > +endif > > virgl = not_found > > > > have_vhost_user_gpu = have_tools and host_os == 'linux' and > pixman.found() > > @@ -2298,6 +2314,7 @@ config_host_data.set('CONFIG_MALLOC_TRIM', > has_malloc_trim) > > config_host_data.set('CONFIG_STATX', has_statx) > > config_host_data.set('CONFIG_STATX_MNT_ID', has_statx_mnt_id) > > config_host_data.set('CONFIG_ZSTD', zstd.found()) > > +config_host_data.set('CONFIG_QPL', qpl.found()) > > config_host_data.set('CONFIG_FUSE', fuse.found()) > > config_host_data.set('CONFIG_FUSE_LSEEK', fuse_lseek.found()) > > config_host_data.set('CONFIG_SPICE_PROTOCOL', spice_protocol.found()) > > @@ -4438,6 +4455,7 @@ summary_info += {'snappy support': snappy} > > summary_info += {'bzip2 support': libbzip2} > > summary_info += {'lzfse support': liblzfse} > > summary_info += {'zstd support': zstd} > > +summary_info += {'Query Processing Library support': qpl} > > summary_info += {'NUMA host support': numa} > > summary_info += {'capstone': capstone} > > summary_info += {'libpmem support': libpmem} > > diff --git a/meson_options.txt b/meson_options.txt > > index 0a99a059ec..06cd675572 100644 > > --- a/meson_options.txt > > +++ b/meson_options.txt > > @@ -259,6 +259,8 @@ option('xkbcommon', type : 'feature', value : > 'auto', > > description: 'xkbcommon support') > > option('zstd', type : 'feature', value : 'auto', > > description: 'zstd compression support') > > +option('qpl', type : 'feature', value : 'auto', > > + description: 'Query Processing Library support') > > option('fuse', type: 'feature', value: 'auto', > > description: 'FUSE block device export') > > option('fuse_lseek', type : 'feature', value : 'auto', > > diff --git a/scripts/meson-buildoptions.sh b/scripts/meson- > buildoptions.sh > > index 680fa3f581..784f74fde9 100644 > > --- a/scripts/meson-buildoptions.sh > > +++ b/scripts/meson-buildoptions.sh > > @@ -222,6 +222,7 @@ meson_options_help() { > > printf "%s\n" ' Xen PCI passthrough support' > > printf "%s\n" ' xkbcommon xkbcommon support' > > printf "%s\n" ' zstd zstd compression support' > > + printf "%s\n" ' qpl Query Processing Library support' > > } > > _meson_option_parse() { > > case $1 in > > @@ -562,6 +563,8 @@ _meson_option_parse() { > > --disable-xkbcommon) printf "%s" -Dxkbcommon=disabled ;; > > --enable-zstd) printf "%s" -Dzstd=enabled ;; > > --disable-zstd) printf "%s" -Dzstd=disabled ;; > > + --enable-qpl) printf "%s" -Dqpl=enabled ;; > > + --disable-qpl) printf "%s" -Dqpl=disabled ;; > > *) return 1 ;; > > esac > > }