[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
RE: [PATCH v4 3/8] configure: add --enable-qpl build option
From: |
Fabiano Rosas |
Subject: |
RE: [PATCH v4 3/8] configure: add --enable-qpl build option |
Date: |
Wed, 06 Mar 2024 08:56:17 -0300 |
"Liu, Yuan1" <yuan1.liu@intel.com> writes:
>> -----Original Message-----
>> From: Fabiano Rosas <farosas@suse.de>
>> Sent: Wednesday, March 6, 2024 4:32 AM
>> To: Liu, Yuan1 <yuan1.liu@intel.com>; peterx@redhat.com
>> Cc: qemu-devel@nongnu.org; hao.xiang@bytedance.com;
>> bryan.zhang@bytedance.com; Liu, Yuan1 <yuan1.liu@intel.com>; Zou, Nanhai
>> <nanhai.zou@intel.com>
>> Subject: Re: [PATCH v4 3/8] configure: add --enable-qpl build option
>>
>> Yuan Liu <yuan1.liu@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.liu@intel.com>
>> > Reviewed-by: Nanhai Zou <nanhai.zou@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.
>
>> > + 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
>> > }
[PATCH v4 4/8] migration/multifd: add qpl compression method, Yuan Liu, 2024/03/05
[PATCH v4 5/8] migration/multifd: implement initialization of qpl compression, Yuan Liu, 2024/03/05
[PATCH v4 6/8] migration/multifd: implement qpl compression and decompression, Yuan Liu, 2024/03/05
[PATCH v4 7/8] migration/multifd: fix zlib and zstd compression levels not working, Yuan Liu, 2024/03/05
[PATCH v4 8/8] tests/migration-test: add qpl compression test, Yuan Liu, 2024/03/05