• David Sterba's avatar
    btrfs: report exact callsite where transaction abort occurs · 1a9a8a71
    David Sterba authored
    WARN is called from a single location and all bugreports say that's in
    super.c __btrfs_abort_transaction. This is slightly confusing as we'd
    rather want to know the exact callsite. Whereas this information is
    printed in the syslog below the stacktrace, this requires further look
    and we usually see only the headline from WARNING.
    
    Moving the WARN into the macro has to inline some code and increases
    code by a few kilobytes:
    
      text    data     bss     dec     hex filename
    835481   20305   14120  869906   d4612 btrfs.ko.before
    842883   20305   14120  877308   d62fc btrfs.ko.after
    
    The delta is +7k (130+ calls), measured on 3.19 x86_64, distro config.
    The increase is not small and could lead to worse icache use. The code
    is on error/exit paths that can be recognized by compiler as cold and
    moved out of the way so the impact is speculated to be low, if
    measurable at all.
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.cz>
    Signed-off-by: default avatarChris Mason <clm@fb.com>
    1a9a8a71
super.c 56.7 KB