On Thu, Feb 22, 2018 at 1:23 AM, Peter Zijlstra <pet...@infradead.org> wrote: > > So being one to only use machines that have a serial line this does not > really affect me; but it would appear to me that it might make sense to > try and reverse the entire dump.
In theory yes. But while you mention the buffering problem, the *bigger* problem is that sometimes things go south half-way through. We've definitely had cases where we only get the first few lines of the oops, because the oops machinery itself has issues (ie takes a fault in the middle because of random corruption issues or the stack tracing acting up or whatever). So while "most important last" is good for it not scrolling off the screen, it's really bad for the "oops itself has problems" case. I'd rather people try very hard to make the oops messages dense and relevant, and not have information that isn't really useful in practice. We already got rid of the stack content dumping for that reason - it was useful 20+ years ago, but it had become more of a detriment than a real help. So I don't want people to think "this _might_ be useful, let's print it out". It really should be "this is _critically_ useful, it's worth printing out even if we're limited to a 80x25 screen". Honestly, I think one option is to just mark parts for "printing" and other parts for "logging". I think we may raise the loglevel a bit _too_ much when an oops happens in "console_verbose()". So what we could perhaps do is: - make console_verbose() actually reset things to at least LOGLEVEL_DEBUG - make sure the *default* loglevel be LOGLEVEL_WARNING - now you can use pr_debug() in the oops code to print messages to the log, but they won't be printed to the screen. And people who really want everything can still set a loglevel that is much higher, because "console_verbose" would only do that "at least" thing. That would seem like the best of both worlds, no? Linus