perf top --stdio, glibc 2.28, stdio EOF sticky

From: Rantala, Tommi T. (Nokia - FI/Espoo)
Date: Thu Jun 06 2019 - 02:59:57 EST


Hello,

"perf top --stdio" (or perf kvm top --stdio) keyboard handling does not
work properly for me. Instead of accepting key presses, it just
displays the "Mapped keys:" help output always.

Seems to be related to this glibc 2.28 stdio change:

https://sourceware.org/git/?p=glibc.git;a=blob;f=NEWS

* All stdio functions now treat end-of-file as a sticky condition. If
you
read from a file until EOF, and then the file is enlarged by another
process, you must call clearerr or another function with the same
effect
(e.g. fseek, rewind) before you can read the additional data. This
corrects a longstanding C99 conformance bug. It is most likely to
affect
programs that use stdio to read interactive input from a terminal.
(Bug #1190.)


Also "perf top </dev/null" with or without --stdio does not behave very
well either...

-Tommi