“I don’t know about this. It (the FreeBSD code) looks poorly designed to me.
Also, the FreeBSD code probably used mutexes where you are using a token. For ktr_tracepoint() to be callable from ‘anywhere’ you can’t use a token there but must instead convert the code to use a critical section and per-cpu arrays.
Also, 1024 entries is probably not nearly enough for a tracepoint utility to be useful. We’d need a lot of entries… a million or more, for it to be really useful, which implies dynamically allocating the array at boot time rather then declaring it static.”
See Matt’s followup:
http://leaf.dragonflybsd.org/mailarchive/kernel/2004-09/msg00010.html
“I don’t know about this. It (the FreeBSD code) looks poorly designed to me.
Also, the FreeBSD code probably used mutexes where you are using a token. For ktr_tracepoint() to be callable from ‘anywhere’ you can’t use a token there but must instead convert the code to use a critical section and per-cpu arrays.
Also, 1024 entries is probably not nearly enough for a tracepoint utility to be useful. We’d need a lot of entries… a million or more, for it to be really useful, which implies dynamically allocating the array at boot time rather then declaring it static.”
-Matthew Dillon