[Skiboot] FSP code calling pollers with locks held
Stewart Smith
stewart at linux.vnet.ibm.com
Wed Feb 18 17:46:41 AEDT 2015
Benjamin Herrenschmidt <benh at kernel.crashing.org> writes:
> So we can start fixing those cases
>
> Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
> ---
> core/opal.c | 5 +++++
> 1 file changed, 5 insertions(+)
>
> diff --git a/core/opal.c b/core/opal.c
> index fc18db3..a49d022 100644
> --- a/core/opal.c
> +++ b/core/opal.c
> @@ -284,6 +284,11 @@ void opal_run_pollers(void)
> {
> struct opal_poll_entry *poll_ent;
>
> + if (this_cpu()->lock_depth) {
> + prlog(PR_ERR, "Running pollers with lock held !\n");
> + backtrace();
> + }
> +
Merged and then added a limit, because otherwise we could get stuck in a
loop printing backtraces for approximately forever on some FSP machines.
Basically, FSP pretty heavily calls pollers with locks held.
S: 0000000031a03b40 R: 0000000030017eb4 .opal_run_pollers+0x44.
S: 0000000031a03bc0 R: 00000000300449ec .fsp_sync_msg+0x7c.
S: 0000000031a03c50 R: 000000003004f6e0 .op_display+0x110.
S: 0000000031a03d00 R: 000000003004797c .fsp_console_preinit+0xe4.
S: 0000000031a03d80 R: 000000003005650c .ibm_fsp_init+0xac.
I've fixed this one, but we're going to have to chase these a bit.
I like the warning though, it shows us places where we're likely to have
bugs... and we should certainly fix them.
Interestingly enough, I modified the above code path back in january due
to a bug in being called from a poller.
More information about the Skiboot
mailing list