• Christoph Hellwig's avatar
    btrfs: remove btrfs_end_io_wq · d7b9416f
    Christoph Hellwig authored
    All reads bio that go through btrfs_map_bio need to be completed in
    user context.  And read I/Os are the most common and timing critical
    in almost any file system workloads.
    
    Embed a work_struct into struct btrfs_bio and use it to complete all
    read bios submitted through btrfs_map, using the REQ_META flag to decide
    which workqueue they are placed on.
    
    This removes the need for a separate 128 byte allocation (typically
    rounded up to 192 bytes by slab) for all reads with a size increase
    of 24 bytes for struct btrfs_bio.  Future patches will reorganize
    struct btrfs_bio to make use of this extra space for writes as well.
    
    (All sizes are based a on typical 64-bit non-debug build)
    Reviewed-by: default avatarQu Wenruo <wqu@suse.com>
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    d7b9416f
super.c 74.6 KB