diff options
author | Bron Gondwana <brong@fastmail.fm> | 2008-02-05 01:29:20 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-05 12:44:18 -0500 |
commit | 195cf453d2c3d789cbe80e3735755f860c2fb222 (patch) | |
tree | fad48a8167744b6c091c8ca499bc78b859af8957 /Documentation | |
parent | 3dfa5721f12c3d5a441448086bee156887daa961 (diff) |
mm/page-writeback: highmem_is_dirtyable option
Add vm.highmem_is_dirtyable toggle
A 32 bit machine with HIGHMEM64 enabled running DCC has an MMAPed file of
approximately 2Gb size which contains a hash format that is written
randomly by the dbclean process. On 2.6.16 this process took a few
minutes. With lowmem only accounting of dirty ratios, this takes about 12
hours of 100% disk IO, all random writes.
Include a toggle in /proc/sys/vm/highmem_is_dirtyable which can be set to 1 to
add the highmem back to the total available memory count.
[akpm@linux-foundation.org: Fix the CONFIG_DETECT_SOFTLOCKUP=y build]
Signed-off-by: Bron Gondwana <brong@fastmail.fm>
Cc: Ethan Solomita <solo@google.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: WU Fengguang <wfg@mail.ustc.edu.cn>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'Documentation')
-rw-r--r-- | Documentation/filesystems/proc.txt | 15 | ||||
-rw-r--r-- | Documentation/sysctl/vm.txt | 7 |
2 files changed, 19 insertions, 3 deletions
diff --git a/Documentation/filesystems/proc.txt b/Documentation/filesystems/proc.txt index 0b1b0c008613..07231afca72d 100644 --- a/Documentation/filesystems/proc.txt +++ b/Documentation/filesystems/proc.txt | |||
@@ -1315,6 +1315,21 @@ for writeout by the pdflush daemons. It is expressed in 100'ths of a second. | |||
1315 | Data which has been dirty in-memory for longer than this interval will be | 1315 | Data which has been dirty in-memory for longer than this interval will be |
1316 | written out next time a pdflush daemon wakes up. | 1316 | written out next time a pdflush daemon wakes up. |
1317 | 1317 | ||
1318 | highmem_is_dirtyable | ||
1319 | -------------------- | ||
1320 | |||
1321 | Only present if CONFIG_HIGHMEM is set. | ||
1322 | |||
1323 | This defaults to 0 (false), meaning that the ratios set above are calculated | ||
1324 | as a percentage of lowmem only. This protects against excessive scanning | ||
1325 | in page reclaim, swapping and general VM distress. | ||
1326 | |||
1327 | Setting this to 1 can be useful on 32 bit machines where you want to make | ||
1328 | random changes within an MMAPed file that is larger than your available | ||
1329 | lowmem without causing large quantities of random IO. Is is safe if the | ||
1330 | behavior of all programs running on the machine is known and memory will | ||
1331 | not be otherwise stressed. | ||
1332 | |||
1318 | legacy_va_layout | 1333 | legacy_va_layout |
1319 | ---------------- | 1334 | ---------------- |
1320 | 1335 | ||
diff --git a/Documentation/sysctl/vm.txt b/Documentation/sysctl/vm.txt index 6f31f0a247d0..24eac1bc735d 100644 --- a/Documentation/sysctl/vm.txt +++ b/Documentation/sysctl/vm.txt | |||
@@ -22,6 +22,7 @@ Currently, these files are in /proc/sys/vm: | |||
22 | - dirty_background_ratio | 22 | - dirty_background_ratio |
23 | - dirty_expire_centisecs | 23 | - dirty_expire_centisecs |
24 | - dirty_writeback_centisecs | 24 | - dirty_writeback_centisecs |
25 | - highmem_is_dirtyable (only if CONFIG_HIGHMEM set) | ||
25 | - max_map_count | 26 | - max_map_count |
26 | - min_free_kbytes | 27 | - min_free_kbytes |
27 | - laptop_mode | 28 | - laptop_mode |
@@ -40,9 +41,9 @@ Currently, these files are in /proc/sys/vm: | |||
40 | ============================================================== | 41 | ============================================================== |
41 | 42 | ||
42 | dirty_ratio, dirty_background_ratio, dirty_expire_centisecs, | 43 | dirty_ratio, dirty_background_ratio, dirty_expire_centisecs, |
43 | dirty_writeback_centisecs, vfs_cache_pressure, laptop_mode, | 44 | dirty_writeback_centisecs, highmem_is_dirtyable, |
44 | block_dump, swap_token_timeout, drop-caches, | 45 | vfs_cache_pressure, laptop_mode, block_dump, swap_token_timeout, |
45 | hugepages_treat_as_movable: | 46 | drop-caches, hugepages_treat_as_movable: |
46 | 47 | ||
47 | See Documentation/filesystems/proc.txt | 48 | See Documentation/filesystems/proc.txt |
48 | 49 | ||