Re: [PATCH v8 32/46] KVM: selftests: Test conversion flow when INIT_SHARED

From: Fuad Tabba

Date: Wed Jun 24 2026 - 15:55:28 EST


On Fri, 19 Jun 2026 at 01:31, Ackerley Tng via B4 Relay
<devnull+ackerleytng.google.com@xxxxxxxxxx> wrote:
>
> From: Ackerley Tng <ackerleytng@xxxxxxxxxx>
>
> Add a test case to verify that conversions between private and shared
> memory work correctly when the memory is initially created as shared.
>
> Signed-off-by: Ackerley Tng <ackerleytng@xxxxxxxxxx>
> Co-developed-by: Sean Christopherson <seanjc@xxxxxxxxxx>
> Signed-off-by: Sean Christopherson <seanjc@xxxxxxxxxx>

Reviewed-by: Fuad Tabba <tabba@xxxxxxxxxx>

Cheers,
/fuad

> ---
> .../testing/selftests/kvm/x86/guest_memfd_conversions_test.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/tools/testing/selftests/kvm/x86/guest_memfd_conversions_test.c b/tools/testing/selftests/kvm/x86/guest_memfd_conversions_test.c
> index 8e09e241723e5..5b070d3374eae 100644
> --- a/tools/testing/selftests/kvm/x86/guest_memfd_conversions_test.c
> +++ b/tools/testing/selftests/kvm/x86/guest_memfd_conversions_test.c
> @@ -95,6 +95,12 @@ static void __gmem_conversions_##test(test_data_t *t, int nr_pages) \
> #define GMEM_CONVERSION_TEST_INIT_PRIVATE(test) \
> __GMEM_CONVERSION_TEST_INIT_PRIVATE(test, 1)
>
> +#define __GMEM_CONVERSION_TEST_INIT_SHARED(test, __nr_pages) \
> + GMEM_CONVERSION_TEST(test, __nr_pages, GUEST_MEMFD_FLAG_INIT_SHARED)
> +
> +#define GMEM_CONVERSION_TEST_INIT_SHARED(test) \
> + __GMEM_CONVERSION_TEST_INIT_SHARED(test, 1)
> +
> struct guest_check_data {
> void *mem;
> char expected_val;
> @@ -186,6 +192,12 @@ GMEM_CONVERSION_TEST_INIT_PRIVATE(init_private)
> test_convert_to_private(t, 0, 'C', 'E');
> }
>
> +GMEM_CONVERSION_TEST_INIT_SHARED(init_shared)
> +{
> + test_shared(t, 0, 0, 'A', 'B');
> + test_convert_to_private(t, 0, 'B', 'C');
> + test_convert_to_shared(t, 0, 'C', 'D', 'E');
> +}
>
> int main(int argc, char *argv[])
> {
>
> --
> 2.55.0.rc0.738.g0c8ab3ebcc-goog
>
>