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>
This commit is contained in:
committed by
Linus Torvalds
parent
3dfa5721f1
commit
195cf453d2
@ -84,8 +84,11 @@ extern int sysctl_stat_interval;
|
||||
extern int latencytop_enabled;
|
||||
|
||||
/* Constants used for minimum and maximum */
|
||||
#ifdef CONFIG_DETECT_SOFTLOCKUP
|
||||
#if defined(CONFIG_DETECT_SOFTLOCKUP) || defined(CONFIG_HIGHMEM)
|
||||
static int one = 1;
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_DETECT_SOFTLOCKUP
|
||||
static int sixty = 60;
|
||||
#endif
|
||||
|
||||
@ -1150,6 +1153,19 @@ static struct ctl_table vm_table[] = {
|
||||
.extra1 = &zero,
|
||||
},
|
||||
#endif
|
||||
#ifdef CONFIG_HIGHMEM
|
||||
{
|
||||
.ctl_name = CTL_UNNUMBERED,
|
||||
.procname = "highmem_is_dirtyable",
|
||||
.data = &vm_highmem_is_dirtyable,
|
||||
.maxlen = sizeof(vm_highmem_is_dirtyable),
|
||||
.mode = 0644,
|
||||
.proc_handler = &proc_dointvec_minmax,
|
||||
.strategy = &sysctl_intvec,
|
||||
.extra1 = &zero,
|
||||
.extra2 = &one,
|
||||
},
|
||||
#endif
|
||||
/*
|
||||
* NOTE: do not add new entries to this table unless you have read
|
||||
* Documentation/sysctl/ctl_unnumbered.txt
|
||||
|
Reference in New Issue
Block a user