From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mason Subject: Re: schedule_timeout sleeps too long after dividing CPU frequency Date: Wed, 13 May 2015 18:51:04 +0200 Message-ID: <555380F8.5050306@free.fr> References: <55520F0F.5010906@free.fr> <555218C7.5050602@free.fr> <20150512155004.GP2067@n2100.arm.linux.org.uk> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------010505010109020303010705" Return-path: Received: from smtp2-g21.free.fr ([212.27.42.2]:29193 "EHLO smtp2-g21.free.fr" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754489AbbEMQvV (ORCPT ); Wed, 13 May 2015 12:51:21 -0400 In-Reply-To: <20150512155004.GP2067@n2100.arm.linux.org.uk> Sender: linux-pm-owner@vger.kernel.org List-Id: linux-pm@vger.kernel.org To: Russell King - ARM Linux Cc: Viresh Kumar , Daniel Lezcano , "Rafael J. Wysocki" , Mans Rullgard , Linux ARM , Linux PM , cpufreq This is a multi-part message in MIME format. --------------010505010109020303010705 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit On 12/05/2015 17:50, Russell King - ARM Linux wrote: > On Tue, May 12, 2015 at 05:14:15PM +0200, Mason wrote: >> This ties in to another thread I started in LAKML: >> ("High-resolution timers not supported when using smp_twd on Cortex A9") >> >> $ git show 5388a6b2 arch/arm/kernel/smp_twd.c >> commit 5388a6b266e9c3357353332ba0cd5549082887f1 >> Author: Russell King >> Date: Mon Jul 26 13:19:43 2010 +0100 >> >> ARM: SMP: Always enable clock event broadcast support >> >> The TWD local timers are unable to wake up the CPU when it is placed >> into a low power mode, eg. C3. Therefore, we need to adapt things >> such that the TWD code can cope with this. >> >> We do this by always providing a broadcast tick function, and marking >> the fact that the TWD local timer will stop in low power modes. This >> means that when the CPU is placed into a low power mode, the core >> timer code marks this fact, and allows an IPI to be given to the core. >> >> This mentions a "broadcast tick function" (of which I know nothing). >> Is this what you're referring to? > > No. This has nothing to do with low power modes. > > How this works depends on how your kernel is configured, but essentially > it's something like this: > > * The CPU which will be idling sets its local timer to wake up after N > counter cycles, where N is calculated from the timer frequency. > > * When the local timer fires, the CPU is kicked out of the idle loop, and > it reads the current system time. If the current system time indicates > that the software timer set in schedule_timeout() has fired, that > software timer fires. > > If the local timer changes frequency without the idling CPU being woken > up, then the problem you're referring to can happen. > > As you're not giving much information about your system (including > indicating where we might see some source code) we're not able to help > more than providing above descriptions. Maybe if you posted your > patches so far to support the project you're working on, we could > provide better answers. $ git diff v3.14.41 HEAD >tango.patch && xz tango.patch I don't understand the IRQ-related part yet ( arch/arm/mach-tangox/irq.c and drivers/irqchip/irq-gic.c ) If anyone spots the problem, that would make my day. I tested with a loadable module whose init function is static int __init ts_init(void) { long res; printk("ABOUT TO SLEEP\n"); set_current_state(TASK_INTERRUPTIBLE); res = schedule_timeout(HZ); printk("WAKE UP res=%ld\n", res); return 0; } Loading the module, with cpufreq divided by 9, prints: [ 1738.962982] ABOUT TO SLEEP [ 1747.956191] WAKE UP res=0 Regards. --------------010505010109020303010705 Content-Type: application/force-download; name="tango.patch.xz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="tango.patch.xz" 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 --------------010505010109020303010705 Content-Type: application/force-download; name="dot.config.xz" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="dot.config.xz" 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 --------------010505010109020303010705-- From mboxrd@z Thu Jan 1 00:00:00 1970 From: slash.tmp@free.fr (Mason) Date: Wed, 13 May 2015 18:51:04 +0200 Subject: schedule_timeout sleeps too long after dividing CPU frequency In-Reply-To: <20150512155004.GP2067@n2100.arm.linux.org.uk> References: <55520F0F.5010906@free.fr> <555218C7.5050602@free.fr> <20150512155004.GP2067@n2100.arm.linux.org.uk> Message-ID: <555380F8.5050306@free.fr> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 12/05/2015 17:50, Russell King - ARM Linux wrote: > On Tue, May 12, 2015 at 05:14:15PM +0200, Mason wrote: >> This ties in to another thread I started in LAKML: >> ("High-resolution timers not supported when using smp_twd on Cortex A9") >> >> $ git show 5388a6b2 arch/arm/kernel/smp_twd.c >> commit 5388a6b266e9c3357353332ba0cd5549082887f1 >> Author: Russell King >> Date: Mon Jul 26 13:19:43 2010 +0100 >> >> ARM: SMP: Always enable clock event broadcast support >> >> The TWD local timers are unable to wake up the CPU when it is placed >> into a low power mode, eg. C3. Therefore, we need to adapt things >> such that the TWD code can cope with this. >> >> We do this by always providing a broadcast tick function, and marking >> the fact that the TWD local timer will stop in low power modes. This >> means that when the CPU is placed into a low power mode, the core >> timer code marks this fact, and allows an IPI to be given to the core. >> >> This mentions a "broadcast tick function" (of which I know nothing). >> Is this what you're referring to? > > No. This has nothing to do with low power modes. > > How this works depends on how your kernel is configured, but essentially > it's something like this: > > * The CPU which will be idling sets its local timer to wake up after N > counter cycles, where N is calculated from the timer frequency. > > * When the local timer fires, the CPU is kicked out of the idle loop, and > it reads the current system time. If the current system time indicates > that the software timer set in schedule_timeout() has fired, that > software timer fires. > > If the local timer changes frequency without the idling CPU being woken > up, then the problem you're referring to can happen. > > As you're not giving much information about your system (including > indicating where we might see some source code) we're not able to help > more than providing above descriptions. Maybe if you posted your > patches so far to support the project you're working on, we could > provide better answers. $ git diff v3.14.41 HEAD >tango.patch && xz tango.patch I don't understand the IRQ-related part yet ( arch/arm/mach-tangox/irq.c and drivers/irqchip/irq-gic.c ) If anyone spots the problem, that would make my day. I tested with a loadable module whose init function is static int __init ts_init(void) { long res; printk("ABOUT TO SLEEP\n"); set_current_state(TASK_INTERRUPTIBLE); res = schedule_timeout(HZ); printk("WAKE UP res=%ld\n", res); return 0; } Loading the module, with cpufreq divided by 9, prints: [ 1738.962982] ABOUT TO SLEEP [ 1747.956191] WAKE UP res=0 Regards. -------------- next part -------------- A non-text attachment was scrubbed... Name: tango.patch.xz Type: application/force-download Size: 30112 bytes Desc: not available URL: -------------- next part -------------- A non-text attachment was scrubbed... Name: dot.config.xz Type: application/force-download Size: 7924 bytes Desc: not available URL: