Re: [PATCH 07/14] block: change plugging to use a singly linked list
From: Jens Axboe <axboe@kernel.dk>
Date: 2021-10-18 14:10:32
From: Jens Axboe <axboe@kernel.dk>
Date: 2021-10-18 14:10:32
On 10/18/21 6:56 AM, Pavel Begunkov wrote:
On 10/17/21 01:37, Jens Axboe wrote:quoted
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.block/blk-merge.c: In function ‘blk_attempt_plug_merge’: block/blk-merge.c:1094:22: error: implicit declaration of function ‘rq_list_empty’; did you mean ‘bio_list_empty’? [-Werror=implicit-function-declaration] 1094 | if (!plug || rq_list_empty(plug->mq_list)) Also in blk-mq.c and others, and I don't see it defined anywhere. Used just fetched for-5.16/block. Did I miss it somewhere?
I forgot to include this prep patch: https://git.kernel.dk/cgit/linux-block/commit/?h=perf-wip&id=b3ca14988ce2eb125a8a80c3ee146f3ad55cfcf4 -- Jens Axboe