Re: [ANNOUNCE] 5.10.180-rt88

From: Sebastian Andrzej Siewior
Date: Tue Jun 06 2023 - 05:49:19 EST


On 2023-05-30 16:46:28 [-0300], Luis Claudio R. Goncalves wrote:
> Hello RT-list!
Hi,

> Support for deferred printing was removed in v5.10-rc1-rt1 by commit
> 9153e3c5cb0c9 ("printk: remove deferred printing").

Sorry for not getting back to earlier, where you proposed the change.

> diff --git a/include/linux/printk.h b/include/linux/printk.h
> index 83c7734e98025..92e0656841128 100644
> --- a/include/linux/printk.h
> +++ b/include/linux/printk.h
> @@ -609,7 +609,7 @@ static inline void print_hex_dump_debug(const char *prefix_str, int prefix_type,
> #define print_hex_dump_bytes(prefix_str, prefix_type, buf, len) \
> print_hex_dump_debug(prefix_str, prefix_type, 16, 1, buf, len, true)
>
> -#ifdef CONFIG_PRINTK
> +#if defined(CONFIG_PRINTK) && !defined(CONFIG_PREEMPT_RT)
> extern void __printk_safe_enter(void);
> extern void __printk_safe_exit(void);

This needs to go entirely. The "new" printk code does not need this safe
functions also for !RT.

> diff --git a/mm/page_alloc.c b/mm/page_alloc.c
> index 5f1c50a6bebc5..7e65e3ef16e3a 100644
> --- a/mm/page_alloc.c
> +++ b/mm/page_alloc.c
> @@ -6057,7 +6057,6 @@ static void __build_all_zonelists(void *data)
> * tty_insert_flip_string_and_push_buffer() on other CPU might be
> * calling kmalloc(GFP_ATOMIC | __GFP_NOWARN) with port->lock held.
> */
> - printk_deferred_enter();

That is okay. However the commit, that introduced this
a992c387b4118 ("mm/page_alloc: fix potential deadlock on zonelist_update_seq seqlock")

also added a local_irq_safe a little higher up and it has to go, too.
The code as-is should produce warnings once it enters this path.

> write_seqlock(&zonelist_update_seq);
>
> #ifdef CONFIG_NUMA

Sebastian