87e10cd0b4
Check for errno == EBADF in kmtIoctl to detect misuse of the kfd_fd in a forked child process. Detect being in a forked child process pro-actively by implementing a pthread_atfork callback. Make sure all mutexes get reinitialized in the child process to avoid deadlocks. Check for being in a forked child process in CHECK_KFD_OPENED so that all hsaKmt functions will return the appropriate status HSAKMT_STATUS_KERNEL_IO_CHANNEL_NOT_OPENED. Update InvalidKFDHandleTest to expect that error code. Change-Id: I0238e5fba344dcaa454e97a35db2e2dcc8d1f607 Signed-off-by: Felix Kuehling <Felix.Kuehling@amd.com>
1. Note on building kfdtest To build this kfdtest application, the following libraries should be already installed on the building machine: libdrm libdrm_amdgpu libhsakmt If libhsakmt is not installed, but the headers and libraries are present locally, you can specify its directory by export LIBHSAKMT_PATH=/*your local libhsakmt folder*/ With that, the headers and libraries are searched under LIBHSAKMT_PATH/include and LIBHSAKMT_PATH/lib respectively. 2. How to run kfdtest Just run "./run_kfdtest.sh" under the building output folder. You may need to specify library path through: export LD_LIBRARY_PATH=/*your library path containing libhsakmt*/ Note: you can use "run_kfdtest.sh -h" to see more options.