* Mikulas Patocka <[email protected]> [260107 15:32]: > If a process receives a signal while it executes some kernel code that > calls mm_take_all_locks, we get -EINTR error. The -EINTR is propagated up > the call stack to userspace and userspace may fail if it gets this > error. > > This commit changes -EINTR to -ERESTARTSYS, so that if the signal handler > was installed with the SA_RESTART flag, the operation is automatically > restarted. > > For example, this problem happens when using OpenCL on AMDGPU. If some > signal races with clGetDeviceIDs, clGetDeviceIDs returns an error > CL_DEVICE_NOT_FOUND (and strace shows that open("/dev/kfd") failed with > EINTR). > > This problem can be reproduced with the following program. > > To run this program, you need AMD graphics card and the package > "rocm-opencl" installed. You must not have the package "mesa-opencl-icd" > installed, because it redirects the default OpenCL implementation to > itself.
What about [1]? This reproducer should be fixed in the ROCm userspace library, as stated by Christian König. 1. https://lore.kernel.org/linux-mm/[email protected]/ Thanks, Liam
