RE: [PATCH v2] rcu: Dump memory object info if callback function is invalid

From: Elliott, Robert (Servers)
Date: Fri Nov 11 2022 - 10:51:09 EST




> +static inline void debug_rcu_head_callback(struct rcu_head *rhp)
> +{
> + if (unlikely(!rhp->func))
> + mem_dump_obj(rhp);
> +}
> +

The mm/util.c definition of mem_dump_object() says:
* This function uses pr_cont(), so that the caller is expected to have
* printed out whatever preamble is appropriate.

so this needs to call pr_alert() or pr_err() before that to explain what
is being printed (with no \n), like these:

kernel/rcu/rcutorture.c: pr_alert("mem_dump_obj(%px):", &rhp);
kernel/rcu/rcutorture.c: mem_dump_obj(&rhp);
...
kernel/rcu/tree.c: pr_err("%s(): Double-freed CB %p->%pS()!!! ", __func__, head, head->func);
kernel/rcu/tree.c: mem_dump_obj(head);