Hi Johan, On 6/10/20 4:22 PM, Johan Hovold wrote: > Commit 8e20fc391711 ("serial_core: Move sysrq functions from header > file") converted the inline sysrq helpers to exported functions which > are now called for every received character, interrupt and break signal > also on systems without CONFIG_MAGIC_SYSRQ_SERIAL instead of being > optimised away by the compiler. The part with ifdeffing looks good to me. > Inlining these helpers again also avoids the function call overhead when > CONFIG_MAGIC_SYSRQ_SERIAL is enabled (e.g. when the port is not used as > a console). But this one, coul you add measures? (it will also help to understand if it's a stable material). If one function call actually matters here, than should uart_insert_char() also go into header? I see quite common pattern in drivers: : if (!uart_handle_sysrq_char(&up->port, ch)) : uart_insert_char(&up->port, byte, 0, ch, TTY_NORMAL); Don't misunderstand me, but I would prefer keeping headers cleaner without realization details with the exception if function calls actually hurts the performance. Probably, a comment like /* * Keeping these functions in the header improves performance by X% on * YYY platform by letting the compiler inline them. */ would also help. Thanks for working on this, Dmitry