If we want to trace in a distributed environment, as well as have a global context in our script, we can not check the providers that have been created on other machines(be that virtual or remote) in the same way that dtrace_unregister() does now. As of now, dtrace_unregister() simply compares the memory address and finds the provider accordingly.
One could argue that a name of the provider might be sufficient, however, a counterexample of this is the syscall provider. In FreeBSD, once installed with lib32, there are two syscall providers. This can be verified by printf-ing a provider name every time a new one is created.
We could add a UUID in the dtrace_provider structure, which would allow us an extensible way to identify providers on different machines.
If we want to trace in a distributed environment, as well as have a global context in our script, we can not check the providers that have been created on other machines(be that virtual or remote) in the same way that
dtrace_unregister()
does now. As of now,dtrace_unregister()
simply compares the memory address and finds the provider accordingly.One could argue that a name of the provider might be sufficient, however, a counterexample of this is the
syscall
provider. In FreeBSD, once installed with lib32, there are twosyscall
providers. This can be verified byprintf
-ing a provider name every time a new one is created.We could add a UUID in the
dtrace_provider
structure, which would allow us an extensible way to identify providers on different machines.