Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752673AbdGRWiB (ORCPT ); Tue, 18 Jul 2017 18:38:01 -0400 Received: from mail-wr0-f169.google.com ([209.85.128.169]:33012 "EHLO mail-wr0-f169.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752601AbdGRWh7 (ORCPT ); Tue, 18 Jul 2017 18:37:59 -0400 MIME-Version: 1.0 In-Reply-To: References: <20170708000303.21863-1-dbasehore@chromium.org> <7467728.lI8lN4PjS8@aspire.rjw.lan> From: "dbasehore ." Date: Tue, 18 Jul 2017 15:37:56 -0700 X-Google-Sender-Auth: UcJX6y3aPwcRMKTfn9zP2LT-kAQ Message-ID: Subject: Re: [PATCH v5 2/5] tick: Add freeze timer events To: Thomas Gleixner Cc: "Rafael J. Wysocki" , "Rafael J. Wysocki" , Peter Zijlstra , Linux Kernel Mailing List , Ingo Molnar , Rajneesh Bhardwaj , "the arch/x86 maintainers" , Platform Driver , Len Brown , Linux PM Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2437 Lines: 48 On Tue, Jul 18, 2017 at 3:22 PM, Thomas Gleixner wrote: > On Tue, 18 Jul 2017, dbasehore . wrote: >> On Tue, Jul 18, 2017 at 2:53 PM, Thomas Gleixner wrote: >> > On Tue, 18 Jul 2017, dbasehore . wrote: >> >> On Mon, Jul 17, 2017 at 11:40 PM, Thomas Gleixner wrote: >> >> > On Mon, 17 Jul 2017, dbasehore . wrote: >> >> >> On Mon, Jul 17, 2017 at 6:33 PM, Rafael J. Wysocki wrote: >> >> >> I could make a patch to try it out. I would probably add a flag to rtc >> >> >> timers to indicate whether it wakes the system (default true). We >> >> >> would have to add a sync with the rtc irq and the rtc irqwork. I would >> >> >> probably add a rtc_timer_sync function that would flush the rtc irq >> >> >> and flush the irqwork. I would call this after the freeze_ops sync >> >> >> function since the sci irq needs to finish before syncing with the rtc >> >> >> irq. Also, pm_wakeup_irq seems racy with the current implementation of >> >> >> s2idle_loop since the RTC irq could be mistakenly set as pm_wakeup_irq >> >> >> when something else actually triggered the full wakeup. Fortunately, I >> >> >> don't think pm_wakeup_irq is used for anything except debugging, but >> >> >> we might change that. >> >> > >> >> > There is another option which you might consider. We can reserve one of the >> >> > HPET comparators for that purpose and have a special interrupt handler for >> >> > it. Checking the HPET for expiry from the low level code should be trivial. >> >> > >> >> Does that handle setting up new timers properly or does the timer sync >> >> code still need to be written? >> > >> > Sorry, I don't understand the question. What is timer sync code? >> > >> >> Does the comparator allow you to have a completely separate alarm set >> in the hardware? If there's another timer setup (say some user >> specified wake alarm), we need to program that alarm after the current >> one goes off if we aren't able to program multiple alarms at the same >> time. > > The HPET consists of several independent comparator units. The kernel uses > only a limited set of them. We can reserve one or more for that purpose, so > it does not require any multiplexing or whatever. How many of them do you > need? > I just need one. Is it a different irq than the RTC? It would be nice if we could avoid going through the s2idle_loop code. > Thanks, > > tglx >