Re: [PATCH Linux 2.6.12-rc4-mm2 00/03] cfq: various fixes

From: Jens Axboe
Date: Wed May 25 2005 - 02:35:47 EST


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@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/