On Thu, Aug 22, 2019 at 3:21 PM Andrew Morton akpm@linux-foundation.org wrote:
On Wed, 21 Aug 2019 11:26:25 +0800 Joseph Qi joseph.qi@linux.alibaba.com 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:
- Get the monitor code in Documentation/accounting/psi.txt
- Run it, and wait for the event triggered.
- 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?
Adding GregKH and stable@vger.kernel.org
I was able to cleanly apply this patch to stable master and linux-5.2.y branches (these are the only branches that have psi triggers). Greg, Andrew got this patch into -mm tree. Please advise on how we should proceed to land it in stable 5.2.y and master. Thanks, Suren.