From: Sasha Levin <levinsasha928@gmail.com>
To: John Stultz <johnstul@us.ibm.com>
Cc: Avi Kivity <avi@redhat.com>,
paulmck@linux.vnet.ibm.com,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
mingo@kernel.org, a.p.zijlstra@chello.nl, prarit@redhat.com,
tglx@linutronix.de, Dave Jones <davej@redhat.com>,
Michael Wang <wangyun@linux.vnet.ibm.com>
Subject: Re: rcu: INFO: rcu_preempt detected stalls on CPUs/tasks on v3.6
Date: Tue, 07 Aug 2012 12:24:50 +0200 [thread overview]
Message-ID: <5020ECF2.4040006@gmail.com> (raw)
In-Reply-To: <5020AA44.7010107@us.ibm.com>
On 08/07/2012 07:40 AM, John Stultz wrote:
> On 08/06/2012 11:28 AM, Sasha Levin wrote:
>> On 08/06/2012 08:20 PM, John Stultz wrote:
>>> On 08/06/2012 10:21 AM, John Stultz wrote:
>>>> On 08/05/2012 09:55 AM, Sasha Levin wrote:
>>>>> On 07/30/2012 03:17 PM, Avi Kivity wrote:
>>>>>> Possible causes:
>>>>>> - the APIC calibration in the guest failed, so it is programming too
>>>>>> low values into the timer
>>>>>> - it actually needs 1 us wakeups and then can't keep up (esp. as kvm
>>>>>> interrupt injection is slowing it down)
>>>>>>
>>>>>> You can try to find out by changing
>>>>>> arch/x86/kvm/lapic.c:start_lapic_timer() to impose a minimum wakeup of
>>>>>> (say) 20 microseconds which will let the guest live long enough for you
>>>>>> to ftrace it and see what kind of timers it is programming.
>>>>> I've kept trying to narrow it down, and found out It's triggerable using adjtimex().
>>> Sorry, one more question: Could you provide details on how is it trigger-able using adjtimex?
>> It triggers after a while of fuzzing using trinity of just adjtimex ('./trinity --quiet -l off -cadjtimex').
>>
>> Trinity is available here: http://git.codemonkey.org.uk/?p=trinity.git .
>>
>> Let me know if I can help further with reproducing this, I can probably copy over my testing environment to some other host if you'd like.
>
> Ok. Finally I *think* got it reproduced. (Had some trouble initially, as I think since the first time I ran it as a normal user, the socket cache isn't the same as if you run it the first time as root? Anyway, after doing a make clean and rebuilding it started to trigger).
>
> I'm not seeing the rcu stall message, but I do manage to trigger two other behaviors: a hard hang and a sort of zombie state where memory isn't properly being freed & everything starts segfaulting. So this may not be the exact same issue, but it triggers quickly as you described (within a few seconds of running trinity as root).
>
> It looks like both of these issues are caused by adjtimex(ADJ_SETOFFSET), which adds or subtracts a huge offset and that either goes negative or gets clamped to a ktime_t at KTIME_MAX (if you get clamped the system hangs, if it goes negative, the system barely functions, but sort of drags along).
>
> An updated version of my KTIME_MAX sanity checking patch to handle both of these conditions is below.
>
> Would you mind giving this patch a shot and letting me know if you still see problems?
This fixes the problem for me. Thanks!
next prev parent reply other threads:[~2012-08-07 10:24 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-24 17:10 rcu: INFO: rcu_preempt detected stalls on CPUs/tasks on v3.6 Sasha Levin
2012-07-24 17:40 ` Paul E. McKenney
2012-07-24 20:55 ` Sasha Levin
2012-07-25 8:36 ` Michael Wang
2012-07-25 21:16 ` Sasha Levin
2012-07-26 5:10 ` Michael Wang
2012-07-25 9:06 ` Michael Wang
2012-07-26 11:42 ` Avi Kivity
2012-07-27 11:27 ` Sasha Levin
2012-07-29 12:48 ` Avi Kivity
2012-07-29 21:05 ` Sasha Levin
2012-07-30 5:36 ` Avi Kivity
2012-07-30 9:13 ` Sasha Levin
2012-07-30 9:33 ` Avi Kivity
2012-07-30 12:43 ` Sasha Levin
2012-07-30 13:17 ` Avi Kivity
2012-08-05 16:55 ` Sasha Levin
2012-08-06 17:21 ` John Stultz
2012-08-06 18:12 ` John Stultz
2012-08-06 18:20 ` John Stultz
2012-08-06 18:28 ` Sasha Levin
2012-08-06 20:31 ` John Stultz
2012-08-06 20:35 ` Sasha Levin
2012-08-07 5:05 ` Michael Wang
2012-08-07 5:40 ` John Stultz
2012-08-07 10:24 ` Sasha Levin [this message]
2012-08-08 2:20 ` Michael Wang
2012-08-06 19:24 ` Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5020ECF2.4040006@gmail.com \
--to=levinsasha928@gmail.com \
--cc=a.p.zijlstra@chello.nl \
--cc=avi@redhat.com \
--cc=davej@redhat.com \
--cc=johnstul@us.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=paulmck@linux.vnet.ibm.com \
--cc=prarit@redhat.com \
--cc=tglx@linutronix.de \
--cc=wangyun@linux.vnet.ibm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.