[ANNOUNCE] v6.8-rc1-rt2

From: Sebastian Andrzej Siewior
Date: Fri Jan 26 2024 - 11:37:53 EST


Dear RT folks!

I'm pleased to announce the v6.8-rc1-rt2 patch set.

Changes since v6.8-rc1-rt1:

- Junxiao Chang reported an unbalanced invocation of the acquire/
release functions for the non-BLK console. Only the 8250 serial
driver is affected if more than one ttyS console is passed as boot
argument to console=. Patch by Junxiao Chang.

- On ARM with HIGHMEM, HIGHPTE and LPAE enabled a sleeping while
atomic warning can be triggered from the FUTEX code (and other
users).

Known issues
Pierre Gondois reported crashes on ARM64 together with "rtla timerlat
hist" as trigger. It is not yet understood. The report is at
https://lore.kernel.org/70c08728-3d4f-47a6-8a3e-114e4877d120@xxxxxxx

The delta patch against v6.8-rc1-rt1 is appended below and can be found here:

https://cdn.kernel.org/pub/linux/kernel/projects/rt/6.8/incr/patch-6.8-rc1-rt1-rt2.patch.xz

You can get this release via the git tree at:

https://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v6.8-rc1-rt2

The RT patch against v6.8-rc1 can be found here:

https://cdn.kernel.org/pub/linux/kernel/projects/rt/6.8/older/patch-6.8-rc1-rt2.patch.xz

The split quilt queue is available at:

https://cdn.kernel.org/pub/linux/kernel/projects/rt/6.8/older/patches-6.8-rc1-rt2.tar.xz

Sebastian

diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 24709aee69ee0..25424a7468d95 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -99,7 +99,7 @@ config ARM
select HAVE_DYNAMIC_FTRACE_WITH_REGS if HAVE_DYNAMIC_FTRACE
select HAVE_EFFICIENT_UNALIGNED_ACCESS if (CPU_V6 || CPU_V6K || CPU_V7) && MMU
select HAVE_EXIT_THREAD
- select HAVE_FAST_GUP if ARM_LPAE
+ select HAVE_FAST_GUP if ARM_LPAE && !(PREEMPT_RT && HIGHPTE)
select HAVE_FTRACE_MCOUNT_RECORD if !XIP_KERNEL
select HAVE_FUNCTION_ERROR_INJECTION
select HAVE_FUNCTION_GRAPH_TRACER
diff --git a/include/linux/console.h b/include/linux/console.h
index 79ef2fd2bd155..467dee94f73a5 100644
--- a/include/linux/console.h
+++ b/include/linux/console.h
@@ -311,7 +311,6 @@ struct nbcon_write_context {
* @nbcon_state: State for nbcon consoles
* @nbcon_seq: Sequence number of the next record for nbcon to print
* @pbufs: Pointer to nbcon private buffer
- * @locked_port: True, if the port lock is locked by nbcon
* @kthread: Printer kthread for this console
* @rcuwait: RCU-safe wait object for @kthread waking
* @irq_work: Defer @kthread waking to IRQ work context
@@ -345,7 +344,6 @@ struct console {
atomic_t __private nbcon_state;
atomic_long_t __private nbcon_seq;
struct printk_buffers *pbufs;
- bool locked_port;
struct task_struct *kthread;
struct rcuwait rcuwait;
struct irq_work irq_work;
diff --git a/include/linux/serial_core.h b/include/linux/serial_core.h
index 04e9b12d22002..4d45b8f9ec9ee 100644
--- a/include/linux/serial_core.h
+++ b/include/linux/serial_core.h
@@ -488,6 +488,7 @@ struct uart_port {
struct uart_icount icount; /* statistics */

struct console *cons; /* struct console, if any */
+ bool nbcon_locked_port; /* True, if the port is locked by nbcon */
/* flags must be updated while holding port mutex */
upf_t flags;

diff --git a/kernel/printk/nbcon.c b/kernel/printk/nbcon.c
index 1b1b585b1675b..b53d93585ee71 100644
--- a/kernel/printk/nbcon.c
+++ b/kernel/printk/nbcon.c
@@ -1586,7 +1586,7 @@ void nbcon_acquire(struct uart_port *up)
if (!uart_is_nbcon(up))
return;

- WARN_ON_ONCE(con->locked_port);
+ WARN_ON_ONCE(up->nbcon_locked_port);

do {
do {
@@ -1597,7 +1597,7 @@ void nbcon_acquire(struct uart_port *up)

} while (!nbcon_context_enter_unsafe(&ctxt));

- con->locked_port = true;
+ up->nbcon_locked_port = true;
}
EXPORT_SYMBOL_GPL(nbcon_acquire);

@@ -1623,13 +1623,13 @@ void nbcon_release(struct uart_port *up)
.prio = NBCON_PRIO_NORMAL,
};

- if (!con->locked_port)
+ if (!up->nbcon_locked_port)
return;

if (nbcon_context_exit_unsafe(&ctxt))
nbcon_context_release(&ctxt);

- con->locked_port = false;
+ up->nbcon_locked_port = false;
}
EXPORT_SYMBOL_GPL(nbcon_release);

diff --git a/localversion-rt b/localversion-rt
index 6f206be67cd28..c3054d08a1129 100644
--- a/localversion-rt
+++ b/localversion-rt
@@ -1 +1 @@
--rt1
+-rt2