On Fri, Jul 19, 2024 at 05:01:10PM GMT, John Ogness wrote: > On 2024-07-19, Andrew Halaney <ahalaney@xxxxxxxxxx> wrote: > >> Your thinking is not naive. It is correct (for PREEMPT_RT). printk() > >> stores messages locklessly into its ringbuffer and must work in all > >> cases (including NMI and scheduler). And AFAIK it does. > >> > >> However, printk() is also responsible for reliably triggering or > >> performing console printing. This separate responsibility is tricky. For > >> PREEMPT_RT the problem is supposed to be solved. Obviously it still has > >> some issues, so thank you for the report. > >> > >> For PREEMPT_RT, if you can put a printk() anywhere after the Linux > >> banner and cause a problem, the printk-folks need to know about it. > > > > Just to be sure I'm following correctly, when you say PREEMPT_RT above, > > are you meaning "the printk/nbcon/console solution in PREEMPT (independent of s/PREEMPT/PREEMPT_RT patches/ bad spot for a typo on my part... > > the current CONFIG_PREEMPT* setting)"? Or do you mean that + CONFIG_PREEMPT_RT? > > First, the _complete_ printk/nbcon/console solution must be present in > the kernel (most likely by simply applying the PREEMPT_RT patchset). > > Then, either > > 1. Enabling CONFIG_PREEMPT_RT > > or > > 2. Enabling some other preemption model but only using nbcon consoles > (which currently is only the 8250 uart driver) > > For !CONFIG_PREEMPT_RT using legacy consoles the > non-interference/reliability properties of the console printing is not > changed from current mainline. This is on purpose. Thanks for clarifying!