Yan, Zheng
e30b5dca15
ext4: fix fio regression
...
We (Linux Kernel Performance project) found a regression introduced
by commit:
f7fec032aa ext4: track all extent status in extent status tree
The commit causes about 20% performance decrease in fio random write
test. Profiler shows that rb_next() uses a lot of CPU time. The call
stack is:
rb_next
ext4_es_find_delayed_extent
ext4_map_blocks
_ext4_get_block
ext4_get_block_write
__blockdev_direct_IO
ext4_direct_IO
generic_file_direct_write
__generic_file_aio_write
ext4_file_write
aio_rw_vect_retry
aio_run_iocb
do_io_submit
sys_io_submit
system_call_fastpath
io_submit
td_io_getevents
io_u_queued_complete
thread_main
main
__libc_start_main
The cause is that ext4_es_find_delayed_extent() doesn't have an
upper bound, it keeps searching until a delayed extent is found.
When there are a lots of non-delayed entries in the extent state
tree, ext4_es_find_delayed_extent() may uses a lot of CPU time.
Reported-by: LKP project <lkp@linux.intel.com >
Signed-off-by: Yan, Zheng <zheng.z.yan@intel.com >
Signed-off-by: Zheng Liu <wenqing.lz@taobao.com >
Cc: "Theodore Ts'o" <tytso@mit.edu >
2013-05-03 02:15:52 -04:00
..
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-29 11:13:25 -07:00
2012-12-20 22:34:00 +00:00
2013-03-03 19:36:31 -08:00
2013-03-21 17:59:22 -07:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-07 01:08:55 -08:00
2013-02-27 19:10:24 -08:00
2013-03-09 16:51:13 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-02-27 19:10:24 -08:00
2013-03-13 15:23:44 +01:00
2013-03-11 22:05:56 +01:00
2013-05-03 02:15:52 -04:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-12 18:55:21 -07:00
2013-02-27 19:10:24 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-13 15:47:50 -07:00
2013-03-11 07:09:48 -07:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-12 18:55:21 -07:00
2013-01-14 22:50:45 +01:00
2013-04-21 16:47:54 -04:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-02-28 18:02:55 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-26 14:23:45 -07:00
2013-02-13 06:15:14 -08:00
2013-03-22 16:55:15 -04:00
2013-03-03 19:36:31 -08:00
2013-02-27 19:10:24 -08:00
2013-03-03 19:36:31 -08:00
2013-03-07 01:08:55 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-28 13:43:46 -07:00
2013-02-21 09:38:18 -08:00
2013-03-03 19:36:31 -08:00
2013-03-03 19:36:31 -08:00
2013-03-11 22:05:56 +01:00
2013-02-26 20:16:07 -08:00
2013-03-11 22:05:57 +01:00
2013-03-03 19:36:31 -08:00
2013-03-11 07:09:48 -07:00
2013-03-28 15:52:14 -07:00
2013-03-12 18:55:21 -07:00
2013-03-03 19:36:31 -08:00
2013-03-11 07:09:48 -07:00
2013-03-03 19:36:31 -08:00
2013-03-19 15:17:40 -07:00
2013-02-27 19:10:24 -08:00
2013-02-26 02:46:11 -05:00
2012-11-20 04:17:24 -08:00
2012-12-17 17:15:12 -08:00
2013-02-22 23:31:31 -05:00
2013-02-26 20:16:07 -08:00
2013-03-03 12:06:09 -08:00
2012-12-17 17:15:23 -08:00
2013-02-22 23:31:31 -05:00
2013-03-03 19:36:31 -08:00
2012-12-20 17:40:19 -08:00
2012-11-28 21:53:38 -05:00
2013-01-14 15:00:36 +01:00
2013-02-28 12:52:24 -08:00
2013-04-20 19:58:37 -04:00
2012-10-22 08:50:37 +03:00
2012-10-06 03:05:17 +09:00
2013-02-22 23:31:31 -05:00
2013-03-12 11:05:45 -07:00
2013-02-27 19:10:11 -08:00
2012-10-06 03:05:15 +09:00
2013-03-26 18:25:57 -04:00
2013-02-22 23:31:36 -05:00
2012-12-17 17:15:27 -08:00
2013-01-02 09:16:43 -08:00
2013-02-27 19:10:11 -08:00
2013-02-22 23:31:31 -05:00
2012-12-20 14:04:11 -08:00
2013-03-01 19:48:30 -05:00
2013-02-19 08:42:45 +01:00
2013-03-03 19:36:31 -08:00
2013-03-01 23:51:07 -05:00
2013-02-28 13:21:44 -08:00
2013-02-27 19:10:24 -08:00
2013-03-21 13:11:11 -04:00
2013-02-22 23:31:31 -05:00
2013-01-17 13:08:45 +01:00
2012-10-06 03:05:15 +09:00
2012-12-20 18:46:29 -05:00
2013-02-22 23:31:31 -05:00
2012-12-11 13:43:42 +09:00
2012-11-20 04:19:49 -08:00
2013-03-08 09:03:07 -08:00
2013-03-27 07:50:08 -07:00
2013-03-03 13:23:03 -08:00
2013-03-12 08:29:17 -07:00
2013-03-27 07:50:05 -07:00
2013-03-27 07:50:05 -07:00
2013-03-27 09:24:02 -07:00
2012-10-02 21:35:55 -04:00
2013-02-22 23:31:31 -05:00
2013-02-07 20:51:08 +01:00
2013-03-03 13:23:03 -08:00
2012-12-17 17:15:27 -08:00
2013-03-21 13:11:11 -04:00
2013-02-26 02:46:08 -05:00
2012-12-20 18:50:07 -05:00
2013-02-27 19:10:24 -08:00
2013-02-22 23:31:31 -05:00
2013-03-02 09:35:13 -05:00
2012-12-20 18:50:08 -05:00
2012-10-12 13:16:48 -07:00
2012-12-20 18:50:11 -05:00