First  |  Prev |  Next  |  Last
Pages: 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417
[PATCHv6 10/15] writeback: move bdi threads exiting logic to the forker thread
From: Artem Bityutskiy <Artem.Bityutskiy(a)> Currently, bdi threads can decide to exit if there were no useful activities for 5 minutes. However, this causes nasty races: we can easily oops in the 'bdi_queue_work()' if the bdi thread decides to exit while we are waking it up. And even if we do not oops, ... 25 Jul 2010 08:39
[PATCHv6 07/15] writeback: do not remove bdi from bdi_list
From: Artem Bityutskiy <Artem.Bityutskiy(a)> The forker thread removes bdis from 'bdi_list' before forking the bdi thread. But this is wrong for at least 2 reasons. Reason #1: if we temporary remove a bdi from the list, we may miss works which would otherwise be given to us. Reason #2: this... 25 Jul 2010 08:39
[PATCHv6 15/15] writeback: cleanup bdi_register
From: Artem Bityutskiy <Artem.Bityutskiy(a)> This patch makes sure we first initialize everything and set the BDI_registered flag, and only after this we add the bdi to 'bdi_list'. Current code adds the bdi to the list too early, and as a result I the WARN(!test_bit(BDI_registered, &bdi->state) in bdi... 25 Jul 2010 08:39
[PATCHv6 09/15] writeback: restructure bdi forker loop a little
From: Artem Bityutskiy <Artem.Bityutskiy(a)> This patch re-structures the bdi forker a little: 1. Add 'bdi_cap_flush_forker(bdi)' condition check to the bdi loop. The reason for this is that the forker thread can start _before_ the 'BDI_registered' flag is set (see 'bdi_register()'), so the WARN() st... 25 Jul 2010 08:39
[PATCHv6 03/15] writeback: do not lose wake-ups in the forker thread - 1
From: Artem Bityutskiy <Artem.Bityutskiy(a)> Currently the forker thread can lose wake-ups which may lead to unnecessary delays in processing bdi works. E.g., consider the following scenario. 1. 'bdi_forker_thread()' walks the 'bdi_list', finds out there is nothing to do, and is about to finish the lo... 25 Jul 2010 08:39
[PATCHv6 05/15] writeback: do not lose wake-ups in bdi threads
From: Artem Bityutskiy <Artem.Bityutskiy(a)> Currently, bdi threads ('bdi_writeback_thread()') can lose wake-ups. For example, if 'bdi_queue_work()' is executed after the bdi thread have had finished 'wb_do_writeback()' but before it called 'schedule_timeout_interruptible()'. To fix this issue, we have ... 25 Jul 2010 08:39
[PATCHv6 00/15] kill unnecessary bdi wakeups + cleanups
Hi, here is v6 of the patch series which clean-ups bdi threads and substantially lessens amount of unnecessary kernel wake-ups, which is very important on battery-powered devices. This patch-set is also available at: git:// flushers_v6 Changes since v5 Only patc... 25 Jul 2010 08:39
[PATCHv6 11/15] writeback: prevent unnecessary bdi threads wakeups
From: Artem Bityutskiy <Artem.Bityutskiy(a)> Finally, we can get rid of unnecessary wake-ups in bdi threads, which are very bad for battery-driven devices. There are two types of activities bdi threads do: 1. process bdi works from the 'bdi->work_list' 2. periodic write-back So there are 2 sources of... 25 Jul 2010 08:39
[PATCHv6 12/15] writeback: optimize periodic bdi thread wakeups
From: Artem Bityutskiy <Artem.Bityutskiy(a)> Whe the first inode for a bdi is marked dirty, we wake up the bdi thread which should take care of the periodic background write-out. However, the write-out will actually start only 'dirty_writeback_interval' centisecs later, so we can delay the wake-up. This... 25 Jul 2010 07:36
[PATCHv6 08/15] writeback: move last_active to bdi
From: Artem Bityutskiy <Artem.Bityutskiy(a)> Currently bdi threads use local variable 'last_active' which stores last time when the bdi thread did some useful work. Move this local variable to 'struct bdi_writeback'. This is just a preparation for the further patches which will make the forker thread decid... 25 Jul 2010 07:36
First  |  Prev |  Next  |  Last
Pages: 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417