On Wed, 31 May 2023 15:15:41 -0700 Benjamin Segall bsegall@google.com wrote:
Can you please provide a more detailed explanation about why list_del_init_careful() is needed here?
Yeah, this needs more explanation... Next time someone looks at this code and there's a *_careful() added they'll want to know why.
So the general reason is the same as with autoremove_wake_function, it pairs with the list_entry_careful in ep_poll (which is epoll's modified copy of finish_wait).
I think the original actual _problem_ was a -stable issue that was fixed instead by doing additional backports, so this may just avoid potential extra loops and avoid potential compiler shenanigans from the data race.
The point is that the foo_careful() callsites should be commented, please.