f2fs: modify the number of issued pages to merge IOs
authorJaegeuk Kim <jaegeuk.kim@samsung.com>
Mon, 29 Apr 2013 07:58:39 +0000 (16:58 +0900)
committerJaegeuk Kim <jaegeuk.kim@samsung.com>
Tue, 30 Apr 2013 03:07:32 +0000 (12:07 +0900)
commitac5d156c78a68b39955ee9b09498ba93831c77d7
tree638245b8a39332d3bb2878c5a0a8574e518fcc37
parentb743ba78ae4c7c6a6e08e623af824b6208f58019
f2fs: modify the number of issued pages to merge IOs

When testing f2fs on an SSD, I found some 128 page IOs followed by 1 page IO
were issued by f2fs_write_node_pages.
This means that there were some mishandling flows which degrades performance.

Previous f2fs_write_node_pages determines the number of pages to be written,
nr_to_write, as follows.

1. The bio_get_nr_vecs returns 129 pages.
2. The bio_alloc makes a room for 128 pages.
3. The initial 128 pages go into one bio.
4. The existing bio is submitted, and a new bio is prepared for the last 1 page.
5. Finally, sync_node_pages submits the last 1 page bio.

The problem is from the use of bio_get_nr_vecs, so this patch replace it
with max_hw_blocks using queue_max_sectors.

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
fs/f2fs/node.c
fs/f2fs/segment.c
fs/f2fs/segment.h