Christoph Hellwig d7b9416fe5 btrfs: remove btrfs_end_io_wq
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: Qu Wenruo <wqu@suse.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: David Sterba <dsterba@suse.com>
2022-07-25 17:45:33 +02:00
..
2022-07-25 17:45:33 +02:00
2022-07-25 17:45:33 +02:00
2021-06-22 14:11:57 +02:00
2022-07-25 17:45:33 +02:00
2022-07-25 17:45:33 +02:00
2022-07-25 17:45:33 +02:00
2022-05-24 19:55:07 -07:00
2022-07-16 13:48:55 -07:00
2022-06-26 10:11:36 -07:00
2022-05-24 19:55:07 -07:00
2022-07-25 17:45:33 +02:00
2022-07-25 17:44:33 +02:00
2022-05-24 19:55:07 -07:00
2022-07-25 17:44:33 +02:00
2022-07-25 17:45:33 +02:00
2022-07-25 17:44:33 +02:00
2022-07-25 17:45:33 +02:00
2022-07-25 17:45:33 +02:00