android_kernel_xiaomi_sdm845/arch/i386/kernel
Ingo Molnar 6cb54819d7 [PATCH] remove sys_set_zone_reclaim()
This removes sys_set_zone_reclaim() for now.  While i'm sure Martin is
trying to solve a real problem, we must not hard-code an incomplete and
insufficient approach into a syscall, because syscalls are pretty much
for eternity.  I am quite strongly convinced that this syscall must not
hit v2.6.13 in its current form.

Firstly, the syscall lacks basic syscall design: e.g. it allows the
global setting of VM policy for unprivileged users. (!) [ Imagine an
Oracle installation and a SAP installation on the same NUMA box fighting
over the 'optimal' setting for this flag. What will they do? Will they
try to set the flag to their own preferred value every second or so? ]

Secondly, it was added based on a single datapoint from Martin:

 http://marc.theaimsgroup.com/?l=linux-mm&m=111763597218177&w=2

where Martin characterizes the numbers the following way:

 ' Run-to-run variability for "make -j" is huge, so these numbers aren't
   terribly useful except to see that with reclaim the benchmark still
   finishes in a reasonable amount of time. '

in other words: the fundamental problem has likely not been solved, only
a tendential move into the right direction has been observed, and a
handful of numbers were picked out of a set of hugely variable results,
without showing the variability data. How much variance is there
run-to-run?

I'd really suggest to first walk the walk and see what's needed to get
stable & predictable kernel compilation numbers on that NUMA box, before
adding random syscalls to tune a particular aspect of the VM ... which
approach might not even matter once the whole picture has been analyzed
and understood!

The third, most important point is that the syscall exposes VM tuning
internals in a completely unstructured way. What sense does it make to
have a _GLOBAL_ per-node setting for 'should we go to another node for
reclaim'? If then it might make sense to do this per-app, via numalib or
so.

The change is minimalistic in that it doesnt remove the syscall and the
underlying infrastructure changes, only the user-visible changes.  We
could perhaps add a CAP_SYS_ADMIN-only sysctl for this hack, a'ka
/proc/sys/vm/swappiness, but even that looks quite counterproductive
when the generic approach is that we are trying to reduce the number of
external factors in the VM balance picture.

Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2005-08-01 10:03:56 -07:00
..
acpi [ACPI] merge acpi-2.6.12 branch into latest Linux 2.6.13-rc... 2005-07-12 17:21:56 -04:00
cpu merge 2.6.13-rc4 with ACPI's to-linus tree 2005-07-30 01:55:32 -04:00
timers [PATCH] mostly_read data section 2005-07-07 18:23:46 -07:00
apic.c [PATCH] x86: i8253/i8259A lock cleanup 2005-06-30 08:45:10 -07:00
apm.c [PATCH] APM: Remove redundant call to set_cpus_allowed 2005-07-26 14:35:45 -07:00
asm-offsets.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
bootflag.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
cpuid.c [PATCH] class: convert arch/* to use the new class api instead of class_simple 2005-06-20 15:15:09 -07:00
crash.c [PATCH] kexec code cleanup 2005-06-25 16:24:55 -07:00
dmi_scan.c [PATCH] dmi: spring cleanup 2005-06-25 16:24:28 -07:00
doublefault.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
early_printk.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
efi_stub.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
efi.c [PATCH] crashdump: x86 crashkernel option 2005-06-25 16:24:50 -07:00
entry.S [PATCH] uml: fix syscall table by including $(SUBARCH)'s one, for i386 2005-05-01 08:58:55 -07:00
head.S [PATCH] variable overflow after hundreds round of hotplug CPU 2005-06-25 16:24:28 -07:00
i386_ksyms.c [PATCH] Remove i386_ksyms.c, almost. 2005-06-23 09:45:11 -07:00
i387.c x86: make restore_fpu() use alternative assembler instructions 2005-07-22 16:06:16 -04:00
i8259.c [PATCH] kexec: x86: i8259 shutdown: disable interrupts 2005-06-25 16:24:46 -07:00
init_task.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
io_apic.c [PATCH] x86: i8253/i8259A lock cleanup 2005-06-30 08:45:10 -07:00
ioport.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
irq.c [PATCH] cpu state clean after hot remove 2005-06-25 16:24:30 -07:00
kprobes.c [PATCH] kprobes: fix namespace problem and sparc64 build 2005-07-05 19:19:00 -07:00
ldt.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
machine_kexec.c [PATCH] i386 machine_kexec: Cleanup inline assembly 2005-07-29 12:17:26 -07:00
Makefile [PATCH] kexec: x86 kexec core 2005-06-25 16:24:49 -07:00
mca.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
microcode.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
module.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mpparse.c [PATCH] x86: avoid wasting IRQs patch update 2005-07-29 15:01:13 -07:00
msr.c [PATCH] class: convert arch/* to use the new class api instead of class_simple 2005-06-20 15:15:09 -07:00
nmi.c [PATCH] adjust i386 watchdog tick calculation 2005-06-23 09:45:09 -07:00
numaq.c [PATCH] re-disable TSC on NUMAQ 2005-07-28 21:46:05 -07:00
pci-dma.c [PATCH] Remove i386_ksyms.c, almost. 2005-06-23 09:45:11 -07:00
process.c [PATCH] sys_get_thread_area does not clear the returned argument 2005-07-27 16:26:08 -07:00
ptrace.c [PATCH] xen: x86: Rename usermode macro 2005-06-23 09:45:14 -07:00
quirks.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
reboot_fixups.c [PATCH] x86 reboot: Add reboot fixup for gx1/cs5530a 2005-05-01 08:58:49 -07:00
reboot.c [PATCH] i386 machine_power_off cleanup 2005-07-26 14:35:44 -07:00
relocate_kernel.S [PATCH] kexec: x86 kexec core 2005-06-25 16:24:49 -07:00
scx200.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
semaphore.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
setup.c Remove "noreplacement" kernel command line option. 2005-07-22 18:29:40 -04:00
sigframe.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
signal.c Fix up try_to_freeze() usage in arch/i386/kernel/signal.c 2005-06-25 20:09:12 -07:00
smp.c [PATCH] sep initializing rework 2005-06-25 16:24:29 -07:00
smpboot.c [PATCH] mostly_read data section 2005-07-07 18:23:46 -07:00
srat.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
summit.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sys_i386.c Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
syscall_table.S [PATCH] remove sys_set_zone_reclaim() 2005-08-01 10:03:56 -07:00
sysenter.c [PATCH] sep initializing rework 2005-06-25 16:24:29 -07:00
time_hpet.c [PATCH] CPU hotplug: fix hpet sectioning 2005-06-25 16:24:28 -07:00
time.c [PATCH] mostly_read data section 2005-07-07 18:23:46 -07:00
trampoline.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
traps.c [PATCH] arch/i386/kernel/traps.c: fix sparse warnings 2005-06-25 16:24:58 -07:00
vm86.c [PATCH] misc verify_area cleanups 2005-05-01 08:59:08 -07:00
vmlinux.lds.S [PATCH] mostly_read data section 2005-07-07 18:23:46 -07:00
vsyscall-int80.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
vsyscall-note.S [PATCH] i386 vDSO: add PT_NOTE segment 2005-04-16 15:24:48 -07:00
vsyscall-sigreturn.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
vsyscall-sysenter.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
vsyscall.lds.S [PATCH] i386 vDSO: add PT_NOTE segment 2005-04-16 15:24:48 -07:00
vsyscall.S Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00