2020-08-12 10:54:32

by Zhantao Tang

[permalink] [raw]
Subject: [PATCH linux-5.2.y-rt only] hrtimer: correct the logic for grab expiry lock

From: Zhantao Tang <[email protected]>

In commit: 47b6de0b7f22 ("hrtimer: Add a missing bracket and hide `migration_base' on !SMP")
a inline function is_migration_base() is introduced. But
the logic of the hrtimer_grab_expiry_lock was changed.

This patch is to correct it.

Signed-off-by: Zhantao Tang <[email protected]>
---
kernel/time/hrtimer.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/time/hrtimer.c b/kernel/time/hrtimer.c
index b3adac366fd1..6b47e310c68e 100644
--- a/kernel/time/hrtimer.c
+++ b/kernel/time/hrtimer.c
@@ -944,7 +944,7 @@ void hrtimer_grab_expiry_lock(const struct hrtimer *timer)
{
struct hrtimer_clock_base *base = READ_ONCE(timer->base);

- if (timer->is_soft && is_migration_base(base)) {
+ if (timer->is_soft && !is_migration_base(base)) {
spin_lock(&base->cpu_base->softirq_expiry_lock);
spin_unlock(&base->cpu_base->softirq_expiry_lock);
}
--
2.17.1


2020-08-12 11:47:57

by Rasmus Villemoes

[permalink] [raw]
Subject: Re: [PATCH linux-5.2.y-rt only] hrtimer: correct the logic for grab expiry lock

On 12/08/2020 12.50, [email protected] wrote:
> From: Zhantao Tang <[email protected]>
>
> In commit: 47b6de0b7f22 ("hrtimer: Add a missing bracket and hide `migration_base' on !SMP")
> a inline function is_migration_base() is introduced. But
> the logic of the hrtimer_grab_expiry_lock was changed.
>
> This patch is to correct it.
>

Yup, same patch sent back in April, which also had a fixes tag for 5.2.

https://lore.kernel.org/lkml/[email protected]/

It got picked up for 4.19-rt, dunno why it wasn't for 5.2-rt.

Rasmus

2020-08-12 15:12:21

by Steven Rostedt

[permalink] [raw]
Subject: Re: [PATCH linux-5.2.y-rt only] hrtimer: correct the logic for grab expiry lock

On Wed, 12 Aug 2020 13:45:02 +0200
Rasmus Villemoes <[email protected]> wrote:

> Yup, same patch sent back in April, which also had a fixes tag for 5.2.
>
> https://lore.kernel.org/lkml/[email protected]/
>
> It got picked up for 4.19-rt, dunno why it wasn't for 5.2-rt.

5.2-rt is no longer supported. The -rt trees follow mainline trees.
When a mainline version is EOL so is the -rt version associated with it.

-- Steve

2020-08-13 02:01:44

by Zhantao Tang

[permalink] [raw]
Subject: Re: [PATCH linux-5.2.y-rt only] hrtimer: correct the logic for grab expiry lock


在 2020/8/12 下午7:45, Rasmus Villemoes 写道:
> On 12/08/2020 12.50, [email protected] wrote:
>> From: Zhantao Tang <[email protected]>
>>
>> In commit: 47b6de0b7f22 ("hrtimer: Add a missing bracket and hide `migration_base' on !SMP")
>> a inline function is_migration_base() is introduced. But
>> the logic of the hrtimer_grab_expiry_lock was changed.
>>
>> This patch is to correct it.
>>
> Yup, same patch sent back in April, which also had a fixes tag for 5.2.
>
> https://lore.kernel.org/lkml/[email protected]/
>
> It got picked up for 4.19-rt, dunno why it wasn't for 5.2-rt.

Yes, currently 5.2 rt kernel not fix the issue.

And I checked the 4.19 rt kernel, but  did not find the implementation
of hrtimer_grab_expiry_lock().

It used hrtimer_wait_for_timer() and the logic is OK.


Thanks,

Zhantao

>
> Rasmus