• Mikulas Patocka's avatar
    dm bufio: store stacktrace in buffers to help find buffer leaks · 86bad0c7
    Mikulas Patocka authored
    The option DM_DEBUG_BLOCK_STACK_TRACING is moved from persistent-data
    directory to device mapper directory because it will now be used by
    persistent-data and bufio.  When the option is enabled, each bufio buffer
    stores the stacktrace of the last dm_bufio_get(), dm_bufio_read() or
    dm_bufio_new() call that increased the hold count to 1.  The buffer's
    stacktrace is printed if the buffer was not released before the bufio
    client is destroyed.
    
    When DM_DEBUG_BLOCK_STACK_TRACING is enabled, any bufio buffer leaks are
    considered warnings - i.e. the kernel continues afterwards.  If not
    enabled, buffer leaks are considered BUGs and the kernel with crash.
    Reasoning on this disposition is: if we only ever warned on buffer leaks
    users would generally ignore them and the problematic code would never
    get fixed.
    
    Successfully used to find source of bufio leaks fixed with commit
    fce079f63c3 ("dm btree: fix bufio buffer leaks in dm_btree_del() error
    path").
    Signed-off-by: default avatarMikulas Patocka <mpatocka@redhat.com>
    Signed-off-by: default avatarMike Snitzer <snitzer@redhat.com>
    86bad0c7
Kconfig 16.4 KB