Messages in this thread | | | Date | Wed, 25 May 2005 09:34:31 +0200 | From | Jens Axboe <> | Subject | Re: [PATCH Linux 2.6.12-rc4-mm2 00/03] cfq: various fixes |
| |
On Wed, May 25 2005, Tejun Heo wrote: > Hello, Jens. > > This patchset is various fixes to cfq. All patches are against > 2.6.12-rc4-mm2. > > One thing that isn't fixed in this patchset but I think might be > problematic is the priority of async queue. It seems that the async > queue doesn't receive any special attention regarding its priority. > It just follows normal rules and its priority jumps irregularly. > If I'm missing something, plz point out. > > [ Start of patch descriptions ] > > 01_cfq_INSERT_BACK_fix.patch > : cfq ELEVATOR_INSERT_BACK fix > > When inserting INSERT_BACK request, cfq_insert_request() calls > cfq_dispatch_requests() repetitively until it returns zero > indicating no request is dispatched. This used to flush all > the requests in the queue to the dispatch queue but, with idle > slice implemented, the current active queue may decide to wait > for new request using slice_timer. When this happens, 0 is > returned from cfq_dispatch_requests() even when other cfqq's > have pending requests. This breaks INSRET_BACK semantics. > > This patch adds @force argument which, when set to non-zero, > disables idle_slice, and uses the argument when flushing > cfqq's for INSERT_BACK. While at it, use INT_MAX instead of > cfq_quantum when flushing cfqq's, as we're gonna dump all the > requests and using cfq_quantum does nothing but adding > unnecessary iterations. > > 02_cfq_ioc_leak_fix.patch > : cfq_io_context leak fix > > When a process has more than one cic's associated with it, > only the first one was kmem_cache_free'd in the original code. > This patch frees all cic's in cfq_free_io_context(). > > While at it, remove unnecessary refcounting from cic's to ioc. > This reference is created when each cic is created and removed > altogether when the ioc is exited, and, thus, serves no > purpose. > > 03_cfq_remove_unused_fields.patch > : remove serveral unused fields from cfq data structures > > cfq_data->idle_start, cfq_data->end_prio and cfq_rq->end_pos > are not used in meaningful way. Remove'em.
All three patches look good, thanks!
-- Jens Axboe
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |