In a process context kernel_read returns -EINTR, how to proceed?
levonshe at yandex.com
Thu Dec 20 05:33:09 EST 2018
I use kernel_read to read file in chunks of 4K size in a process context
On several files, like libc, libm, I got -EINTR error.
Then I repeated the attempt limited number of times but still on every read attempt I got -EINTR
I do not understand who may interrupt such a small read, I suppose these libraries are already mapped in other processes so no real I/O should be done.
In a user space it is recommended to repeat syscall, what is the proper course of action in kernel.
As I stated, this code is not in a kernel thread or atomic context, it is in a process context so a tried before next attempt yield() but to no success.
Waiting for your advises.
More information about the Kernelnewbies