Messages in this thread | | | Date | Thu, 3 Feb 2011 10:28:23 +0100 | From | Tejun Heo <> | Subject | Re: [PATCH v3 1/2] block: skip elevator data initialization for flush requests |
| |
Hello,
On Wed, Feb 02, 2011 at 05:55:49PM -0500, Mike Snitzer wrote: > @@ -808,9 +808,14 @@ static struct request *get_request(struc > rl->count[is_sync]++; > rl->starved[is_sync] = 0; > > - priv = !test_bit(QUEUE_FLAG_ELVSWITCH, &q->queue_flags); > - if (priv) > - rl->elvpriv++; > + /* > + * Only initialize elevator data if REQ_SORTED is set. > + */ > + if (rw_flags & REQ_SORTED) { > + priv = !test_bit(QUEUE_FLAG_ELVSWITCH, &q->queue_flags); > + if (priv) > + rl->elvpriv++; > + }
This isn't enough. Now the allocated requests would have REQ_SORTED set before going into elevator. You probably want to filter out REQ_SORTED to elv_may_queue() too.
Also, it would be great if you update the comment on top of get_request() to explain what @rw_flags does.
Thank you.
-- tejun
| |