All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fabiano Rosas <farosas@suse.de>
To: "Liu, Yuan1" <yuan1.liu@intel.com>,
	"peterx@redhat.com" <peterx@redhat.com>
Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
	"hao.xiang@bytedance.com" <hao.xiang@bytedance.com>,
	"bryan.zhang@bytedance.com" <bryan.zhang@bytedance.com>,
	"Zou, Nanhai" <nanhai.zou@intel.com>
Subject: RE: [PATCH v4 3/8] configure: add --enable-qpl build option
Date: Wed, 06 Mar 2024 08:56:17 -0300	[thread overview]
Message-ID: <87v85zshem.fsf@suse.de> (raw)
In-Reply-To: <PH7PR11MB59415A25C34ABC6C373B3324A3212@PH7PR11MB5941.namprd11.prod.outlook.com>

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


  reply	other threads:[~2024-03-06 11:57 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-04 14:00 [PATCH v4 0/8] Live Migration With IAA Yuan Liu
2024-03-04 14:00 ` [PATCH v4 1/8] docs/migration: add qpl compression feature Yuan Liu
2024-03-04 14:00 ` [PATCH v4 2/8] migration/multifd: add get_iov_count in the multifd method Yuan Liu
2024-03-05 20:24   ` Fabiano Rosas
2024-03-06  1:16     ` Liu, Yuan1
2024-03-04 14:00 ` [PATCH v4 3/8] configure: add --enable-qpl build option Yuan Liu
2024-03-05 20:32   ` Fabiano Rosas
2024-03-06  2:20     ` Liu, Yuan1
2024-03-06 11:56       ` Fabiano Rosas [this message]
2024-03-07  6:45         ` Liu, Yuan1
2024-03-04 14:00 ` [PATCH v4 4/8] migration/multifd: add qpl compression method Yuan Liu
2024-03-05 20:58   ` Fabiano Rosas
2024-03-06  2:29     ` Liu, Yuan1
2024-03-04 14:00 ` [PATCH v4 5/8] migration/multifd: implement initialization of qpl compression Yuan Liu
2024-03-04 14:00 ` [PATCH v4 6/8] migration/multifd: implement qpl compression and decompression Yuan Liu
2024-03-04 14:00 ` [PATCH v4 7/8] migration/multifd: fix zlib and zstd compression levels not working Yuan Liu
2024-03-04 14:00 ` [PATCH v4 8/8] tests/migration-test: add qpl compression test Yuan Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87v85zshem.fsf@suse.de \
    --to=farosas@suse.de \
    --cc=bryan.zhang@bytedance.com \
    --cc=hao.xiang@bytedance.com \
    --cc=nanhai.zou@intel.com \
    --cc=peterx@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=yuan1.liu@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.