Message ID | 20240610102110.900410-5-yuan1.liu@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Live Migration With IAA | expand |
Yuan Liu <yuan1.liu@intel.com> writes: > add the Query Processing Library (QPL) compression method > > Introduce the qpl as a new multifd migration compression method, it can > use In-Memory Analytics Accelerator(IAA) to accelerate compression and > decompression, which can not only reduce network bandwidth requirement > but also reduce host compression and decompression CPU overhead. > > How to enable qpl compression during migration: > migrate_set_parameter multifd-compression qpl > > There is no qpl compression level parameter added since it only supports > level one, users do not need to specify the qpl compression level. > > Signed-off-by: Yuan Liu <yuan1.liu@intel.com> > Reviewed-by: Nanhai Zou <nanhai.zou@intel.com> > Reviewed-by: Peter Xu <peterx@redhat.com> > Reviewed-by: Fabiano Rosas <farosas@suse.de> I don't think I ever reviewed this patch. Please drop this when you resubmit.
Fabiano Rosas <farosas@suse.de> writes: > Yuan Liu <yuan1.liu@intel.com> writes: > >> add the Query Processing Library (QPL) compression method >> >> Introduce the qpl as a new multifd migration compression method, it can >> use In-Memory Analytics Accelerator(IAA) to accelerate compression and >> decompression, which can not only reduce network bandwidth requirement >> but also reduce host compression and decompression CPU overhead. >> >> How to enable qpl compression during migration: >> migrate_set_parameter multifd-compression qpl >> >> There is no qpl compression level parameter added since it only supports >> level one, users do not need to specify the qpl compression level. >> >> Signed-off-by: Yuan Liu <yuan1.liu@intel.com> >> Reviewed-by: Nanhai Zou <nanhai.zou@intel.com> >> Reviewed-by: Peter Xu <peterx@redhat.com> >> Reviewed-by: Fabiano Rosas <farosas@suse.de> > > I don't think I ever reviewed this patch. Please drop this when you > resubmit. Actually, just leave it. I thought you'd need to fix the output size on 6/7, but I saw you just moved it elsewhere. So no need to respin. I'll queue this version shortly unless anyone else has comments.
> -----Original Message----- > From: Fabiano Rosas <farosas@suse.de> > Sent: Wednesday, June 12, 2024 10:27 PM > To: Liu, Yuan1 <yuan1.liu@intel.com>; peterx@redhat.com; > pbonzini@redhat.com; marcandre.lureau@redhat.com; berrange@redhat.com; > thuth@redhat.com; philmd@linaro.org > Cc: qemu-devel@nongnu.org; Liu, Yuan1 <yuan1.liu@intel.com>; Zou, Nanhai > <nanhai.zou@intel.com>; shameerali.kolothum.thodi@huawei.com > Subject: Re: [PATCH v8 4/7] migration/multifd: add qpl compression method > > Yuan Liu <yuan1.liu@intel.com> writes: > > > add the Query Processing Library (QPL) compression method > > > > Introduce the qpl as a new multifd migration compression method, it can > > use In-Memory Analytics Accelerator(IAA) to accelerate compression and > > decompression, which can not only reduce network bandwidth requirement > > but also reduce host compression and decompression CPU overhead. > > > > How to enable qpl compression during migration: > > migrate_set_parameter multifd-compression qpl > > > > There is no qpl compression level parameter added since it only supports > > level one, users do not need to specify the qpl compression level. > > > > Signed-off-by: Yuan Liu <yuan1.liu@intel.com> > > Reviewed-by: Nanhai Zou <nanhai.zou@intel.com> > > Reviewed-by: Peter Xu <peterx@redhat.com> > > Reviewed-by: Fabiano Rosas <farosas@suse.de> > > I don't think I ever reviewed this patch. Please drop this when you > resubmit. You are right, this is my mistake, I am very sorry.
> -----Original Message----- > From: Fabiano Rosas <farosas@suse.de> > Sent: Wednesday, June 12, 2024 10:31 PM > To: Liu, Yuan1 <yuan1.liu@intel.com>; peterx@redhat.com; > pbonzini@redhat.com; marcandre.lureau@redhat.com; berrange@redhat.com; > thuth@redhat.com; philmd@linaro.org > Cc: qemu-devel@nongnu.org; Liu, Yuan1 <yuan1.liu@intel.com>; Zou, Nanhai > <nanhai.zou@intel.com>; shameerali.kolothum.thodi@huawei.com > Subject: Re: [PATCH v8 4/7] migration/multifd: add qpl compression method > > Fabiano Rosas <farosas@suse.de> writes: > > > Yuan Liu <yuan1.liu@intel.com> writes: > > > >> add the Query Processing Library (QPL) compression method > >> > >> Introduce the qpl as a new multifd migration compression method, it can > >> use In-Memory Analytics Accelerator(IAA) to accelerate compression and > >> decompression, which can not only reduce network bandwidth requirement > >> but also reduce host compression and decompression CPU overhead. > >> > >> How to enable qpl compression during migration: > >> migrate_set_parameter multifd-compression qpl > >> > >> There is no qpl compression level parameter added since it only > supports > >> level one, users do not need to specify the qpl compression level. > >> > >> Signed-off-by: Yuan Liu <yuan1.liu@intel.com> > >> Reviewed-by: Nanhai Zou <nanhai.zou@intel.com> > >> Reviewed-by: Peter Xu <peterx@redhat.com> > >> Reviewed-by: Fabiano Rosas <farosas@suse.de> > > > > I don't think I ever reviewed this patch. Please drop this when you > > resubmit. > > Actually, just leave it. I thought you'd need to fix the output size on > 6/7, but I saw you just moved it elsewhere. So no need to respin. I'll > queue this version shortly unless anyone else has comments. Got it and thank you for your review.
diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-system.c index d79d6f4b53..6ccd7224f6 100644 --- a/hw/core/qdev-properties-system.c +++ b/hw/core/qdev-properties-system.c @@ -659,7 +659,7 @@ const PropertyInfo qdev_prop_fdc_drive_type = { const PropertyInfo qdev_prop_multifd_compression = { .name = "MultiFDCompression", .description = "multifd_compression values, " - "none/zlib/zstd", + "none/zlib/zstd/qpl", .enum_table = &MultiFDCompression_lookup, .get = qdev_propinfo_get_enum, .set = qdev_propinfo_set_enum, diff --git a/migration/meson.build b/migration/meson.build index bdc3244bce..5f146fe8a9 100644 --- a/migration/meson.build +++ b/migration/meson.build @@ -39,6 +39,7 @@ endif system_ss.add(when: rdma, if_true: files('rdma.c')) system_ss.add(when: zstd, if_true: files('multifd-zstd.c')) +system_ss.add(when: qpl, if_true: files('multifd-qpl.c')) specific_ss.add(when: 'CONFIG_SYSTEM_ONLY', if_true: files('ram.c', diff --git a/migration/multifd-qpl.c b/migration/multifd-qpl.c new file mode 100644 index 0000000000..056a68a060 --- /dev/null +++ b/migration/multifd-qpl.c @@ -0,0 +1,20 @@ +/* + * Multifd qpl compression accelerator implementation + * + * Copyright (c) 2023 Intel Corporation + * + * Authors: + * Yuan Liu<yuan1.liu@intel.com> + * + * This work is licensed under the terms of the GNU GPL, version 2 or later. + * See the COPYING file in the top-level directory. + */ +#include "qemu/osdep.h" +#include "qemu/module.h" + +static void multifd_qpl_register(void) +{ + /* noop */ +} + +migration_init(multifd_qpl_register); diff --git a/migration/multifd.h b/migration/multifd.h index c9d9b09239..5b7d9b15f8 100644 --- a/migration/multifd.h +++ b/migration/multifd.h @@ -40,6 +40,7 @@ MultiFDRecvData *multifd_get_recv_data(void); #define MULTIFD_FLAG_NOCOMP (0 << 1) #define MULTIFD_FLAG_ZLIB (1 << 1) #define MULTIFD_FLAG_ZSTD (2 << 1) +#define MULTIFD_FLAG_QPL (4 << 1) /* This value needs to be a multiple of qemu_target_page_size() */ #define MULTIFD_PACKET_SIZE (512 * 1024) diff --git a/qapi/migration.json b/qapi/migration.json index a351fd3714..f97bc3bb93 100644 --- a/qapi/migration.json +++ b/qapi/migration.json @@ -554,11 +554,16 @@ # # @zstd: use zstd compression method. # +# @qpl: use qpl compression method. Query Processing Library(qpl) is based on +# the deflate compression algorithm and use the Intel In-Memory Analytics +# Accelerator(IAA) accelerated compression and decompression. (Since 9.1) +# # Since: 5.0 ## { 'enum': 'MultiFDCompression', 'data': [ 'none', 'zlib', - { 'name': 'zstd', 'if': 'CONFIG_ZSTD' } ] } + { 'name': 'zstd', 'if': 'CONFIG_ZSTD' }, + { 'name': 'qpl', 'if': 'CONFIG_QPL' } ] } ## # @MigMode: