[Skiboot] [PATCH] Limit number of "Poller recursion detected" errors to display
Vasant Hegde
hegdevasant at linux.vnet.ibm.com
Fri Nov 18 22:36:43 AEDT 2016
On 11/16/2016 10:34 AM, Stewart Smith wrote:
> In some error conditions, we could spiral out of control on this
> and spend all of our time printing the exact same backtrace.
>
> Limit it to 16 times, because 16 is a nice number.
>
> Cc: stable
> Signed-off-by: Stewart Smith <stewart at linux.vnet.ibm.com>
Looks good.
Reviewed-by: Vasant Hegde <hegdevasant at linux.vnet.ibm.com>
> ---
> core/opal.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/core/opal.c b/core/opal.c
> index 61a2adb10602..269ab80df958 100644
> --- a/core/opal.c
> +++ b/core/opal.c
> @@ -313,9 +313,10 @@ void opal_run_pollers(void)
> {
> struct opal_poll_entry *poll_ent;
> static int pollers_with_lock_warnings = 0;
> + static int poller_recursion = 0;
>
> /* Don't re-enter on this CPU */
> - if (this_cpu()->in_poller) {
> + if (this_cpu()->in_poller && poller_recursion < 16) {
> /**
> * @fwts-label OPALPollerRecursion
> * @fwts-advice Recursion detected in opal_run_pollers(). This
> @@ -324,6 +325,9 @@ void opal_run_pollers(void)
> */
> prlog(PR_ERR, "OPAL: Poller recursion detected.\n");
> backtrace();
> + poller_recursion++;
> + if (poller_recursion == 16)
> + prlog(PR_ERR, "OPAL: Squashing future poller recursion warnings (>16).\n");
> return;
> }
> this_cpu()->in_poller = true;
>
More information about the Skiboot
mailing list