static void __add_trace(struct io *iop) { time_t now = time(NULL); n_traces++; iostat_check_time(iop->t.time); if (verbose && ((now - last_vtrace) > 0)) { printf("%10lu t (%6.2lf%%)\r", n_traces, pct_done()); if ((n_traces % 1000000) == 0) printf("\n"); fflush(stdout); last_vtrace = now; } switch (iop->t.action & 0xffff) { case __BLK_TA_QUEUE: trace_queue(iop); break; case __BLK_TA_REMAP: trace_remap(iop); break; case __BLK_TA_INSERT: trace_insert(iop); break; case __BLK_TA_GETRQ: trace_getrq(iop); break; case __BLK_TA_BACKMERGE: trace_merge(iop); break; case __BLK_TA_FRONTMERGE: trace_merge(iop); break; case __BLK_TA_REQUEUE: trace_requeue(iop); break; case __BLK_TA_ISSUE: trace_issue(iop); break; case __BLK_TA_COMPLETE: trace_complete(iop); break; case __BLK_TA_PLUG: trace_plug(iop); break; case __BLK_TA_UNPLUG_IO: trace_unplug_io(iop); break; case __BLK_TA_UNPLUG_TIMER: trace_unplug_timer(iop); break; case __BLK_TA_SLEEPRQ: trace_sleeprq(iop); break; default: io_release(iop); return; } }
void install_malloc_tracer() { tracer.start = malloc_trace_start; tracer.stop = malloc_trace_stop; tracer.reset = malloc_trace_reset; tracer.dump = malloc_trace_dump; tracer.id = "memory"; trace_insert(&tracer); }
void install_mysql_tracer() { tracer.start = mysql_trace_start; tracer.stop = mysql_trace_stop; tracer.reset = mysql_trace_reset; tracer.dump = mysql_trace_dump; tracer.id = "mysql"; trace_insert(&tracer); }