Hi, On 6/24/2023 11:42 AM, Alexei Starovoitov wrote: > On Fri, Jun 23, 2023 at 8:28 PM Hou Tao <houtao@xxxxxxxxxxxxxxx> wrote: >>> */ >>> - obj = __llist_del_first(&c->free_by_rcu_ttrace); >>> + obj = llist_del_first(&c->free_by_rcu_ttrace); >> According to the comments in llist.h, when there are concurrent >> llist_del_first() and llist_del_all() operations, locking is needed. > Good question. > 1. When only one cpu is doing llist_del_first() locking is not needed. > This is the case here. Only this cpu is doing llist_del_first() from this 'c'. > 2. The comments doesn't mention it, but llist_del_first() is ok on > multiple cpus if ABA problem is addressed by other means. Haven't checked the implementation details of lockless list. Will do that later. "by other means" do you mean RCU ? because the reuse will be possible only after one RCU GP. > PS > please trim your replies. Sorry for the inconvenience. Will do next time.