[PATCH libdrm v2] amdgpu: Add memory over allocation test.

Christian König christian.koenig at amd.com
Tue Nov 14 08:44:20 UTC 2017


Am 13.11.2017 um 18:01 schrieb Andrey Grodzovsky:
> Allocates 1 TB of memory. Test is disabled by default
> since it's triggers OOM killer.
>
> v2:
> FIx the test to only alloc the BO and assert if return value
> not equal to -ENOMEM and remove test disable on start.
>
> Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky at amd.com>

I was just about to scream that you need to fix the helper first, but 
then I saw that you now directly use amdgpu_bo_alloc().

The commit message could be changed and for the unlikely case that we 
actually can allocate a BO of 1TB size we should free it.

But apart from that the patch looks good to me and is Acked-by: 
Christian König <christian.koenig at amd.com>.

Regards,
Christian.

> ---
>   tests/amdgpu/bo_tests.c | 24 ++++++++++++++++++++++++
>   1 file changed, 24 insertions(+)
>
> diff --git a/tests/amdgpu/bo_tests.c b/tests/amdgpu/bo_tests.c
> index 4545196..53e76c1 100644
> --- a/tests/amdgpu/bo_tests.c
> +++ b/tests/amdgpu/bo_tests.c
> @@ -47,6 +47,7 @@ static void amdgpu_bo_export_import(void);
>   static void amdgpu_bo_metadata(void);
>   static void amdgpu_bo_map_unmap(void);
>   static void amdgpu_memory_alloc(void);
> +static void amdgpu_mem_fail_alloc(void);
>   
>   CU_TestInfo bo_tests[] = {
>   	{ "Export/Import",  amdgpu_bo_export_import },
> @@ -55,6 +56,7 @@ CU_TestInfo bo_tests[] = {
>   #endif
>   	{ "CPU map/unmap",  amdgpu_bo_map_unmap },
>   	{ "Memory alloc Test",  amdgpu_memory_alloc },
> +	{ "Memory fail alloc Test",  amdgpu_mem_fail_alloc },
>   	CU_TEST_INFO_NULL,
>   };
>   
> @@ -244,3 +246,25 @@ static void amdgpu_memory_alloc(void)
>   	r = gpu_mem_free(bo, va_handle, bo_mc, 4096);
>   	CU_ASSERT_EQUAL(r, 0);
>   }
> +
> +static void amdgpu_mem_fail_alloc(void)
> +{
> +	amdgpu_bo_handle bo;
> +	int r;
> +	struct amdgpu_bo_alloc_request req = {0};
> +	amdgpu_bo_handle buf_handle;
> +
> +	/* Test impossible mem allocation, 1TB */
> +	req.alloc_size = 0xE8D4A51000;
> +	req.phys_alignment = 4096;
> +	req.preferred_heap = AMDGPU_GEM_DOMAIN_VRAM;
> +	req.flags = AMDGPU_GEM_CREATE_NO_CPU_ACCESS;
> +
> +	r = amdgpu_bo_alloc(device_handle, &req, &buf_handle);
> +	CU_ASSERT_EQUAL(r, -ENOMEM);
> +
> +	if (!r) {
> +		r = amdgpu_bo_free(bo);
> +		CU_ASSERT_EQUAL(r, 0);
> +	}
> +}




More information about the amd-gfx mailing list