Rik van Riel
124627553b
add extra free kbytes tunable
...
Add a userspace visible knob to tell the VM to keep an extra amount
of memory free, by increasing the gap between each zone's min and
low watermarks.
This is useful for realtime applications that call system
calls and have a bound on the number of allocations that happen
in any short time period. In this application, extra_free_kbytes
would be left at an amount equal to or larger than than the
maximum number of allocations that happen in any burst.
It may also be useful to reduce the memory use of virtual
machines (temporarily?), in a way that does not cause memory
fragmentation like ballooning does.
[ccross]
Revived for use on old kernels where no other solution exists.
The tunable will be removed on kernels that do better at avoiding
direct reclaim.
Change-Id: I765a42be8e964bfd3e2886d1ca85a29d60c3bb3e
Signed-off-by: Rik van Riel <riel@redhat.com>
Signed-off-by: Colin Cross <ccross@android.com>
Git-commit: f8ade3666c8612c33929f499b3c8800d83f43d84
Git-repo: https://android.googlesource.com/kernel/common.git
[vinmenon@codeaurora.org: avoid user setting of watermark_scale_factor
to any value other than 0, make the default watermark_scale_factor 0,
changes because of the presence of watermark_scale_factor. Move the
declaration of extra_free_kbytes to include file and remove the
initialization to zero in the definition. This fixes the checkpatch
warnings. Make the inclusion of variable "one_thousand" in kernel/sysctl.c
dependent on CONFIG_PERF_EVENTS which is the only user left now (earlier
being watermark_scale_factor]
Signed-off-by: Vinayak Menon <vinmenon@codeaurora.org>
2018-02-05 16:29:56 +05:30
..
bpf
This is the 4.9.77 stable release
2018-01-17 10:38:29 +01:00
configs
ANDROID: add script to fetch android kernel config fragments
2017-10-03 17:19:26 +00:00
debug
This is the 4.9.69 stable release
2017-12-14 10:08:45 +01:00
events
Merge remote-tracking branch '4.9/tmp-8dd0f52' into msm-4.9
2018-01-02 10:37:28 -08:00
gcov
gcov: support GCC 7.1
2017-09-02 07:07:53 +02:00
irq
Merge remote-tracking branch '4.9/tmp-379e3b2' into 4.9
2017-10-17 14:48:18 -07:00
livepatch
locking
Merge "Merge remote-tracking branch '4.9/tmp-fd67b2f' into msm-4.9"
2017-10-25 17:26:23 -07:00
power
qos: Pass the list of cpus with affected qos to notifer
2017-11-03 12:18:22 +05:30
printk
rcu
Merge remote-tracking branch '4.9/tmp-86f97ab' into msm-4.9
2017-10-19 13:18:38 -07:00
sched
Merge "sched/rt: Use container_of() to get root domain in rto_push_irq_work_func()"
2018-01-26 18:15:31 -08:00
time
Merge android-4.9-o.74 ( 127372f) into msm-4.9
2018-01-18 07:01:08 -08:00
trace
Merge android-4.9-o.74 ( 127372f) into msm-4.9
2018-01-18 07:01:08 -08:00
.gitignore
acct.c
kernel/acct.c: fix the acct->needcheck check in check_free_space()
2018-01-10 09:29:51 +01:00
async.c
audit.c
audit: ensure that 'audit=1' actually enables audit for PID 1
2017-12-16 16:25:47 +01:00
audit.h
audit_fsnotify.c
audit_tree.c
audit_watch.c
audit: Fix use after free in audit_remove_watch_rule()
2017-08-24 17:12:18 -07:00
auditfilter.c
auditsc.c
backtracetest.c
bounds.c
capability.c
cgroup.c
cgroup: Fix deadlock in cpu hotplug path
2018-01-26 09:43:35 -08:00
cgroup_freezer.c
cgroup_pids.c
compat.c
kernel: Fix build errors due to uninitialized variables
2017-12-05 17:29:24 -08:00
configs.c
context_tracking.c
cpu.c
Merge android-4.9-o.74 ( 127372f) into msm-4.9
2018-01-18 07:01:08 -08:00
cpu_pm.c
cpuset.c
Merge "Merge remote-tracking branch '4.9/tmp-05a906d' into msm-4.9"
2017-10-24 19:57:25 -07:00
crash_dump.c
cred.c
delayacct.c
dma.c
elfcore.c
exec_domain.c
exit.c
android/lowmemorykiller: Ignore tasks with freed mm
2017-07-20 11:17:28 +05:30
extable.c
kernel/extable.c: mark core_kernel_text notrace
2017-07-21 07:42:21 +02:00
fork.c
Merge android-4.9-o.75 ( 2007563) into msm-4.9
2018-01-19 05:20:43 -08:00
freezer.c
futex.c
futex: Remove unnecessary warning from get_futex_key
2017-08-16 13:43:15 -07:00
futex_compat.c
groups.c
kernel: make groups_sort calling a responsibility group_info allocators
2018-01-10 09:29:52 +01:00
hung_task.c
hung task: check specific tasks for long uninterruptible sleep state
2017-10-25 13:51:29 +05:30
irq_work.c
jump_label.c
jump_label: Invoke jump_label_test() via early_initcall()
2017-12-14 09:28:24 +01:00
kallsyms.c
kcmp.c
Kconfig.freezer
Kconfig.hz
Kconfig.locks
Kconfig.preempt
kcov.c
kcov: make kcov work properly with KASLR enabled
2017-09-19 10:18:24 -07:00
kexec.c
kexec_core.c
kexec_file.c
kexec_file: adjust declaration of kexec_purgatory
2017-08-07 17:39:02 -07:00
kexec_internal.h
kexec_file: adjust declaration of kexec_purgatory
2017-08-07 17:39:02 -07:00
kmod.c
kprobes.c
tracing/kprobes: Enforce kprobes teardown after testing
2017-05-25 15:44:47 +02:00
ksysfs.c
kthread.c
Revert "kthread: Ensure task isn't preempted before dequeue in kthread_parkme"
2017-07-12 16:20:39 -07:00
latencytop.c
Makefile
kernel/watchdog.c: move hardlockup detector to separate file
2017-06-17 06:41:57 +02:00
membarrier.c
memremap.c
module-internal.h
module.c
module_signing.c
notifier.c
nsproxy.c
padata.c
panic.c
soc: qcom: Register default dump entries to minidump table
2017-11-27 14:22:11 +05:30
params.c
pid.c
pids: make task_tgid_nr_ns() safe
2017-08-24 17:12:21 -07:00
pid_namespace.c
pid_ns: Sleep in TASK_INTERRUPTIBLE in zap_pid_ns_processes
2017-05-25 15:44:38 +02:00
profile.c
ptrace.c
ptrace: Properly initialize ptracer_cred on fork
2017-06-14 15:05:54 +02:00
range.c
reboot.c
relay.c
resource.c
kernel: Restrict permissions of /proc/iomem.
2017-08-22 16:19:49 -07:00
seccomp.c
seccomp: fix the usage of get/put_seccomp_filter() in seccomp_get_filter()
2017-10-05 09:44:02 +02:00
signal.c
kernel/signal.c: remove the no longer needed SIGNAL_UNKILLABLE check in complete_signal()
2018-01-10 09:29:53 +01:00
smp.c
smp: Wake up all idle CPUs when suspending to idle
2017-09-07 12:29:06 -07:00
smpboot.c
smpboot.h
softirq.c
softirq: defer softirq processing to ksoftirqd if CPU is busy with RT
2017-08-07 15:54:09 +05:30
stacktrace.c
stop_machine.c
sys.c
sys_ni.c
sysctl.c
add extra free kbytes tunable
2018-02-05 16:29:56 +05:30
sysctl_binary.c
netfilter: nf_defrag_ipv4: Add sysctl to disable per interface
2018-01-10 19:42:37 -07:00
task_work.c
taskstats.c
test_kprobes.c
torture.c
tracepoint.c
tsacct.c
ucount.c
kernel/ucount.c: mark user_header with kmemleak_ignore()
2017-06-17 06:41:51 +02:00
uid16.c
kernel: make groups_sort calling a responsibility group_info allocators
2018-01-10 09:29:52 +01:00
up.c
user-return-notifier.c
user.c
user_namespace.c
utsname.c
utsname_sysctl.c
watchdog.c
ANDROID: hardlockup: detect hard lockups without NMIs using secondary cpus
2017-08-28 11:25:03 -07:00
watchdog_hld.c
ANDROID: hardlockup: detect hard lockups without NMIs using secondary cpus
2017-08-28 11:25:03 -07:00
workqueue.c
workqueue/hotplug: simplify workqueue_offline_cpu()
2018-01-26 09:43:44 -08:00
workqueue_internal.h
workqueue: Fix NULL pointer dereference
2017-11-15 15:53:17 +01:00