Messages in this thread | | | Date | Fri, 6 Jul 2012 20:38:25 +0100 | From | Alan Cox <> | Subject | Regression - /proc/kmsg does not (always) block for 1-byte reads |
| |
On Fri, 6 Jul 2012 20:45:44 +0300 Jukka Ollila <jiiksteri@gmail.com> wrote:
> Hello, > > A few days ago I filed a kernel regression report concerning a change > in /proc/kmsg behaviour with short reads: > > https://bugzilla.kernel.org/show_bug.cgi?id=44211 > > The comments suggest that this is probably intentional, but that it > would be best make sure that the current semantics wrt short reads are > as intended. > > The problem appears on a Debian (unstable) system that drains > /proc/kmsg into a separate fifo read by klogd(8): > > /bin/dd bs=1 if=/proc/kmsg of=/var/run/klogd/kmsg > > With the recent kernel logging changes this /bin/dd exits immediately, > as 1-byte reads are shorter than any log message could possibly be and > read() returns 0. No dd feeding the fifo results in no logging and a > rather unhappy klogd on the reading end of /var/run/klogd/kmsg. > > I suppose a safe solution is to only do reads that are big enough for > any single kernel message, but this is still a change that affects > user space being shipped, so some might find it surprising. > > I don't know what other distros do. Is it just Debian being the odd one out?
If this is observed on an actual standard distro userspace and breaks it then its a regression and it needs fixing or reverting.
Cc'ing Linus
| |