[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAOf5uwmqLkFDAjQdSJF8zXHjoz1P-2-Fp1L6orRHsAa6x89EHA@mail.gmail.com>
Date: Fri, 24 Feb 2023 11:02:49 +0100
From: Michael Nazzareno Trimarchi <michael@...rulasolutions.com>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: John Stultz <jstultz@...gle.com>,
LKML <linux-kernel@...r.kernel.org>,
Stephen Boyd <sboyd@...nel.org>, Arnd Bergmann <arnd@...db.de>,
Michael <michael@...isi.de>, kernel-team@...roid.com,
Peter Zijlstra <peterz@...radead.org>,
"Rafael J. Wysocki" <rafael@...nel.org>
Subject: Re: [RFC][PATCH 2/2] time: alarmtimer: Use TASK_FREEZABLE to cleanup
freezer handling
Hi Thomas
On Tue, Feb 21, 2023 at 8:10 AM Michael Nazzareno Trimarchi
<michael@...rulasolutions.com> wrote:
>
> Hi
>
> On Tue, Feb 21, 2023 at 1:12 AM Thomas Gleixner <tglx@...utronix.de> wrote:
> >
> > Michael!
> >
> > On Mon, Feb 20 2023 at 22:32, Michael Nazzareno Trimarchi wrote:
> > > On Mon, Feb 20, 2023 at 10:18 PM Thomas Gleixner <tglx@...utronix.de> wrote:
> > >> * alarmtimer_fired - Handles alarm hrtimer being fired.
> > >> @@ -194,6 +196,8 @@ static enum hrtimer_restart alarmtimer_f
> > >> int ret = HRTIMER_NORESTART;
> > >> int restart = ALARMTIMER_NORESTART;
> > >>
> > >> + atomic_inc(&alarmtimer_wakeup);
> > >> +
> > >
> > > ptr->it_active = 0;
> > > if (ptr->it_interval) {
> > > atomic_inc(&alarmtimer_wakeup);
> > > si_private = ++ptr->it_requeue_pending;
> > > }
> > >
> > > Should I not go to the alarm_handle_timer? and only if it's a periodic
> > > one?
> >
> > Why?
> >
>
> You are right. I will pay more attention to my reply.
>
I get time to test it and if the system suspend to ram we need to catch:
case PM_SUSPEND_PREPARE:
case PM_POST_SUSPEND:
Michael
> Michael
>
> > Any alarmtimer which hits that window has exactly the same problem.
> >
> > It's not restricted to periodic timers. Why would a dropped one-shot
> > wakeup be acceptable?
> >
> > It's neither restricted to posix timers. If a clock_nanosleep(ALARM)
> > expires in that window then the task wake up will just end up in the
> > /dev/null bucket for the very same reason. Why would this be correct?
> >
> > Hmm?
> >
> > <GRMBL>
> > > Michael
> > >
> > >> spin_lock_irqsave(&base->lock, flags);
> >
> > <SNIP>Tons of wasted electrons</SNIP>
> >
> > Can you please trim your replies?
> >
> > </GRMBL>
> >
> > Thanks,
> >
> > tglx
Powered by blists - more mailing lists