[PATCHSET v2 0/4] struct request optimizations

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



With the latest patchset from Tejun, we grew the request structure
a little bit. It's been quite a while since I've taken a look at
the layout of the structure, this patchset is a first attempt at
doing that.

One advantage of Tejun's patchset is that we no longer rely on
the atomic complete flag on blk-mq. We can use that to shuffle
some bits, and reclaim the full atomic_flags field.

Cache optimize the layout of struct request a bit, to group
things a little more logically. Not a huge shuffle, just a few
select members.

We end up doing better in synthetic testing after this, details
in the last patch.

Testing with timeouts on blk-mq and the legacy path work fine,
no regressions introduced.

Changes since v1:
- Add comment on blk_rq_set_deadline() clearing COMPLETE bit.
  Decided to keep it like that after discussing with Omar,
  as it doesn't false convey safety wrt completions atomicity.
- Rearrange a tiny bit more, and move CGROUP stuff to the end
  so that enabling that doesn't screw everything up. Also
  move hole near INTEGRITY, so that if that does get enabled,
  we simply fill the hole.
- Improve layout in mq rq filling.




[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux