[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20220817164844.zyypokjmzjfznuhu@ava.usersys.com>
Date: Wed, 17 Aug 2022 17:48:44 +0100
From: Aaron Tomlin <atomlin@...hat.com>
To: Marcelo Tosatti <mtosatti@...hat.com>
Cc: frederic@...nel.org, cl@...ux.com, tglx@...utronix.de,
mingo@...nel.org, peterz@...radead.org, pauld@...hat.com,
neelx@...hat.com, oleksandr@...alenko.name, atomlin@...mlin.com,
linux-kernel@...r.kernel.org, linux-mm@...ck.org
Subject: Re: [PATCH v6 2/2] tick/sched: Ensure quiet_vmstat() is called when
the idle tick was stopped too
On Tue 2022-08-16 15:11 -0300, Marcelo Tosatti wrote:
> Aaron,
>
> It is also necessary to remove the delayed_work_pending check from
> quiet_vmstat:
>
> @@ -1987,10 +1970,7 @@ void quiet_vmstat(void)
> if (system_state != SYSTEM_RUNNING)
> return;
>
> - if (!delayed_work_pending(this_cpu_ptr(&vmstat_work)))
> - return;
> -
> - if (!need_update(smp_processor_id()))
> + if (!__this_cpu_read(vmstat_dirty))
> return;
>
>
> Because, consider the following situation:
>
>
> vmstat_shepherd CPU nohz_full CPU
>
>
> vmstat_dirty = false
> enter nohz_full
> return to userspace
> check vmstat_dirty, unset,
> delayed work cancelled.
> dirties per-CPU vmstats
> vmstat_dirty = true
> return to userspace
> (quiet_vmstat will skip
> clearing stats because
> delayed work was not queued).
Hi Marcelo,
Yes, I agree - the above scenario can occur.
Kind regards,
--
Aaron Tomlin
Powered by blists - more mailing lists