lkml.org 
[lkml]   [2018]   [Apr]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
From
Date
SubjectRe: Problem with commit 31e77c93e432 "sched/fair: Update blocked load when newly idle"
Hi Heiner,

On 30 March 2018 at 10:37, Heiner Kallweit <hkallweit1@gmail.com> wrote:
> Am 30.03.2018 um 08:50 schrieb Vincent Guittot:
>> On 29 March 2018 at 19:40, Heiner Kallweit <hkallweit1@gmail.com> wrote:
>>> Am 29.03.2018 um 09:41 schrieb Vincent Guittot:
>>
>>>>
>>>> I'm finally not so sure that i have the right set up to reproduce the
>>>> problem as I haven't been able to reproduce it since.
>>>>
>>>> Heiner,
>>>>
>>>> How fast the problem happens on your board ?
>>>> Are you doing anything specific on the console that trigger the problem ?
>>>>
>>> Hi Vincent,
>>>
>>> the lag when working on the console is constantly there, the "rcu_preempt
>>> detected stalls" happens after several hours (so far always within 24h)
>>> w/o any triggering event I would be aware of. It occured also when the
>>> system was idle at that point in time.
>>
>> Ok, so I don't have the problem on my hikey as the console never lag
>> on my setup.
>>
>> Can you send me the config of your kernel ? I'd like to check if you
>> have enable something that could trigger such problem
>>
> Sure, he we go. I also add a system log.

Thanks for the config. I have used it for my setup but I can't
reproduce your regression. My platforms stay stable so I probably
missing something. Are you facing similar problem with other platforms
or only this celeron based platform ?

I have reviewed the code but don't see any obvious place in the patch
that can generate the problem. Nevertheless, would you mind to try the
patch below ? It's a blind test to try to narrow the problem.

Thanks

---
kernel/sched/fair.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
index 0951d1c..e9835f2 100644
--- a/kernel/sched/fair.c
+++ b/kernel/sched/fair.c
@@ -9794,9 +9794,9 @@ static int idle_balance(struct rq *this_rq,
struct rq_flags *rf)
sd = rcu_dereference_check_sched_domain(this_rq->sd);
if (sd)
update_next_balance(sd, &next_balance);
- rcu_read_unlock();

nohz_newidle_balance(this_rq);
+ rcu_read_unlock();

goto out;
}
--
2.7.4
>
> #
> # Automatically generated file; DO NOT EDIT.
> # Linux/x86 4.16.0-rc7 Kernel Configuration
> #

[snip]

\
 
 \ /
  Last update: 2018-04-06 18:04    [W:0.089 / U:0.452 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site