Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1450497

Re: [patch 61/66] timers: Convert to hotplug state machine

From Jon Hunter <jonathanh@nvidia.com>
Newsgroups linux.kernel
Subject Re: [patch 61/66] timers: Convert to hotplug state machine
Date 2016-07-26 11:30 +0200
Message-ID <rZ6Qx-bX-5@gated-at.bofh.it> (permalink)
References <rTIFb-70u-3@gated-at.bofh.it> <rTIFd-70u-69@gated-at.bofh.it> <rYPwn-5P2-41@gated-at.bofh.it> <rYQ93-6hx-7@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


On 25/07/16 16:35, rcochran@linutronix.de wrote:
> On Mon, Jul 25, 2016 at 03:56:48PM +0100, Jon Hunter wrote:
>>> There is a hidden dependency between:
>>>
>>> - timers
>>> - Block multiqueue
>>> - rcutree
>>>
>>> If timers_dead_cpu() comes later than blk_mq_queue_reinit_notify()
>>> that latter function causes a RCU stall.
>>
>> After this change is applied I am seeing RCU stalls during suspend
>> on Tegra. I guess I am hitting the case mentioned above? How should
>> this be avoided?
> 
> The problem that I had found was a hidden dependency.  When I
> initially placed the timers callback into the new HP state list, that
> caused a stall because the dependency was broken.  The old code worked
> by luck, based on the order of the notifier registrations.  The new
> code makes the old implicit ordering explicit, so it should work just
> as well as before (famous last words).

I see.

>> Interestingly I am only seeing the above when using the ARM
>> multi_v7_defconfig kernel configuration and not with the tegra_defconfig.
>> One key difference between these is that the multi_v7_defconfig does not
>> have CONFIG_PREEMPT enabled. Initial testing shows enabling CONFIG_PREEMPT
>> for multi_v7_defconfig makes the problem go away.
> 
> Just to be sure, this problem didn't exist before the HP rework, that
> is, suspend worked fine with and without CONFIG_PREEMPT, right?

Correct. I test suspend on Tegra with both multi_v7_defconfig
(CONFIG_PREEMPT disabled) and tegra_defconfig (CONFIG_PREEMPT enabled).
Looking at the git history for these configs I don't see any changes in
this regard since they were added (unless some underlying Kconfig files
have changed).

> I see if I can find a tegra system to test with...

Thanks. I have not tried another ARM based device, but I would be
curious if another ARM device sees this or not.

Cheers
Jon

-- 
nvpublic

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

[patch 61/66] timers: Convert to hotplug state machine Anna-Maria Gleixner <anna-maria@linutronix.de> - 2016-07-11 14:40 +0200
  Re: [patch 61/66] timers: Convert to hotplug state machine Jon Hunter <jonathanh@nvidia.com> - 2016-07-25 17:00 +0200
    Re: [patch 61/66] timers: Convert to hotplug state machine rcochran@linutronix.de - 2016-07-25 17:40 +0200
      Re: [patch 61/66] timers: Convert to hotplug state machine rcochran@linutronix.de - 2016-07-25 22:50 +0200
        Re: [patch 61/66] timers: Convert to hotplug state machine Jon Hunter <jonathanh@nvidia.com> - 2016-07-26 11:30 +0200
      Re: [patch 61/66] timers: Convert to hotplug state machine Jon Hunter <jonathanh@nvidia.com> - 2016-07-26 11:30 +0200
        Re: [patch 61/66] timers: Convert to hotplug state machine Thomas Gleixner <tglx@linutronix.de> - 2016-07-26 16:20 +0200
          Re: [patch 61/66] timers: Convert to hotplug state machine Jon Hunter <jonathanh@nvidia.com> - 2016-07-26 20:30 +0200
        Re: [patch 61/66] timers: Convert to hotplug state machine rcochran@linutronix.de - 2016-07-26 16:50 +0200
          Re: [patch 61/66] timers: Convert to hotplug state machine Jon Hunter <jonathanh@nvidia.com> - 2016-07-26 20:30 +0200
    Re: [patch 61/66] timers: Convert to hotplug state machine rcochran@linutronix.de - 2016-07-26 17:50 +0200
      Re: [patch 61/66] timers: Convert to hotplug state machine Jon Hunter <jonathanh@nvidia.com> - 2016-07-26 20:20 +0200

csiph-web