In a process context kernel_read returns -EINTR, how to proceed?
Hi All, 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. Thx, Lev
On Thu, 20 Dec 2018 13:33:09 +0300, Lev Olshvang said:
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.
What are you trying to accomplish? This is not a recommended way to do things.
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.
That should be a hint....
Hi Valdis, I need to read file inside LSM hook and I can not do it in user space I forgot o mention that same error occurried both in 4.4 and 4.13 kernels What alternative you can recommend to read file in kernel and avoid -EINTR? Is vfs_read() different from kernel_read() ? ThanX Lev 20.12.2018, 23:09, "valdis.kletnieks@vt.edu" <valdis.kletnieks@vt.edu>:
On Thu, 20 Dec 2018 13:33:09 +0300, Lev Olshvang said:
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.
What are you trying to accomplish? This is not a recommended way to do things.
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.
That should be a hint....
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
On Fri, Dec 21, 2018 at 04:51:29PM +0300, Lev Olshvang wrote:
Hi Valdis,
I need to read file inside LSM hook and I can not do it in user space I forgot o mention that same error occurried both in 4.4 and 4.13 kernels What alternative you can recommend to read file in kernel and avoid -EINTR? Is vfs_read() different from kernel_read() ?
You should never try to read a file from within the kernel. That way lies madness and lots and lots and lots of problems. You really are on your own if you want to do that, you should step back and reconsider exactly what you are trying to do and redesign your system to not try to ever do this. good luck! greg k-h
I use security_mmap_file hook. 21.12.2018, 19:15, "valdis.kletnieks@vt.edu" <valdis.kletnieks@vt.edu>:
On Fri, 21 Dec 2018 16:51:29 +0300, Lev Olshvang said:
I need to read file inside LSM hook and I can not do it in user space
Why? And which LSM hook are you trying to do this?
participants (3)
-
Greg KH -
Lev Olshvang -
valdis.kletnieks@vt.edu