[PATCH libdrm] amdgpu/basic_tests.c: check for fork

Koenig, Christian Christian.Koenig at amd.com
Tue Mar 12 07:40:51 UTC 2019


AH, enlightenment!

Yeah, the whole kernel driver won't work on no-mmu platforms. So 
compiling the userspace parts doesn't make any sense either.

Thanks for clearing that up, it wasn't obvious to me why we had this 
limitation here.

Regards,
Christian.

Am 11.03.19 um 23:25 schrieb Fabrice Fontaine:
> OK, thanks for your input, I'll disable amdgpu on platforms without MMU.
>
> Fabrice
>
>
> Le lun. 11 mars 2019 à 18:40, Koenig, Christian
> <Christian.Koenig at amd.com> a écrit :
>> Am 11.03.19 um 18:17 schrieb Fabrice Fontaine:
>>> OK, then will you accept a patch that disable amdgpu test if fork is
>>> not available or a patch that disable all tests (for example through a
>>> --disable-test-programs option)?
>> No, we really need to test the correct behavior of fork() with userptrs.
>>
>> So how do we spawn a child process with uclibc-ng?
>>
>> I mean it is one of the most fundamental Unix functions, isn't it?
>>
>> Christian.
>>
>>>    Currently, the user can only disable
>>> the cairo tests so the whole libdrm package fails to statically build
>>> with uclibc-ng on ARM cortex M4
>>> (http://autobuild.buildroot.org/?reason=libdrm-2.4.97).
>>>
>>> Best Regards,
>>>
>>> Fabrice
>>>
>>> Le lun. 11 mars 2019 à 17:40, Christian König
>>> <ckoenig.leichtzumerken at gmail.com> a écrit :
>>>> Well NAK, cause that obviously would break the test if fork() isn't
>>>> available.
>>>>
>>>> We certainly don't have any platform where we support amdgpu and fork()
>>>> is not available, so that change is rather pointless in the first place.
>>>>
>>>> Christian.
>>>>
>>>> Am 10.03.19 um 10:44 schrieb Fabrice Fontaine:
>>>>> amdgpu test program use fork since
>>>>> https://cgit.freedesktop.org/mesa/drm/commit/tests/amdgpu/basic_tests.c?id=736ef0b61cab55378202c5f49d91799cc2b99091
>>>>>
>>>>> However, this function is not always available so add a check for it in
>>>>> configure.ac and use it in tests/amdgpu/basic_tests.c
>>>>>
>>>>> Fixes:
>>>>>     - http://autobuild.buildroot.org/results/8d6194982c1080e173fcef8212fb06e6dc275d58
>>>>>
>>>>> Signed-off-by: Fabrice Fontaine <fontaine.fabrice at gmail.com>
>>>>> ---
>>>>>     configure.ac               | 2 ++
>>>>>     tests/amdgpu/basic_tests.c | 4 ++++
>>>>>     2 files changed, 6 insertions(+)
>>>>>
>>>>> diff --git a/configure.ac b/configure.ac
>>>>> index d72e84ad..6effb9a2 100644
>>>>> --- a/configure.ac
>>>>> +++ b/configure.ac
>>>>> @@ -193,6 +193,8 @@ AC_CHECK_FUNCS([open_memstream],
>>>>>                    [AC_DEFINE([HAVE_OPEN_MEMSTREAM], 1, [Have open_memstream()])],
>>>>>                    [AC_DEFINE([HAVE_OPEN_MEMSTREAM], 0)])
>>>>>
>>>>> +AC_CHECK_FUNCS([fork])
>>>>> +
>>>>>     dnl Use lots of warning flags with with gcc and compatible compilers
>>>>>
>>>>>     dnl Note: if you change the following variable, the cache is automatically
>>>>> diff --git a/tests/amdgpu/basic_tests.c b/tests/amdgpu/basic_tests.c
>>>>> index dbae4d53..c32a1351 100644
>>>>> --- a/tests/amdgpu/basic_tests.c
>>>>> +++ b/tests/amdgpu/basic_tests.c
>>>>> @@ -1646,10 +1646,12 @@ static void amdgpu_userptr_test(void)
>>>>>         while (j++ < sdma_write_length)
>>>>>                 pm4[i++] = 0xdeadbeaf;
>>>>>
>>>>> +#ifdef HAVE_FORK
>>>>>         if (!fork()) {
>>>>>                 pm4[0] = 0x0;
>>>>>                 exit(0);
>>>>>         }
>>>>> +#endif
>>>>>
>>>>>         amdgpu_test_exec_cs_helper(context_handle,
>>>>>                                    AMDGPU_HW_IP_DMA, 0,
>>>>> @@ -1675,7 +1677,9 @@ static void amdgpu_userptr_test(void)
>>>>>         r = amdgpu_cs_ctx_free(context_handle);
>>>>>         CU_ASSERT_EQUAL(r, 0);
>>>>>
>>>>> +#ifdef HAVE_FORK
>>>>>         wait(NULL);
>>>>> +#endif
>>>>>     }
>>>>>
>>>>>     static void amdgpu_sync_dependency_test(void)



More information about the dri-devel mailing list