Re: [PATCH v3] psi: get poll_work to run when calling poll syscall next time

From: Andrew Morton
Date: Thu Aug 22 2019 - 18:21:10 EST


On Wed, 21 Aug 2019 11:26:25 +0800 Joseph Qi <joseph.qi@xxxxxxxxxxxxxxxxx> wrote:

> Only when calling the poll syscall the first time can user
> receive POLLPRI correctly. After that, user always fails to
> acquire the event signal.
>
> Reproduce case:
> 1. Get the monitor code in Documentation/accounting/psi.txt
> 2. Run it, and wait for the event triggered.
> 3. Kill and restart the process.
>
> The question is why we can end up with poll_scheduled = 1 but the work
> not running (which would reset it to 0). And the answer is because the
> scheduling side sees group->poll_kworker under RCU protection and then
> schedules it, but here we cancel the work and destroy the worker. The
> cancel needs to pair with resetting the poll_scheduled flag.

Should this be backported into -stable kernels?