Re: [PATCH] block: strip out locking optimization in put_io_context()

From: Jens Axboe
Date: Tue Feb 07 2012 - 01:50:35 EST


On 02/06/2012 10:54 PM, Tejun Heo wrote:
> put_io_context() performed a complex trylock dancing to avoid
> deferring ioc release to workqueue. It was also broken on UP because
> trylock was always assumed to succeed which resulted in unbalanced
> preemption count.
>
> While there are ways to fix the UP breakage, even the most
> pathological microbench (forced ioc allocation and tight fork/exit
> loop) fails to show any appreciable performance benefit of the
> optimization. Strip it out. If there turns out to be workloads which
> are affected by this change, simpler optimization from the discussion
> thread can be applied later.
>
> Signed-off-by: Tejun Heo <tj@xxxxxxxxxx>
> LKML-Reference: <1328514611.21268.66.camel@sli10-conroe>
> ---
> I couldn't find any statiscally meaningful advantage of the
> optimization with tight fork/exit tests w/ forced ioc creation on
> fork, which gotta be the most pathological test case for the code
> path. So, let's remove the ugly optimization. If I missed sth, we
> can resurrect the simpler optimization later. Jens, this is on top of
> linus#master without Shaohua's patch.

OK, then I'm fine with cleaning it up. Applied, thanks Tejun.

--
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/