blk-mq: improve layout of blk_mq_hw_ctx
authorJens Axboe <axboe@fb.com>
Thu, 25 Aug 2016 14:00:28 +0000 (08:00 -0600)
committerJens Axboe <axboe@fb.com>
Mon, 29 Aug 2016 14:13:21 +0000 (08:13 -0600)
commit8d354f133e86dd03ea7885a91df398c55ff699ff
tree11049556188d8274f98553f924fda66f0754621e
parent27489a3c827b7eebba26eda0320bb0f100bef167
blk-mq: improve layout of blk_mq_hw_ctx

Various cache line optimizations:

- Move delay_work towards the end. It's huge, and we don't use it
  a lot (only SCSI).

- Move the atomic state into the same cacheline as the the dispatch
  list and lock.

- Rearrange a few members to pack it better.

- Shrink the max-order for dispatch accounting from 10 to 7. This
  means that ->dispatched[] and ->run now take up their own
  cacheline.

This shrinks struct blk_mq_hw_ctx down to 8 cachelines.

Signed-off-by: Jens Axboe <axboe@fb.com>
include/linux/blk-mq.h