lkml.org 
[lkml]   [2011]   [Aug]   [4]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: fio posixaio performance problem
On Thu, Aug 04, 2011 at 03:44:55PM +0800, Gui Jianfeng wrote:

[..]
> > oh, not related per your blktrace. so we have two problems here:
> > 1. fio doesn't dispatch request in 8ms.
> > 2. no close request preempt.
>
> Yes, these're actual factors why performance is so bad.
>
> > both looks quite wield. can you post a longer blktrace output, like
> > for one second? the piece is too short.
>
> Attached.

Gui, few observations from you log file.

- preemption happened 1631 times and did not happen 527 times and idle
timer fired.

- In some cases where preemption did not happen, next request seems to
be too far away (more than CFQQ_CLOSE_THR=8K sectors).

- I noticed couple of cases where next request was with-in 8K distanace
still preemption did not happen. This makes me curious. Can you please
put some trace messages in should_preempt() and rq_close() call and see
what's going on?

For example, following trace shows that next request is 5176 sector behind
the previous one completed. I am wondering why did preemption not take
place.

8,0 0 606 2.751892651 16420 D W 512146800 + 8 [fio]
8,0 2 579 2.752127950 0 C W 512146800 + 8 [0]

8,0 0 609 2.752235995 16421 Q WS 512141624 + 8 [fio]
8,0 0 610 2.752238859 16421 G WS 512141624 + 8 [fio]
8,0 0 612 2.752243818 16421 I W 512141624 + 8 [fio]
8,0 0 0 2.752246262 0 m N cfq16421S / insert_request
8,0 0 0 2.752247729 0 m N cfq16421S / add_to_rr
8,0 2 0 2.759710295 0 m N cfq idle timer fired

Putting some extra trace messages in CFQ might help here. BTW, which
kernel version are you using? 3.0?

Thanks
Vivek


\
 
 \ /
  Last update: 2011-08-04 16:15    [W:0.355 / U:0.228 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site