On Thu, Jan 15 2009, Hugh Dickins wrote: > On Thu, 15 Jan 2009, James Bottomley wrote: > > > > OK, so they could be calculated on the fly in the elevators, I suppose. > > But what would the value be? Right now we use the nonrotational flag to > > basically not bother with plugging (no point if no seek penalty) on > > certain events where we'd previously have waited for other I/O to join. > > But that's really a seek penalty parameter rather than the idea of read > > or write costing (although the elevators usually track these dynamically > > anyway ... as part of the latency calculations but not explicitly). > > ... not bother with plugging (no point if no seek penalty) ... > > I thought there was considerable advantage to plugging writes > (in case they turn out to be adjacent) on current and older > generations of non-rotational storage? Don't confuse plugging and merging, although one does help the other. We can essentially divide the current SSD market into two categories - queuing and non-queuing. Which also happens to just about the same as saying Intel and non-Intel, at least that has been the case since Sep '08 and until present time. On the queuing devices, plugging does more harm than good. The IO access time is so fast, that delaying for merging hurts your performance. For non-queuing devices, I think our current check is a bit too drastic. We probably want to change that to int dont_plug(q) { return blk_queue_nonrot(q) && blk_queue_tagged(q); } Which is identical to what CFQ tests for idling to avoid read/write overlaps which also completely kills performance on the current SSD drives (except for Intel, which again shines). -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html