[PATCH 4/5] migration iaa-compress: Add IAA initialization and deinitialization

2023-10-19 Thread Yuan Liu
This patch defines the structure for IAA jobs related to data compression and decompression, as well as the initialization and deinitialization processes for IAA. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- migration/iaa-ram-compress.c | 152

[PATCH 1/5] configure: add qpl meson option

2023-10-19 Thread Yuan Liu
for data (de)compression using IAA during the live migration process. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- meson.build | 9 - meson_options.txt | 2 ++ scripts/meson-buildoptions.sh | 3 +++ 3 files changed, 13 insertions(+), 1 deletion(-) diff

[PATCH 3/5] ram compress: Refactor ram compression functions

2023-10-19 Thread Yuan Liu
Refactor legacy RAM compression functions to support both IAA compression and CPU compression. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- migration/migration.c| 6 +-- migration/ram-compress.c | 81 migration/ram-compress.h | 10

[PATCH 2/5] qapi/migration: Introduce compress-with-iaa migration parameter

2023-10-19 Thread Yuan Liu
compress on. If the migration compression capability is enabled and the IAA compression parameter is set, IAA will be used instead of CPU for data (de)compression. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- migration/migration-hmp-cmds.c | 8 migration/options.c| 20

[PATCH 5/5] migration iaa-compress: Implement IAA compression

2023-10-19 Thread Yuan Liu
Implement the functions of IAA for data compression and decompression. The implementation uses non-blocking job submission and polling to check the job completion status to reduce IAA's overhead in the live migration process. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- migration/iaa

[PATCH 0/5] Live Migration Acceleration with IAA Compression

2023-10-19 Thread Yuan Liu
, resulting in performance gains. The implementation of the IAA (de)compression code is based on Intel Query Processing Library (QPL), an open-source software project designed for IAA high-level software programming. Best regards, Yuan Liu Yuan Liu (5): configure: add qpl meson option qapi

[PATCH v2 4/4] multifd: Introduce QPL compression accelerator

2023-11-09 Thread Yuan Liu
the Zlib compression algorithm. QPL can automatically choose software or hardware acceleration based on the platform. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- migration/meson.build | 1 + migration/multifd-qpl.c | 326 2 files changed, 327

[PATCH v2 1/4] migration: Introduce multifd-compression-accel parameter

2023-11-09 Thread Yuan Liu
, the acceleration function can be disabled. Similarly, users can explicitly specify a specific accelerator name, such as multifd-compression-accel=qpl. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- hw/core/qdev-properties-system.c| 11 +++ include/hw/qdev-properties-system.h | 4

[PATCH v2 0/4] Live Migration Acceleration with IAA Compression

2023-11-09 Thread Yuan Liu
in the multifd compression accelerator - fixed the issue that QPL was compiled into the migration module by default Yuan Liu (4): migration: Introduce multifd-compression-accel parameter multifd: Implement multifd compression accelerator configure: add qpl option multifd: Introduce

[PATCH v2 2/4] multifd: Implement multifd compression accelerator

2023-11-09 Thread Yuan Liu
when starting multifd live migration, if the compression method is enabled, compression method can be accelerated using accelerators. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- migration/multifd.c | 38 -- migration/multifd.h | 8 2 files

[PATCH v2 3/4] configure: add qpl option

2023-11-09 Thread Yuan Liu
during the live migration. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- meson.build | 7 +++ meson_options.txt | 2 ++ scripts/meson-buildoptions.sh | 3 +++ 3 files changed, 12 insertions(+) diff --git a/meson.build b/meson.build index 259dc5f308

[PATCH v3 1/4] migration: Introduce multifd-compression-accel parameter

2024-01-03 Thread Yuan Liu
, the acceleration function can be disabled. Similarly, users can explicitly specify a specific accelerator name, such as multifd-compression-accel=qpl. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- hw/core/qdev-properties-system.c| 11 ++ include/hw/qdev-properties-system.h | 4

[PATCH v3 2/4] multifd: Implement multifd compression accelerator

2024-01-03 Thread Yuan Liu
when starting multifd live migration, if the compression method is enabled, compression method can be accelerated using accelerators. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou Reviewed-by: Fabiano Rosas --- migration/multifd.c | 40 ++-- migration

[PATCH v3 3/4] configure: add qpl option

2024-01-03 Thread Yuan Liu
during the live migration. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- 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

[PATCH v3 0/4] Live Migration Acceleration with IAA Compression

2024-01-03 Thread Yuan Liu
in multifd.c file Yuan Liu (4): migration: Introduce multifd-compression-accel parameter multifd: Implement multifd compression accelerator configure: add qpl option multifd: Introduce QPL compression accelerator hw/core/qdev-properties-system.c| 11 + include/hw/qdev-properties

[PATCH v3 4/4] multifd: Introduce QPL compression accelerator

2024-01-03 Thread Yuan Liu
the Zlib compression algorithm. QPL can automatically choose software or hardware acceleration based on the platform. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- migration/meson.build | 1 + migration/multifd-qpl.c | 323 2 files changed, 324

[PATCH v6 4/7] migration/multifd: add qpl compression method

2024-05-06 Thread Yuan Liu
. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- hw/core/qdev-properties-system.c | 2 +- migration/meson.build| 1 + migration/multifd-qpl.c | 20 migration/multifd.h | 1 + qapi/migration.json | 7 ++- 5 files changed

[PATCH v6 6/7] migration/multifd: implement qpl compression and decompression

2024-05-06 Thread Yuan Liu
-by: Yuan Liu Reviewed-by: Nanhai Zou --- migration/multifd-qpl.c | 284 +++- 1 file changed, 280 insertions(+), 4 deletions(-) diff --git a/migration/multifd-qpl.c b/migration/multifd-qpl.c index 89fa51091a..9a1fddbdd0 100644 --- a/migration/multifd-qpl.c +++ b

[PATCH v6 2/7] migration/multifd: put IOV initialization into compression method

2024-05-06 Thread Yuan Liu
Different compression methods may require different numbers of IOVs. Based on streaming compression of zlib and zstd, all pages will be compressed to a data block, so two IOVs are needed for packet header and compressed data block. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- migration

[PATCH v6 3/7] configure: add --enable-qpl build option

2024-05-06 Thread Yuan Liu
In-Memory Analytics Accelerator(IAA) hardware for compression and decompression acceleration. For more live migration with IAA, please refer to the document docs/devel/migration/qpl-compression.rst Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- meson.build | 8

[PATCH v6 1/7] docs/migration: add qpl compression feature

2024-05-06 Thread Yuan Liu
add Intel Query Processing Library (QPL) compression method introduction Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- docs/devel/migration/features.rst| 1 + docs/devel/migration/qpl-compression.rst | 262 +++ 2 files changed, 263 insertions(+) create mode

[PATCH v6 7/7] tests/migration-test: add qpl compression test

2024-05-06 Thread Yuan Liu
-by: Yuan Liu Reviewed-by: Nanhai Zou --- tests/qtest/migration-test.c | 24 1 file changed, 24 insertions(+) diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c index 5d6d8cd634..0f75ed7c49 100644 --- a/tests/qtest/migration-test.c +++ b/tests/qtest

[PATCH v6 5/7] migration/multifd: implement initialization of qpl compression

2024-05-06 Thread Yuan Liu
is not available, the qpl compression will fallback to the software path. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- migration/multifd-qpl.c | 272 +++- 1 file changed, 271 insertions(+), 1 deletion(-) diff --git a/migration/multifd-qpl.c b/migration

[PATCH v5 7/7] tests/migration-test: add qpl compression test

2024-03-20 Thread Yuan Liu
add qpl to compression method test for multifd migration the migration with qpl compression needs to access IAA hardware resource, please run "check-qtest" with sudo or root permission, otherwise migration test will fail Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- t

[PATCH v5 5/7] migration/multifd: implement initialization of qpl compression

2024-03-20 Thread Yuan Liu
compression initialization will fail. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- migration/multifd-qpl.c | 243 +++- 1 file changed, 242 insertions(+), 1 deletion(-) diff --git a/migration/multifd-qpl.c b/migration/multifd-qpl.c index 056a68a060

[PATCH v5 1/7] docs/migration: add qpl compression feature

2024-03-20 Thread Yuan Liu
add Intel Query Processing Library (QPL) compression method introduction Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- docs/devel/migration/features.rst| 1 + docs/devel/migration/qpl-compression.rst | 231 +++ 2 files changed, 232 insertions(+) create mode

[PATCH v5 4/7] migration/multifd: add qpl compression method

2024-03-20 Thread Yuan Liu
method for migration. How to enable qpl compression during migration: migrate_set_parameter multifd-compression qpl The qpl only supports one compression level, there is no qpl compression level parameter added, users do not need to specify the qpl compression level. Signed-off-by: Yuan Liu

[PATCH v5 3/7] configure: add --enable-qpl build option

2024-03-20 Thread Yuan Liu
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.html Signed-off-by: Yuan Liu Reviewed-by: Nanhai

[PATCH v5 2/7] migration/multifd: put IOV initialization into compression method

2024-03-20 Thread Yuan Liu
Different compression methods may require different numbers of IOVs. Based on streaming compression of zlib and zstd, all pages will be compressed to a data block, so two IOVs are needed for packet header and compressed data block. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- migration

[PATCH v5 6/7] migration/multifd: implement qpl compression and decompression

2024-03-20 Thread Yuan Liu
each qpl job is used to (de)compress a normal page and it can be processed independently by the IAA hardware. All qpl jobs are submitted to the hardware at once, and wait for all jobs completion. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- migration/multifd-qpl.c | 229

[PATCH 0/1] Solve zero page causing multiple page faults

2024-04-02 Thread Yuan Liu
el.org/all/CAAYibXib+TWnJpV22E=adncdBmwXJRqgRjJXK7X71J=bdfa...@mail.gmail.com/ 2. https://lore.kernel.org/all/ph7pr11mb594123f7eefebfce219af100a3...@ph7pr11mb5941.namprd11.prod.outlook.com/ Yuan Liu (1): migration/multifd: solve zero page causing multiple page faults migration/multifd-zero-

[PATCH 1/1] migration/multifd: solve zero page causing multiple page faults

2024-04-02 Thread Yuan Liu
it is unlikely that the zero page will be migrated multiple times. Signed-off-by: Yuan Liu --- migration/multifd-zero-page.c | 4 +++- migration/multifd-zlib.c | 1 + migration/multifd-zstd.c | 1 + migration/multifd.c | 1 + migration/ram.c | 4 migration/ram.h

[PATCH v4 1/8] docs/migration: add qpl compression feature

2024-03-04 Thread Yuan Liu
add QPL compression method introduction Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- docs/devel/migration/features.rst| 1 + docs/devel/migration/qpl-compression.rst | 231 +++ 2 files changed, 232 insertions(+) create mode 100644 docs/devel/migration/qpl

[PATCH v4 3/8] configure: add --enable-qpl build option

2024-03-04 Thread Yuan Liu
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.html Signed-off-by: Yuan Liu Reviewed-by: Nanhai

[PATCH v4 4/8] migration/multifd: add qpl compression method

2024-03-04 Thread Yuan Liu
method for migration. How to enable qpl compression during migration: migrate_set_parameter multifd-compression qpl The qpl only supports one compression level, there is no qpl compression level parameter added, users do not need to specify the qpl compression level. Signed-off-by: Yuan Liu

[PATCH v4 8/8] tests/migration-test: add qpl compression test

2024-03-04 Thread Yuan Liu
add qpl to compression method test for multifd migration the migration with qpl compression needs to access IAA hardware resource, please run "check-qtest" with sudo or root permission, otherwise migration test will fail Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- t

[PATCH v4 7/8] migration/multifd: fix zlib and zstd compression levels not working

2024-03-04 Thread Yuan Liu
add zlib and zstd compression levels in multifd parameter testing and application and add compression level tests Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou Reported-by: Xiaohui Li --- migration/options.c | 12 tests/qtest/migration-test.c | 16 2

[PATCH v4 2/8] migration/multifd: add get_iov_count in the multifd method

2024-03-04 Thread Yuan Liu
this data block. For no compression, each IOV is used to send a page, so the number of IOVs required is the same as the number of pages. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- migration/multifd-zlib.c | 18 +- migration/multifd-zstd.c | 18 +- migration

[PATCH v4 6/8] migration/multifd: implement qpl compression and decompression

2024-03-04 Thread Yuan Liu
each qpl job is used to (de)compress a normal page and it can be processed independently by the IAA hardware. All qpl jobs are submitted to the hardware at once, and wait for all jobs completion. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- migration/multifd-qpl.c | 219

[PATCH v4 5/8] migration/multifd: implement initialization of qpl compression

2024-03-04 Thread Yuan Liu
compression initialization will fail. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- migration/multifd-qpl.c | 128 ++-- 1 file changed, 122 insertions(+), 6 deletions(-) diff --git a/migration/multifd-qpl.c b/migration/multifd-qpl.c index 6b94e732ac

[PATCH v7 3/7] configure: add --enable-qpl build option

2024-06-04 Thread Yuan Liu
In-Memory Analytics Accelerator(IAA) hardware for compression and decompression acceleration. For more live migration with IAA, please refer to the document docs/devel/migration/qpl-compression.rst Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- meson.build | 8

[PATCH v7 4/7] migration/multifd: add qpl compression method

2024-06-04 Thread Yuan Liu
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

[PATCH v7 1/7] docs/migration: add qpl compression feature

2024-06-04 Thread Yuan Liu
add Intel Query Processing Library (QPL) compression method introduction Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- docs/devel/migration/features.rst| 1 + docs/devel/migration/qpl-compression.rst | 262 +++ 2 files changed, 263 insertions(+) create mode

[PATCH v7 5/7] migration/multifd: implement initialization of qpl compression

2024-06-04 Thread Yuan Liu
during initialization, a software job is allocated to each channel for software path fallabck when the IAA hardware is unavailable or the hardware job submission fails. If the IAA hardware is available, multiple hardware jobs are allocated for batch processing. Signed-off-by: Yuan Liu Reviewed

[PATCH v7 7/7] tests/migration-test: add qpl compression test

2024-06-04 Thread Yuan Liu
-by: Yuan Liu Reviewed-by: Nanhai Zou Reviewed-by: Peter Xu --- tests/qtest/migration-test.c | 24 1 file changed, 24 insertions(+) diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c index b7e3406471..ef0c3f5e28 100644 --- a/tests/qtest/migration-test.c

[PATCH v7 2/7] migration/multifd: put IOV initialization into compression method

2024-06-04 Thread Yuan Liu
Different compression methods may require different numbers of IOVs. Based on streaming compression of zlib and zstd, all pages will be compressed to a data block, so two IOVs are needed for packet header and compressed data block. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou Reviewed

[PATCH v7 6/7] migration/multifd: implement qpl compression and decompression

2024-06-04 Thread Yuan Liu
QPL compression and decompression will use IAA hardware first. If IAA hardware is not available, it will automatically fall back to QPL software path, if the software job also fails, the uncompressed page is sent directly. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou --- migration/multifd

[PATCH v8 1/7] docs/migration: add qpl compression feature

2024-06-11 Thread Yuan Liu
add Intel Query Processing Library (QPL) compression method introduction Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou Reviewed-by: Fabiano Rosas Acked-by: Peter Xu --- docs/devel/migration/features.rst| 1 + docs/devel/migration/qpl-compression.rst | 260

[PATCH v8 4/7] migration/multifd: add qpl compression method

2024-06-11 Thread Yuan Liu
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

[PATCH v8 3/7] configure: add --enable-qpl build option

2024-06-11 Thread Yuan Liu
In-Memory Analytics Accelerator(IAA) hardware for compression and decompression acceleration. For more live migration with IAA, please refer to the document docs/devel/migration/qpl-compression.rst Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou Reviewed-by: Fabiano Rosas --- meson.build

[PATCH v8 7/7] tests/migration-test: add qpl compression test

2024-06-11 Thread Yuan Liu
-by: Yuan Liu Reviewed-by: Nanhai Zou Reviewed-by: Peter Xu Reviewed-by: Fabiano Rosas --- tests/qtest/migration-test.c | 24 1 file changed, 24 insertions(+) diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c index b7e3406471..ef0c3f5e28 100644

[PATCH v8 2/7] migration/multifd: put IOV initialization into compression method

2024-06-11 Thread Yuan Liu
Different compression methods may require different numbers of IOVs. Based on streaming compression of zlib and zstd, all pages will be compressed to a data block, so two IOVs are needed for packet header and compressed data block. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou Reviewed

[PATCH v8 5/7] migration/multifd: implement initialization of qpl compression

2024-06-11 Thread Yuan Liu
during initialization, a software job is allocated to each channel for software path fallabck when the IAA hardware is unavailable or the hardware job submission fails. If the IAA hardware is available, multiple hardware jobs are allocated for batch processing. Signed-off-by: Yuan Liu Reviewed

[PATCH v8 6/7] migration/multifd: implement qpl compression and decompression

2024-06-11 Thread Yuan Liu
. No fallback, always wait for work queues to become available total time: 18381 ms downtime: 25 ms throughput: 13698.65 mbps pages-per-second: 859607 If both the hardware and software paths fail, the uncompressed page is sent directly. Signed-off-by: Yuan Liu Reviewed-by: Nanhai Zou