-
Marc Alff authored
When a stage instrument is disabled, PFS_stage_class::m_enabled is false. The code in pfs.cc, start_stage_v1(), however, still assigned a value to pfs->m_class, indicating that there is a current stage instrumented, even for disabled stages. This confused the stage instrumentation which in fact continued to collect data for stages, even when it is supposed to be disabled. Doing so produces runtime overhead and affect performances. The fix is to maintain properly pfs->m_class in start_stage_v1(), and in particular: - when a stage is complete, mark it as such with a NULL - when a new stage starts, only mark it as instrumented after the test for new_klass->m_enabled. Added a functional test start_server_disable_stages. Added similar tests for code coverage, for other types of instrumentation.
Marc Alff authoredWhen a stage instrument is disabled, PFS_stage_class::m_enabled is false. The code in pfs.cc, start_stage_v1(), however, still assigned a value to pfs->m_class, indicating that there is a current stage instrumented, even for disabled stages. This confused the stage instrumentation which in fact continued to collect data for stages, even when it is supposed to be disabled. Doing so produces runtime overhead and affect performances. The fix is to maintain properly pfs->m_class in start_stage_v1(), and in particular: - when a stage is complete, mark it as such with a NULL - when a new stage starts, only mark it as instrumented after the test for new_klass->m_enabled. Added a functional test start_server_disable_stages. Added similar tests for code coverage, for other types of instrumentation.
Loading