Markus Stockhausen
dc30b96ab6
readahead: stricter check for bdi io_pages
...
ondemand_readahead() checks bdi->io_pages to cap the maximum pages
that need to be processed. This works until the readit section. If
we would do an async only readahead (async size = sync size) and
target is at beginning of window we expand the pages by another
get_next_ra_size() pages. Btrace for large reads shows that kernel
always issues a doubled size read at the beginning of processing.
Add an additional check for io_pages in the lower part of the func.
The fix helps devices that hard limit bio pages and rely on proper
handling of max_hw_read_sectors (e.g. older FusionIO cards). For
that reason it could qualify for stable.
Fixes: 9491ae4a ("mm: don't cap request size based on read-ahead setting")
Cc: stable@vger.kernel.org
Signed-off-by: Markus Stockhausen stockhausen@collogia.de
Signed-off-by: Jens Axboe <axboe@kernel.dk >
2018-07-27 09:09:53 -06:00
..
2018-07-03 17:32:19 -07:00
2018-06-22 12:08:07 -06:00
2017-11-14 23:57:38 +02:00
2018-02-06 18:32:48 -08:00
2018-06-15 07:55:25 +09:00
2018-06-15 07:55:25 +09:00
2018-05-24 10:07:50 -07:00
2017-11-02 11:10:55 +01:00
2018-06-15 07:55:25 +09:00
2017-11-02 11:10:55 +01:00
2018-07-03 17:32:19 -07:00
2018-06-15 07:55:25 +09:00
2017-12-11 14:54:44 +01:00
2018-04-02 20:16:10 +02:00
2018-06-15 07:55:25 +09:00
2018-06-07 17:34:36 -07:00
2017-12-14 16:00:48 -08:00
2018-06-15 07:55:25 +09:00
2018-06-12 16:19:22 -07:00
2018-06-08 17:21:52 -07:00
2017-11-02 11:10:55 +01:00
2018-05-22 06:59:39 -07:00
2018-07-09 09:07:54 -06:00
2018-06-07 17:34:35 -07:00
2018-07-03 17:32:19 -07:00
2018-01-23 12:17:42 -06:00
2018-06-07 17:34:34 -07:00
2018-06-05 13:24:20 -07:00
2018-01-31 17:18:37 -08:00
2018-06-08 17:21:52 -07:00
2017-11-15 18:21:05 -08:00
2018-04-11 10:28:39 -07:00
2016-03-17 15:09:34 -07:00
2018-04-05 21:36:27 -07:00
2018-06-15 07:55:23 +09:00
2018-04-05 21:36:27 -07:00
2018-02-06 18:32:48 -08:00
2018-01-23 12:17:42 -06:00
2018-06-07 17:34:35 -07:00
2018-06-19 07:43:44 +09:00
2018-07-09 09:07:54 -06:00
2018-06-07 17:34:35 -07:00
2018-06-07 17:34:36 -07:00
2018-04-11 10:28:32 -07:00
2018-07-09 09:07:54 -06:00
2018-04-11 10:28:32 -07:00
2018-05-14 13:14:23 -06:00
2017-11-02 11:10:55 +01:00
2018-05-11 17:28:45 -07:00
2017-11-02 11:10:55 +01:00
2018-02-21 15:35:42 -08:00
2016-03-17 15:09:34 -07:00
2018-06-07 17:34:36 -07:00
2017-03-02 08:42:38 +01:00
2018-01-31 17:18:38 -08:00
2017-11-02 11:10:55 +01:00
2018-04-11 10:28:31 -07:00
2018-06-15 07:55:24 +09:00
2017-11-02 11:10:55 +01:00
2017-11-02 11:10:55 +01:00
2018-06-07 17:34:36 -07:00
2018-06-15 07:55:25 +09:00
2018-06-15 07:55:25 +09:00
2018-06-07 17:34:36 -07:00
2018-01-31 17:18:39 -08:00
2018-06-15 07:55:25 +09:00
2018-07-09 09:07:54 -06:00
2018-04-11 10:28:32 -07:00
2018-06-15 07:55:25 +09:00
2018-04-05 21:36:26 -07:00
2018-01-22 12:15:57 -08:00
2018-04-20 17:18:35 -07:00
2018-04-05 21:36:27 -07:00
2017-11-02 11:10:55 +01:00
2018-02-18 05:33:01 -08:00
2018-06-12 16:19:22 -07:00
2018-02-18 05:33:01 -08:00
2018-04-02 20:20:12 -07:00
2018-01-31 17:18:38 -08:00
2018-02-06 18:32:48 -08:00
2017-11-02 11:10:55 +01:00
2018-07-27 09:09:53 -06:00
2018-04-27 17:13:20 -06:00
2017-10-03 17:54:24 -07:00
2018-07-09 09:07:54 -06:00
2018-06-28 11:16:44 -07:00
2018-06-12 16:19:22 -07:00
2018-04-05 21:36:24 -07:00
2018-06-07 17:34:34 -07:00
2018-06-28 11:16:44 -07:00
2018-01-08 11:46:23 -08:00
2018-06-07 17:34:35 -07:00
2017-11-02 11:10:55 +01:00
2018-06-12 16:19:22 -07:00
2018-06-12 16:19:22 -07:00
2018-05-22 06:59:39 -07:00
2018-07-09 09:07:54 -06:00
2018-04-11 10:28:39 -07:00
2018-01-15 12:07:48 -08:00
2018-06-07 17:34:38 -07:00
2018-06-07 17:34:38 -07:00
2017-11-02 11:10:55 +01:00
2018-06-15 07:55:25 +09:00
2018-06-07 17:34:36 -07:00
2018-06-07 17:34:36 -07:00
2018-06-28 11:16:44 -07:00
2018-04-11 10:28:39 -07:00
2018-05-11 17:28:45 -07:00
2018-02-06 18:32:48 -08:00
2018-02-21 15:35:43 -08:00
2018-06-15 07:55:25 +09:00
2018-06-15 07:55:25 +09:00