On 25/10/2015 14:57, Peter Maydell wrote: > > Opinions? I would like to have this in 2.5 if there is agreement. > > Have you done any performance testing to check that we don't have > previously-nopped-out tracepoints in hot paths that now result in > real code being generated?
There definitely are tracepoints in hot paths, depending on what your workload here. Each I/O operation should trigger up to 3 tracepoints in the block layer if I counted them right (thread_pool_submit, thread_pool_complete, bdrv_aio_*), plus possibly some SCSI and virtqueue tracepoints. I haven't checked whether their cost (e.g. in terms of cache misses) has an impact on performance. The obvious first optimization would be to optimize the case of no tracepoints enabled at all, changing each if (tracepoint_enabled[index]) to "unlikely(tracepoint_enabled_any) && tracepoint_enabled[index]". All other patches of course are independent. I put 8 and 9 last because they are a bit more controversial. Paolo