> -----Original Message----- > From: Fabiano Rosas <faro...@suse.de> > Sent: Wednesday, March 6, 2024 7:56 PM > To: Liu, Yuan1 <yuan1....@intel.com>; pet...@redhat.com > Cc: qemu-devel@nongnu.org; hao.xi...@bytedance.com; > bryan.zh...@bytedance.com; Zou, Nanhai <nanhai....@intel.com> > Subject: RE: [PATCH v4 3/8] configure: add --enable-qpl build option > > "Liu, Yuan1" <yuan1....@intel.com> writes: > > >> -----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? > > That is just an aggregated list of distros and the version of the > package they provide in their repos. So I'm just pointing out to you > that there seems to be a packaged accel-config for most distros > already. Which means we just want to say "install accel-config" and > users should be able to use their distro's package manager. > > > > > 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? > > There's no need, just check if its available and suggest the user to > install it. We already have the link in the docs.
Get it, thanks~ > > > >> > + 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 > >> > }