In a process context kernel_read returns -EINTR, how to proceed?

Lev Olshvang levonshe at yandex.com
Thu Dec 20 05:33:09 EST 2018


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




More information about the Kernelnewbies mailing list