LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [ANNOUNCE] v4.16.7-rt1
@ 2018-05-03 16:29 Sebastian Andrzej Siewior
  2018-05-04  6:14 ` [patch-rt] sched,fair: Fix CFS bandwidth control lockdep DEADLOCK report Mike Galbraith
  2018-05-09 21:45 ` [ANNOUNCE] v4.16.7-rt1 Bernhard Landauer
  0 siblings, 2 replies; 6+ messages in thread
From: Sebastian Andrzej Siewior @ 2018-05-03 16:29 UTC (permalink / raw)
  To: Thomas Gleixner; +Cc: LKML, linux-rt-users, Steven Rostedt

Dear RT folks!

I'm pleased to announce the v4.16.7-rt1 patch set. 

Changes since v4.14.39-rt28:

  - Rebase to v4.16

  - The queue went through a big cleanup and reordering, so the patches
    which belong together are not scattered all over the place.

    The sections at the front of the series are patches which are either
    upstream already (4.17), queued in a maintainer tree for 4.18, posted
    and under discussion or just ready to be posted.

  - A large section covers the recent rework of the *_nort/*_rt()
    wrappers. Instead of trying to argue them upstream they have been made
    obsolete by refactoring the code in which they have been used. There
    are a few hard to solve leftovers, but non of them should survive.

  - The cpu_chill() related try-lock-loop in dcache has been replaced
    with a rework avoiding the loop. The rework was joint work by Al
    Viro and John Ogness.

    There are still a few cpu_chill() instances which are going to be
    tackled in the next weeks.

  - The AT91 timer patches have been mostly replaced with the "TCB timer
    driver" patches by Alexandre Belloni.

  - The latest version of the latency tracer patches which is aimed for 4.18
    has been incorporated.

You can get this release via the git tree at:

    git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.16.7-rt1

The RT patch against v4.16.7 can be found here:

    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patch-4.16.7-rt1.patch.xz

The split quilt queue is available at:

    https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz

Sebastian

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [patch-rt] sched,fair: Fix CFS bandwidth control  lockdep DEADLOCK report
  2018-05-03 16:29 [ANNOUNCE] v4.16.7-rt1 Sebastian Andrzej Siewior
@ 2018-05-04  6:14 ` Mike Galbraith
  2018-05-04 14:48   ` Steven Rostedt
  2018-05-09 21:45 ` [ANNOUNCE] v4.16.7-rt1 Bernhard Landauer
  1 sibling, 1 reply; 6+ messages in thread
From: Mike Galbraith @ 2018-05-04  6:14 UTC (permalink / raw)
  To: Sebastian Andrzej Siewior, Thomas Gleixner
  Cc: LKML, linux-rt-users, Steven Rostedt

CFS bandwidth control yields the inversion gripe below, moving
handling quells it.

========================================================
WARNING: possible irq lock inversion dependency detected
4.16.7-rt1-rt #2 Tainted: G            E   
--------------------------------------------------------
sirq-hrtimer/0/15 just changed the state of lock:
 (&cfs_b->lock){+...}, at: [<000000009adb5cf7>] sched_cfs_period_timer+0x28/0x140
but this lock was taken by another, HARDIRQ-safe lock in the past:
 (&rq->lock){-...}
and interrupts could create inverse lock ordering between them.
other info that might help us debug this:
 Possible interrupt unsafe locking scenario: 
       CPU0                    CPU1
       ----                    ----
  lock(&cfs_b->lock);
                               local_irq_disable();
                               lock(&rq->lock);
                               lock(&cfs_b->lock);
  <Interrupt>
    lock(&rq->lock);
*** DEADLOCK *** 
1 lock held by sirq-hrtimer/0/15:
 #0:  (&per_cpu(local_softirq_locks[i], __cpu).lock){+.+.}, at: [<0000000061d5600a>] do_current_softirqs+0x170/0x660
the shortest dependencies between 2nd lock and 1st lock:
 -> (&rq->lock){-...} ops: 67919540 {
    IN-HARDIRQ-W at:
                      _raw_spin_lock+0x38/0x50
                      scheduler_tick+0x4c/0x110
                      update_process_times+0x21/0x50
                      tick_periodic+0x2b/0x100
                      tick_handle_periodic+0x1f/0x60
                      timer_interrupt+0x14/0x20
                      __handle_irq_event_percpu+0x5f/0x3f0
                      handle_irq_event_percpu+0x37/0x70
                      handle_irq_event+0x37/0x60
                      handle_edge_irq+0xbe/0x1e0
                      handle_irq+0x1f/0x30
                      do_IRQ+0x65/0x130
                      ret_from_intr+0x0/0x22
                      timer_irq_works+0x60/0x10e
                      setup_IO_APIC+0x620/0x7e3
                      x86_late_time_init+0x17/0x1c
                      start_kernel+0x410/0x4b3
                      secondary_startup_64+0xa5/0xb0
    INITIAL USE at:
                     _raw_spin_lock_irqsave+0x4f/0x70
                     rq_attach_root+0x18/0xe0
                     sched_init+0x2ea/0x413
                     start_kernel+0x282/0x4b3
                     secondary_startup_64+0xa5/0xb0
  }
  ... key      at: [<000000000ab3ac7a>] __key.69727+0x0/0x8
  ... acquired at:
   lock_acquire+0xbd/0x250
   _raw_spin_lock+0x38/0x50
   rq_online_fair+0x9a/0x190
   set_rq_online+0x4c/0x60
   rq_attach_root+0xac/0xe0
   sched_init+0x2ea/0x413
   start_kernel+0x282/0x4b3
   secondary_startup_64+0xa5/0xb0 
-> (&cfs_b->lock){+...} ops: 56 {
   HARDIRQ-ON-W at:
                    _raw_spin_lock+0x38/0x50
                    sched_cfs_period_timer+0x28/0x140
                    __hrtimer_run_queues+0x10e/0x5f0
                    hrtimer_run_softirq+0x83/0xc0
                    do_current_softirqs+0x292/0x660
                    run_ksoftirqd+0x27/0x70
                    smpboot_thread_fn+0x27f/0x330
                    kthread+0x103/0x140
                    ret_from_fork+0x3a/0x50
   INITIAL USE at:
                   _raw_spin_lock+0x38/0x50
                   rq_online_fair+0x9a/0x190
                   set_rq_online+0x4c/0x60
                   rq_attach_root+0xac/0xe0
                   sched_init+0x2ea/0x413
                   start_kernel+0x282/0x4b3
                   secondary_startup_64+0xa5/0xb0
 }
 ... key      at: [<00000000bf5d5ec7>] __key.47691+0x0/0x8
 ... acquired at:
   __lock_acquire+0x1e6/0x770
   lock_acquire+0xbd/0x250
   _raw_spin_lock+0x38/0x50
   sched_cfs_period_timer+0x28/0x140
   __hrtimer_run_queues+0x10e/0x5f0
   hrtimer_run_softirq+0x83/0xc0
   do_current_softirqs+0x292/0x660
   run_ksoftirqd+0x27/0x70
   smpboot_thread_fn+0x27f/0x330
   kthread+0x103/0x140
   ret_from_fork+0x3a/0x50 
stack backtrace:
CPU: 0 PID: 15 Comm: sirq-hrtimer/0 Tainted: G            E    4.16.7-rt1-rt #2
Hardware name: MEDION MS-7848/MS-7848, BIOS M7848W08.20C 09/23/2013
Call Trace:
 dump_stack+0x78/0xab
 print_irq_inversion_bug.part.38+0x19f/0x1aa
 check_usage_backwards+0x11b/0x120
 ? check_usage_forwards+0x130/0x130
 mark_lock+0x17c/0x280
 __lock_acquire+0x1e6/0x770
 lock_acquire+0xbd/0x250
 ? sched_cfs_period_timer+0x28/0x140
 _raw_spin_lock+0x38/0x50
 ? sched_cfs_period_timer+0x28/0x140
 sched_cfs_period_timer+0x28/0x140
 ? sched_cfs_slack_timer+0xc0/0xc0
 __hrtimer_run_queues+0x10e/0x5f0
 hrtimer_run_softirq+0x83/0xc0
 do_current_softirqs+0x292/0x660
 run_ksoftirqd+0x27/0x70
 smpboot_thread_fn+0x27f/0x330
 kthread+0x103/0x140
 ? smpboot_register_percpu_thread_cpumask+0x100/0x100
 ? kthread_delayed_work_timer_fn+0x90/0x90
 ret_from_fork+0x3a/0x50

Signed-off-by: Mike Galbraith <efault@gmx.de>
---
 kernel/sched/fair.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -5007,9 +5007,9 @@ void init_cfs_bandwidth(struct cfs_bandw
 	cfs_b->period = ns_to_ktime(default_cfs_period());
 
 	INIT_LIST_HEAD(&cfs_b->throttled_cfs_rq);
-	hrtimer_init(&cfs_b->period_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_PINNED);
+	hrtimer_init(&cfs_b->period_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_PINNED_HARD);
 	cfs_b->period_timer.function = sched_cfs_period_timer;
-	hrtimer_init(&cfs_b->slack_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
+	hrtimer_init(&cfs_b->slack_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);
 	cfs_b->slack_timer.function = sched_cfs_slack_timer;
 }
 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [patch-rt] sched,fair: Fix CFS bandwidth control  lockdep DEADLOCK report
  2018-05-04  6:14 ` [patch-rt] sched,fair: Fix CFS bandwidth control lockdep DEADLOCK report Mike Galbraith
@ 2018-05-04 14:48   ` Steven Rostedt
  2018-05-15 16:45     ` Sebastian Andrzej Siewior
  0 siblings, 1 reply; 6+ messages in thread
From: Steven Rostedt @ 2018-05-04 14:48 UTC (permalink / raw)
  To: Mike Galbraith
  Cc: Sebastian Andrzej Siewior, Thomas Gleixner, LKML, linux-rt-users

On Fri, 04 May 2018 08:14:38 +0200
Mike Galbraith <efault@gmx.de> wrote:

> CFS bandwidth control yields the inversion gripe below, moving
> handling quells it.
> 
> ========================================================
> WARNING: possible irq lock inversion dependency detected
> 4.16.7-rt1-rt #2 Tainted: G            E   
> --------------------------------------------------------
> sirq-hrtimer/0/15 just changed the state of lock:
>  (&cfs_b->lock){+...}, at: [<000000009adb5cf7>] sched_cfs_period_timer+0x28/0x140
> but this lock was taken by another, HARDIRQ-safe lock in the past:
>  (&rq->lock){-...}
> and interrupts could create inverse lock ordering between them.
> other info that might help us debug this:
>  Possible interrupt unsafe locking scenario: 
>        CPU0                    CPU1
>        ----                    ----
>   lock(&cfs_b->lock);
>                                local_irq_disable();
>                                lock(&rq->lock);
>                                lock(&cfs_b->lock);
>   <Interrupt>
>     lock(&rq->lock);
> *** DEADLOCK *** 


> Signed-off-by: Mike Galbraith <efault@gmx.de>
> ---
>  kernel/sched/fair.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> --- a/kernel/sched/fair.c
> +++ b/kernel/sched/fair.c
> @@ -5007,9 +5007,9 @@ void init_cfs_bandwidth(struct cfs_bandw
>  	cfs_b->period = ns_to_ktime(default_cfs_period());
>  
>  	INIT_LIST_HEAD(&cfs_b->throttled_cfs_rq);
> -	hrtimer_init(&cfs_b->period_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_PINNED);
> +	hrtimer_init(&cfs_b->period_timer, CLOCK_MONOTONIC, HRTIMER_MODE_ABS_PINNED_HARD);
>  	cfs_b->period_timer.function = sched_cfs_period_timer;
> -	hrtimer_init(&cfs_b->slack_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL);
> +	hrtimer_init(&cfs_b->slack_timer, CLOCK_MONOTONIC, HRTIMER_MODE_REL_HARD);

Looks good to me.

Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>

-- Steve

>  	cfs_b->slack_timer.function = sched_cfs_slack_timer;
>  }
>  

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [ANNOUNCE] v4.16.7-rt1
  2018-05-03 16:29 [ANNOUNCE] v4.16.7-rt1 Sebastian Andrzej Siewior
  2018-05-04  6:14 ` [patch-rt] sched,fair: Fix CFS bandwidth control lockdep DEADLOCK report Mike Galbraith
@ 2018-05-09 21:45 ` Bernhard Landauer
  2018-05-09 22:24   ` Bernhard Landauer
  1 sibling, 1 reply; 6+ messages in thread
From: Bernhard Landauer @ 2018-05-09 21:45 UTC (permalink / raw)
  To: Sebastian Andrzej Siewior, Thomas Gleixner
  Cc: LKML, linux-rt-users, Steven Rostedt

On 03/05/18 18:29, Sebastian Andrzej Siewior wrote:
> Dear RT folks!
>
> I'm pleased to announce the v4.16.7-rt1 patch set. 
>
> Changes since v4.14.39-rt28:
>
>   - Rebase to v4.16
>
>   - The queue went through a big cleanup and reordering, so the patches
>     which belong together are not scattered all over the place.
>
>     The sections at the front of the series are patches which are either
>     upstream already (4.17), queued in a maintainer tree for 4.18, posted
>     and under discussion or just ready to be posted.
>
>   - A large section covers the recent rework of the *_nort/*_rt()
>     wrappers. Instead of trying to argue them upstream they have been made
>     obsolete by refactoring the code in which they have been used. There
>     are a few hard to solve leftovers, but non of them should survive.
>
>   - The cpu_chill() related try-lock-loop in dcache has been replaced
>     with a rework avoiding the loop. The rework was joint work by Al
>     Viro and John Ogness.
>
>     There are still a few cpu_chill() instances which are going to be
>     tackled in the next weeks.
>
>   - The AT91 timer patches have been mostly replaced with the "TCB timer
>     driver" patches by Alexandre Belloni.
>
>   - The latest version of the latency tracer patches which is aimed for 4.18
>     has been incorporated.
>
> You can get this release via the git tree at:
>
>     git://git.kernel.org/pub/scm/linux/kernel/git/rt/linux-rt-devel.git v4.16.7-rt1
>
> The RT patch against v4.16.7 can be found here:
>
>     https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patch-4.16.7-rt1.patch.xz
>
> The split quilt queue is available at:
>
>     https://cdn.kernel.org/pub/linux/kernel/projects/rt/4.16/older/patches-4.16.7-rt1.tar.xz
>
> Sebastian
> --
> To unsubscribe from this list: send the line "unsubscribe linux-rt-users" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

When compiling 4.16.7-rt1 with gcc 8.1.0 I see tons of these warnings:

warning: objtool: mISDN_FsmEvent()+0x27: sibling call from callable
instruction with modified stack frame

Any ideas what to make of these?

regards
Bernhard

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [ANNOUNCE] v4.16.7-rt1
  2018-05-09 21:45 ` [ANNOUNCE] v4.16.7-rt1 Bernhard Landauer
@ 2018-05-09 22:24   ` Bernhard Landauer
  0 siblings, 0 replies; 6+ messages in thread
From: Bernhard Landauer @ 2018-05-09 22:24 UTC (permalink / raw)
  To: Sebastian Andrzej Siewior, Thomas Gleixner
  Cc: LKML, linux-rt-users, Steven Rostedt

On 09/05/18 23:45, Bernhard Landauer wrote:
> When compiling 4.16.7-rt1 with gcc 8.1.0 I see tons of these warnings:
>
> warning: objtool: mISDN_FsmEvent()+0x27: sibling call from callable
> instruction with modified stack frame
>
> Any ideas what to make of these?
>
> regards
> Bernhard
Ah ok, meanwhile I found this:
https://lkml.org/lkml/2018/5/8/51

So I guess it's not really anything to worry about ;)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [patch-rt] sched,fair: Fix CFS bandwidth control  lockdep DEADLOCK report
  2018-05-04 14:48   ` Steven Rostedt
@ 2018-05-15 16:45     ` Sebastian Andrzej Siewior
  0 siblings, 0 replies; 6+ messages in thread
From: Sebastian Andrzej Siewior @ 2018-05-15 16:45 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: Mike Galbraith, Thomas Gleixner, LKML, linux-rt-users

On 2018-05-04 10:48:02 [-0400], Steven Rostedt wrote:
> On Fri, 04 May 2018 08:14:38 +0200
> Mike Galbraith <efault@gmx.de> wrote:
> 
> Looks good to me.
> 
> Acked-by: Steven Rostedt (VMware) <rostedt@goodmis.org>

trimmed commit message, tagged stable, applied.

> -- Steve

Sebastian

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-05-15 16:45 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-05-03 16:29 [ANNOUNCE] v4.16.7-rt1 Sebastian Andrzej Siewior
2018-05-04  6:14 ` [patch-rt] sched,fair: Fix CFS bandwidth control lockdep DEADLOCK report Mike Galbraith
2018-05-04 14:48   ` Steven Rostedt
2018-05-15 16:45     ` Sebastian Andrzej Siewior
2018-05-09 21:45 ` [ANNOUNCE] v4.16.7-rt1 Bernhard Landauer
2018-05-09 22:24   ` Bernhard Landauer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).