mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-07-23 07:12:09 +00:00
block: change plugging to use a singly linked list
Use a singly linked list for the blk_plug. This saves 8 bytes in the blk_plug struct, and makes for faster list manipulations than doubly linked lists. As we don't use the doubly linked lists for anything, singly linked is just fine. This yields a bump in default (merging enabled) performance from 7.0 to 7.1M IOPS, and ~7.5M IOPS with merging disabled. Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
480d42dc00
commit
bc490f8173
4 changed files with 50 additions and 41 deletions
|
@ -728,7 +728,7 @@ extern void blk_set_queue_dying(struct request_queue *);
|
|||
* schedule() where blk_schedule_flush_plug() is called.
|
||||
*/
|
||||
struct blk_plug {
|
||||
struct list_head mq_list; /* blk-mq requests */
|
||||
struct request *mq_list; /* blk-mq requests */
|
||||
|
||||
/* if ios_left is > 1, we can batch tag/rq allocations */
|
||||
struct request *cached_rq;
|
||||
|
@ -777,8 +777,7 @@ static inline bool blk_needs_flush_plug(struct task_struct *tsk)
|
|||
struct blk_plug *plug = tsk->plug;
|
||||
|
||||
return plug &&
|
||||
(!list_empty(&plug->mq_list) ||
|
||||
!list_empty(&plug->cb_list));
|
||||
(plug->mq_list || !list_empty(&plug->cb_list));
|
||||
}
|
||||
|
||||
int blkdev_issue_flush(struct block_device *bdev);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue