aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorfaux123 <reioux@gmail.com>2012-02-16 23:27:31 -0800
committerZiyan <jaraidaniel@gmail.com>2016-01-08 10:42:53 +0100
commit790f669ea755f6a7b48867d939893cd6d8e4407d (patch)
tree67d7342786c561c57155010240a6228c45161d96 /fs
parent2cd78510d13e43bd8be8115b84344161c64ddc20 (diff)
downloadkernel_samsung_tuna-790f669ea755f6a7b48867d939893cd6d8e4407d.zip
kernel_samsung_tuna-790f669ea755f6a7b48867d939893cd6d8e4407d.tar.gz
kernel_samsung_tuna-790f669ea755f6a7b48867d939893cd6d8e4407d.tar.bz2
block: strip out locking optimization in put_io_context()
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@kernel.org> LKML-Reference: <1328514611.21268.66.camel@sli10-conroe> Signed-off-by: Jens Axboe <axboe@kernel.dk> modified by faux123
Diffstat (limited to 'fs')
-rw-r--r--fs/ioprio.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/ioprio.c b/fs/ioprio.c
index 10b88d3..f8d8429 100644
--- a/fs/ioprio.c
+++ b/fs/ioprio.c
@@ -50,7 +50,7 @@ int set_task_ioprio(struct task_struct *task, int ioprio)
ioc = get_task_io_context(task, GFP_ATOMIC, NUMA_NO_NODE);
if (ioc) {
ioc_ioprio_changed(ioc, ioprio);
- put_io_context(ioc, NULL);
+ put_io_context(ioc);
}
return err;