[RT,0/9] Linux v4.19.255-rt114-rc1

Message ID 20221024104425.16423-1-wagi@monom.org
Headers
Series Linux v4.19.255-rt114-rc1 |

Message

Daniel Wagner Oct. 24, 2022, 10:44 a.m. UTC
  Dear RT Folks,

This is the RT stable review cycle of patch 4.19.255-rt114-rc1.

Please scream at me if I messed something up. Please test the patches
too.

The -rc release will be uploaded to kernel.org and will be deleted
when the final release is out. This is just a review release (or
release candidate).

The pre-releases will not be pushed to the git repository, only the
final release is.

If all goes well, this patch will be converted to the next main
release on 2022-10-31.

To build 4.19.255-rt114-rc1 directly, the following patches should be applied:

  https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.19.tar.xz

  https://www.kernel.org/pub/linux/kernel/v4.x/patch-4.19.255.xz

  https://www.kernel.org/pub/linux/kernel/projects/rt/4.19/older/patch-4.19.255-rt114-rc1.patch.xz

Signing key fingerprint:

  5BF6 7BC5 0826 72CA BB45  ACAE 587C 5ECA 5D0A 306C

All keys used for the above files and repositories can be found on the
following git repository:

   git://git.kernel.org/pub/scm/docs/kernel/pgpkeys.git

Enjoy!
Daniel

Changes from v4.19.255-rt113:


Daniel Wagner (3):
  Revert "random: Use local locks for crng context access"
  rcu: Update rcuwait
  Linux 4.19.255-rt114-rc1

Sebastian Andrzej Siewior (6):
  random: Bring back the local_locks
  local_lock: Provide INIT_LOCAL_LOCK().
  Revert "workqueue: Use local irq lock instead of irq disable regions"
  timers: Keep interrupts disabled for TIMER_IRQSAFE timer.
  timers: Don't block on ->expiry_lock for TIMER_IRQSAFE timers
  workqueue: Use rcuwait for wq_manager_wait

 drivers/char/random.c         | 16 +++++++------
 include/linux/locallock.h     |  5 +++++
 include/linux/rcuwait.h       | 42 +++++++++++++++++++++++++++--------
 kernel/exit.c                 |  7 ++++--
 kernel/locking/percpu-rwsem.c |  2 +-
 kernel/rcu/update.c           |  8 +++++++
 kernel/time/timer.c           | 12 ++++++++--
 kernel/workqueue.c            | 28 +++++++++++++++++------
 localversion-rt               |  2 +-
 9 files changed, 93 insertions(+), 29 deletions(-)
  

Comments

Daniel Wagner Oct. 24, 2022, 10:54 a.m. UTC | #1
On Mon, Oct 24, 2022 at 12:44:16PM +0200, Daniel Wagner wrote:
> Dear RT Folks,
>
> This is the RT stable review cycle of patch 4.19.255-rt114-rc1.
>
> Please scream at me if I messed something up. Please test the patches
> too.
>
> The -rc release will be uploaded to kernel.org and will be deleted
> when the final release is out. This is just a review release (or
> release candidate).
>
> The pre-releases will not be pushed to the git repository, only the
> final release is.
>
> If all goes well, this patch will be converted to the next main
> release on 2022-10-31.

Timer changes seem not to be correct though:

[   24.674424] BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:974
[   24.674426] in_atomic(): 0, irqs_disabled(): 1, pid: 23, name: ktimersoftd/1
[   25.730421] BUG: sleeping function called from invalid context at kernel/locking/rtmutex.c:974
[   25.730424] in_atomic(): 0, irqs_disabled(): 1, pid: 11, name: ktimersoftd/0

I get those for when running any of the rttests. I suppose I am missing
an additional fix:

-               if (!IS_ENABLED(CONFIG_PREEMPT_RT_FULL) &&
-                   timer->flags & TIMER_IRQSAFE) {
+               if (timer->flags & TIMER_IRQSAFE) {
                        raw_spin_unlock(&base->lock);
                        call_timer_fn(timer, fn);
                        base->running_timer = NULL;


is now queuing up fn callbacks with TIMER_IRQSAFE which then triggers:

+       if (IS_ENABLED(CONFIG_PREEMPT_RT) && !(timer->flags & TIMER_IRQSAFE))
+               might_sleep();

in del_timer_sync(). But this is just a guess.

Daniel