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

Fabrice Fontaine fontaine.fabrice at gmail.com
Mon Mar 11 22:25:02 UTC 2019


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