On Thu, Sep 25, 2025 at 8:40 AM Paolo Bonzini <[email protected]> wrote: > > On 9/25/25 13:50, Stefan Hajnoczi wrote: > > On Wed, Sep 24, 2025 at 09:58:04PM +0200, Paolo Bonzini wrote: > >> On Wed, Sep 24, 2025, 20:10 Stefan Hajnoczi <[email protected]> wrote: > >> > >>>> fn trace_event_state_is_enabled(dstate: u16) -> bool { > >>>> unsafe { trace_events_enabled_count } != 0 && dstate != 0 > >>>> } > >>> > >>> The generated code is missing DTrace's SDT semaphore (see > >>> generate_h_backend_dstate() in scripts/tracetool/backend/dtrace.py). The > >>> conditional must be taken when a tool like SystemTap or GDB sets the SDT > >>> semaphore. Right now it will not be taken because the conditional only > >>> looks at _ ## id ## _DSTATE and not the SDT semaphore. > >>> > >> > >> This is private code to trace-*.rs, for use within the tracepoint functions > >> only; it's not a public "is the tracepoint active" API. The public side in > >> C does look at the semaphore. > > > > You're right, the code is fine just with the function renamed. > > No problem---in fact I have now realized that, for systemtap, I have to > ensure that the semaphore is shared between C and Rust!
Is anyone working on the DTrace support? If not, I'll keep it in mind in case I get some time over the next few weeks. Stefan
