Re: URCU feature request?
Thobias Knudsen via lttng-dev <[email protected]> Thu, 4 Sep 2025 20:06:26 +0200
| Newsgroups | org.lttng.lists.lttng-dev |
|---|---|
| Message-ID | <CAKGpcioZbhyTUqLmNSnpuPw=jbi6eZV6ubbFQtvFD6VKn3wKxA@mail.gmail.com> |
--0000000000001c3987063dfd95c9 Content-Type: text/plain; charset="UTF-8" > I am confuse about the overall discussion here. Are we talking about > static checking of RCU pointers usage or runtime checking? > > Is is possible to see the implementation you made so I can understand > better? Sorry for being late to answer :/ The library overrides a subset of urcu and lfht functions with macros and replaces them with other functions which checks in runtime if the functions are called in the correct order. here is the code: https://github.com/ThobiasKnudsen/urcu_lfht_safe ons. 3. sep. 2025 kl. 03:35 skrev Olivier Dion <[email protected]>: > On Tue, 02 Sep 2025, Thobias Knudsen via lttng-dev < > [email protected]> wrote: > > Yes but all read/write operations doesn't have the syntax of a function > as > > you used in the example here i.e. use(...). When it is a function you can > > easily just change the implementation to check if it is called inside a > > read section. Some reads and writes are usually done by this syntax (a = > b) > > and '=' cannot be overridden. > > > > BTW just saying that what we're talking about now is not the original > > topic, but if someone has an elegant solution to this that would be > > nice! > > I am confuse about the overall discussion here. Are we talking about > static checking of RCU pointers usage or runtime checking? > > Is is possible to see the implementation you made so I can understand > better? > > Thanks, > Olivier > -- > Olivier Dion > EfficiOS Inc. > https://www.efficios.com > > --0000000000001c3987063dfd95c9 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div>> I am confuse about the overall discussion here.= =C2=A0 Are we talking about<br>> static checking of RCU pointers usage o= r runtime checking?<br>>=C2=A0<br>> Is is possible to see the impleme= ntation you made so I can understand<br>> better?</div><div><br></div>So= rry for being late to answer=C2=A0:/<div>The library overrides a subset of = urcu and lfht functions with macros and replaces them with other functions = which checks in runtime if the=C2=A0functions are called in the correct ord= er.</div><div>here is the code:=C2=A0<a href=3D"https://github.com/ThobiasK= nudsen/urcu_lfht_safe">https://github.com/ThobiasKnudsen/urcu_lfht_safe</a>= <br><div><br></div></div></div><br><div class=3D"gmail_quote gmail_quote_co= ntainer"><div dir=3D"ltr" class=3D"gmail_attr">ons. 3. sep. 2025 kl. 03:35 = skrev Olivier Dion <<a href=3D"mailto:[email protected]">odion@efficios= .com</a>>:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0p= x 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On= Tue, 02 Sep 2025, Thobias Knudsen via lttng-dev <<a href=3D"mailto:lttn= [email protected]" target=3D"_blank">[email protected]</a>> = wrote:<br> > Yes but all read/write operations doesn't have the syntax of a fun= ction as<br> > you used in the example here i.e. use(...). When it is a function you = can<br> > easily just change the implementation to check if it is called inside = a<br> > read section. Some reads and writes are usually done by this syntax (a= =3D b)<br> > and '=3D' cannot be overridden.<br> ><br> > BTW just saying that what we're talking about now is not the origi= nal<br> > topic, but if someone has an elegant solution to this that would be<br= > > nice!<br> <br> I am confuse about the overall discussion here.=C2=A0 Are we talking about<= br> static checking of RCU pointers usage or runtime checking?<br> <br> Is is possible to see the implementation you made so I can understand<br> better?<br> <br> Thanks,<br> Olivier<br> -- <br> Olivier Dion<br> EfficiOS Inc.<br> <a href=3D"https://www.efficios.com" rel=3D"noreferrer" target=3D"_blank">h= ttps://www.efficios.com</a><br> <br> </blockquote></div> --0000000000001c3987063dfd95c9--