On Fri, Jun 23, 2023 at 8:54 PM Hou Tao <houtao@xxxxxxxxxxxxxxx> wrote: > > 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. Right. Like RCU, but that's if we go that route in future patches. We're at 1 == only one cpu is doing llist_del_first. > > PS > > please trim your replies. > Sorry for the inconvenience. Will do next time. > >