On Thu, Jan 21, 2021 at 01:50:20PM +0100, Gerd Hoffmann wrote: > First version that actually works. Only qxl covered for this RfC, > other modules will follow once the basics are hashed out. > > v3: > - handle initialization of modular tracepoints. Cool, this looks promising! > TODO: > Enabling modular tracepoints via -trace cmd line doesn't work yet. > Guess we need to store the list somewhere for later re-processing. > Error handling is tricky, specifically the "tracepoint doesn't exist" > error. Suggestions / ideas are welcome. Two ideas: Global trace event name list ---------------------------- Build *some* global information about all trace events, including modules, into the main QEMU binary. For example, generate an array of all trace event names so QEMU can always print an error if a non-existent trace event name is used. (This is similar to the trace-events-all file, which is a global list of all trace events.) Module name prefixes -------------------- Allow an optional module/group prefix like qxl:my_trace_event. When the user says: --trace qxl:my_trace_event QEMU knows that this trace event belongs to the "qxl" module/group. It will not attempt to load it until the qxl module registers itself. If "my_trace_event" doesn't exist in the qxl module: 1. If the qxl module is not loaded we don't hit an error. Nevermind. 2. When the qxl module is loaded pending events are resolved and an error is printed.