• Marko Mäkelä's avatar
    Bug#58226 Some InnoDB debug checks consume too much CPU time · d6bac7db
    Marko Mäkelä authored
    Do not disable InnoDB inlining when UNIV_DEBUG is defined. The
    inlining is now solely controlled by the preprocessor symbol
    UNIV_MUST_NOT_INLINE and by any compiler options.
    
    mtr_memo_contains(): Add an explicit type conversion from void*, so
    that the function can be compiled by a C++ compiler. Previously, this
    function was never seen by the C++ compiler, because it is only
    present in UNIV_DEBUG builds and InnoDB inlining used to be disabled.
    
    buf_flush_validate_skip(): A wrapper that skips most calls of
    buf_flush_validate_low(). Invoked by debug assertions in
    buf_flush_insert_into_flush_list() and buf_flush_remove().
    
    fil_validate_skip(): A wrapper that skips most calls of
    fil_validate(). Invoked by debug assertions in fil_io() and fil_io_wait().
    
    os_aio_validate_skip(): A wrapper that skips most calls of
    os_aio_validate(). Invoked by debug assertions in
    os_aio_func(), os_aio_windows_handle() and os_aio_simulated_handle.
    
    os_get_os_version(): Only include this function if __WIN__ is defined.
    
    sync_array_deadlock_step(): Slight optimizations. This function is a
    major CPU consumer in UNIV_SYNC_DEBUG builds.
    d6bac7db
mtr0mtr.ic 6.42 KB