Re: [PATCH] s390/pai: Handle multiple PMU stop callback invocations
Thomas Richter <[email protected]>
| Newsgroups | dev.linux.lists.sashiko-reviews,org.kernel.vger.linux-s390 |
|---|---|
| Organization | IBM |
| Message-ID | <[email protected]> |
On 8/13/26 09:21, [email protected] wrote: > Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider: > > Pre-existing issues: > - [High] Unsafe iteration over `cpump->syswide_list` in `pai_have_samples()` leads to a kernel crash (LIST_POISON dereference) if an event overflows and is synchronously throttled during the loop. > -- This can not happen. The syswide_list is anchored by per-CPU pai_map::syswide_list and tracks all events which are bound to that particular CPU. The event was installed only on that particular CPU and does not move with the process/task. Each CPU has its own list anchored by pai_map::syswide_list. The call chains are either paicrypt_sched_task() or paiext_sched_task +--> pai_have_samples() iterates over syswide_list and calls +--> pai_have_sample or pai_stop() +--> list_del() to remove the event from that CPU. Since a CPU can only execute one given code path at any one time: - either schedule out - or stop the event both can not happen at the same time. PAI PMU does not install an interrupt handler, there is no supoprt for interrupts. I think this is safe or am I mistaken? ... -- Thomas Richter, Dept 3303, IBM s390 Linux Development, Boeblingen, Germany -- IBM Deutschland Research & Development GmbH Vorsitzender des Aufsichtsrats: Wolfgang Wendt Geschäftsführung: David Faller Sitz der Gesellschaft: Böblingen / Registergericht: Amtsgericht Stuttgart, HRB 243294