Messages in this thread | | | Subject | Re: [PATCH v2 2/3] serial: core: fix sysrq overhead regression | From | Dmitry Safonov <> | Date | Wed, 10 Jun 2020 17:24:57 +0100 |
| |
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
| |