Re: Overview of concurrency managed workqueue

From: Daniel Walker
Date: Fri Jun 18 2010 - 13:29:40 EST


On Fri, 2010-06-18 at 10:03 +0200, Tejun Heo wrote:

> > I share Daniel's concerns here. Being able to set a worker thread's
> > priority or policy isn't a crazy thing.
>
> Well, priority itself isn't but doing that from userland is and most
> of the conversation was about cmwq taking away the ability to do that
> from userland.

I did a little test of this on v2.6.31 with my laptop.

I used this test along with "fio" ,

[random-read]
rw=randread
size=128m
directory=/tmp/

and I got these results,

clat (usec): min=196, max=185962, avg=11820.81, stdev=5961.96
bw (KB/s) : min= 67, max= 665, per=100.20%, avg=337.68, stdev=36.55

then I raise the priority of kblockd to FIFO priority 50 with the
following results,

clat (usec): min=198, max=118528, avg=11749.48, stdev=5280.79
bw (KB/s) : min= 184, max= 696, per=100.20%, avg=339.66, stdev=32.98

We ended up with a %36 max latency reduction, a slight increase in the
min latency (~%2) and a slight decrease in the average latency. The
latency became more deterministic ..

Now for the bandwidth we have a ~%5 maximum bandwidth increase, a huge
increase in minimum bandwidth (%174 am I calculating that right?), and a
slight increase in the average (%0.5) ..

These results are just one off, so please re-test and check up on me.
I'm not very familiar with "fio" or kblockd in general.

However, these results seem far from crazy to me .. In fact I think
people who really care about this sort of stuff might want to look into
this type of tuning .. You get more deterministic latency, and you get
slightly better performance in the average but way better performance in
the corner cases.

Daniel

--
Sent by a consultant of the Qualcomm Innovation Center, Inc.
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum.

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