[PATCH v2 6/7] migration/multifd: Switch to no compression when no hardware support

2024-06-07 Thread Shameer Kolothum via
Send raw packets over if UADK hardware support is not available. This is to satisfy  Qemu qtest CI which may run on platforms that don't have UADK hardware support. Subsequent patch will add support for uadk migration qtest. Reviewed-by: Fabiano Rosas Signed-off-by: Shameer Kolothum ---

[PATCH v2 7/7] tests/migration-test: add uadk compression test

2024-06-07 Thread Shameer Kolothum via
Reviewed-by: Fabiano Rosas Signed-off-by: Shameer Kolothum --- tests/qtest/migration-test.c | 23 +++ 1 file changed, 23 insertions(+) diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c index ef0c3f5e28..056d8790ec 100644 ---

[PATCH v2 3/7] migration/multifd: add uadk compression framework

2024-06-07 Thread Shameer Kolothum via
Adds the skeleton to support uadk compression method. Complete functionality will be added in subsequent patches. Acked-by: Markus Armbruster Reviewed-by: Fabiano Rosas Signed-off-by: Shameer Kolothum --- hw/core/qdev-properties-system.c | 2 +- migration/meson.build| 1 +

[PATCH v2 5/7] migration/multifd: Add UADK based compression and decompression

2024-06-07 Thread Shameer Kolothum via
Uses UADK wd_do_comp_sync() API to (de)compress a normal page using hardware accelerator. Reviewed-by: Fabiano Rosas Signed-off-by: Shameer Kolothum --- migration/multifd-uadk.c | 132 ++- 1 file changed, 130 insertions(+), 2 deletions(-) diff --git

[PATCH v2 2/7] configure: Add uadk option

2024-06-07 Thread Shameer Kolothum via
Add --enable-uadk and --disable-uadk options to enable and disable UADK compression accelerator. This is for using UADK based hardware accelerators for live migration. Reviewed-by: Fabiano Rosas Signed-off-by: Shameer Kolothum --- meson.build | 14 ++

[PATCH v2 4/7] migration/multifd: Add UADK initialization

2024-06-07 Thread Shameer Kolothum via
Initialize UADK session and allocate buffers required. The actual compression/decompression will only be done in a subsequent patch. Signed-off-by: Shameer Kolothum --- migration/multifd-uadk.c | 209 ++- 1 file changed, 208 insertions(+), 1 deletion(-) diff

[PATCH v2 1/7] docs/migration: add uadk compression feature

2024-06-07 Thread Shameer Kolothum via
Document UADK(User Space Accelerator Development Kit) library details and how to use that for migration. Signed-off-by: Shameer Kolothum --- docs/devel/migration/features.rst | 1 + docs/devel/migration/uadk-compression.rst | 144 ++ 2 files changed, 145

[PATCH v2 0/7] Live migration acceleration with UADK

2024-06-07 Thread Shameer Kolothum via
compression none" mode UADK has an edge on migration "total time". Please take a look and let me know your feedback. Thanks, Shameer [0] https://github.com/Linaro/uadk/tree/master/docs [1] https://lore.kernel.org/qemu-devel/20240505165751.2392198-1-yuan1@intel.com/ Shamee

[PATCH 6/7] migration/multifd: Switch to no compression when no hardware support

2024-05-29 Thread Shameer Kolothum via
Send raw packets over if UADK hardware support is not available. This is to satisfy  Qemu qtest CI which may run on platforms that don't have UADK hardware support. Subsequent patch will add support for uadk migration qtest. Signed-off-by: Shameer Kolothum --- migration/multifd-uadk.c | 89

[PATCH 4/7] migration/multifd: Add UADK initialization

2024-05-29 Thread Shameer Kolothum via
Initialize UADK session and allocate buffers required. The actual compression/decompression will only be done in a subsequent patch. Signed-off-by: Shameer Kolothum --- migration/multifd-uadk.c | 207 ++- 1 file changed, 206 insertions(+), 1 deletion(-) diff

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

2024-05-29 Thread Shameer Kolothum via
Document UADK(User Space Accelerator Development Kit) library details and how to use that for migration. Signed-off-by: Shameer Kolothum --- docs/devel/migration/uadk-compression.rst | 144 ++ 1 file changed, 144 insertions(+) create mode 100644

[PATCH 3/7] migration/multifd: add uadk compression framework

2024-05-29 Thread Shameer Kolothum via
Adds the skeleton to support uadk compression method. Complete functionality will be added in subsequent patches. Signed-off-by: Shameer Kolothum --- hw/core/qdev-properties-system.c | 2 +- migration/meson.build| 1 + migration/multifd-uadk.c | 20

[PATCH 5/7] migration/multifd: Add UADK based compression and decompression

2024-05-29 Thread Shameer Kolothum via
Uses UADK wd_do_comp_sync() API to (de)compress a normal page using hardware accelerator. Signed-off-by: Shameer Kolothum --- migration/multifd-uadk.c | 132 ++- 1 file changed, 130 insertions(+), 2 deletions(-) diff --git a/migration/multifd-uadk.c

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

2024-05-29 Thread Shameer Kolothum via
Signed-off-by: Shameer Kolothum --- tests/qtest/migration-test.c | 23 +++ 1 file changed, 23 insertions(+) diff --git a/tests/qtest/migration-test.c b/tests/qtest/migration-test.c index 0f75ed7c49..4104b41f66 100644 --- a/tests/qtest/migration-test.c +++

[PATCH 2/7] configure: Add uadk option

2024-05-29 Thread Shameer Kolothum via
Add --enable-uadk and --disable-uadk options to enable and disable UADK compression accelerator. This is for using UADK based hardware accelerators for live migration. Signed-off-by: Shameer Kolothum --- meson.build | 14 ++ meson_options.txt | 2 ++

[PATCH 0/7] Live migration acceleration with UADK

2024-05-29 Thread Shameer Kolothum via
Hi, This series adds support for UADK library based hardware acceleration for live migration. UADK[0] is a general-purpose user space accelerator framework that uses shared virtual addressing (SVA) to provide a unified programming interface for hardware acceleration of cryptographic and

[PATCH v4] arm/kvm: Enable support for KVM_CAP_ARM_EAGER_SPLIT_CHUNK_SIZE

2023-09-05 Thread Shameer Kolothum via
Now that we have Eager Page Split support added for ARM in the kernel, enable it in Qemu. This adds, -eager-split-size to -accel sub-options to set the eager page split chunk size. -enable KVM_CAP_ARM_EAGER_SPLIT_CHUNK_SIZE. The chunk size specifies how many pages to break at a time, using a

[PATCH v3] arm/kvm: Enable support for KVM_CAP_ARM_EAGER_SPLIT_CHUNK_SIZE

2023-08-30 Thread Shameer Kolothum via
Now that we have Eager Page Split support added for ARM in the kernel, enable it in Qemu. This adds, -eager-split-size to -accel sub-options to set the eager page split chunk size. -enable KVM_CAP_ARM_EAGER_SPLIT_CHUNK_SIZE. The chunk size specifies how many pages to break at a time, using a

[PATCH v2] arm/kvm: Enable support for KVM_CAP_ARM_EAGER_SPLIT_CHUNK_SIZE

2023-08-15 Thread Shameer Kolothum via
Now that we have Eager Page Split support added for ARM in the kernel, enable it in Qemu. This adds, -eager-split-size to -accel sub-options to set the eager page split chunk size. -enable KVM_CAP_ARM_EAGER_SPLIT_CHUNK_SIZE. The chunk size specifies how many pages to break at a time, using a

[RFC PATCH] arm/kvm: Enable support for KVM_CAP_ARM_EAGER_SPLIT_CHUNK_SIZE

2023-07-25 Thread Shameer Kolothum via
Now that we have Eager Page Split support added for ARM in the kernel[0], enable it in Qemu. This adds, -eager-split-size to Qemu options to set the eager page split chunk size. -enable KVM_CAP_ARM_EAGER_SPLIT_CHUNK_SIZE. The chunk size specifies how many pages to break at a time, using a

[PATCH] vfio/pci: Call vfio_prepare_kvm_msi_virq_batch() in MSI retry path

2023-06-13 Thread Shameer Kolothum via
When vfio_enable_vectors() returns with less than requested nr_vectors we retry with what kernel reported back. But the retry path doesn't call vfio_prepare_kvm_msi_virq_batch() and this results in, qemu-system-aarch64: vfio: Error: Failed to enable 4 MSI vectors, retry with 1

[PATCH v2] fw_cfg: Don't set callback_opaque NULL in fw_cfg_modify_bytes_read()

2022-09-08 Thread Shameer Kolothum via
On arm/virt platform, Chen Xiang reported a Guest crash while attempting the below steps, 1. Launch the Guest with nvdimm=on 2. Hot-add a NVDIMM dev 3. Reboot 4. Guest boots fine. 5. Reboot again. 6. Guest boot fails. QEMU_EFI reports the below error: ProcessCmdAddPointer: invalid pointer value

[PATCH] fw_cfg: Don't set callback_opaque NULL in fw_cfg_modify_bytes_read()

2022-08-25 Thread Shameer Kolothum via
Hi On arm/virt platform, Chen Xiang reported a Guest crash while attempting the below steps, 1. Launch the Guest with nvdimm=on 2. Hot-add a NVDIMM dev 3. Reboot 4. Guest boots fine. 5. Reboot again. 6. Guest boot fails. QEMU_EFI reports the below error: ProcessCmdAddPointer: invalid pointer