On 1/16/24 9:54 AM, Jens Axboe wrote: > We currently use a doubly linked list, which means the head takes up > 16 bytes. As any iteration goes over the full list by first splicing it > to an on-stack copy, we never need to remove members from the middle of > the list. > > Convert it to an hlist instead, saving 8 bytes in the blk_plug structure. > This also helps save 40 bytes of text in the core block code, tested on > arm64. Gah, looks like I forgot to refresh before committing this one, it just needs a one-liner for raid: diff --git a/drivers/md/raid1-10.c b/drivers/md/raid1-10.c index 512746551f36..4a1b6f17067f 100644 --- a/drivers/md/raid1-10.c +++ b/drivers/md/raid1-10.c @@ -152,7 +152,7 @@ static inline bool raid1_add_bio_to_plug(struct mddev *mddev, struct bio *bio, plug = container_of(cb, struct raid1_plug_cb, cb); bio_list_add(&plug->pending, bio); if (++plug->count / MAX_PLUG_BIO >= copies) { - list_del(&cb->list); + hlist_del(&cb->list); cb->callback(cb, false); } -- Jens Axboe