Messages in this thread | | | Date | Wed, 1 Jan 2014 12:57:18 +0800 | Subject | Re: [PATCH v1 1/5] block: blk-mq: avoid initializing request during its completion | From | Ming Lei <> |
| |
Hi Jens,
On Wed, Jan 1, 2014 at 12:38 AM, Jens Axboe <axboe@kernel.dk> wrote: > On Thu, Dec 26 2013, Ming Lei wrote: >> One problem is that request->start_time/start_time_ns could be >> set as wrong. >> >> Also it is normal to intialize one data structure just after its >> allocation. >> >> So move the initialization out of its completion path. > > It's done that way because of presumed cache hotness on completion, > since we just touched a lot of the members. Lets just fix the start time > issue by itself.
But some members of request are already touched in allocation path(blk-mq core) too, and lots of members will be touched by driver for starting the transfer.
Also I didn't observe obvious effect on L1 dcache load/store miss rate after applying the patch when reading/writing on null_blk device.
Considered the theoretic advantage of reinitializing in free path, I will just fix the start time issue by itself.
Thanks, -- Ming Lei
| |