Commit 0864fe09 authored by Jens Axboe's avatar Jens Axboe

null_blk: unalign call_single_data

Commit 966a9671 randomly added alignment to this structure, but
it's actually detrimental to performance of null_blk. Test case:

Running on both the home and remote node shows a ~5% degradation
in performance.

While in there, move blk_status_t to the hole after the integer tag
in the nullb_cmd structure. After this patch, we shrink the size
from 192 to 152 bytes.

Fixes: 966a9671 ("smp: Avoid using two cache lines for struct call_single_data")
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 4ccafe03
...@@ -35,13 +35,13 @@ static inline u64 mb_per_tick(int mbps) ...@@ -35,13 +35,13 @@ static inline u64 mb_per_tick(int mbps)
struct nullb_cmd { struct nullb_cmd {
struct list_head list; struct list_head list;
struct llist_node ll_list; struct llist_node ll_list;
call_single_data_t csd; struct __call_single_data csd;
struct request *rq; struct request *rq;
struct bio *bio; struct bio *bio;
unsigned int tag; unsigned int tag;
blk_status_t error;
struct nullb_queue *nq; struct nullb_queue *nq;
struct hrtimer timer; struct hrtimer timer;
blk_status_t error;
}; };
struct nullb_queue { struct nullb_queue {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment