History

[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.

Ingo Molnar committed 21 years ago

Commit 6cb54811 parent 5d546f53 files · +2 −3Browse files

Unified · Split

3 files
  1. arch/i386/kernel/syscall_table.S +1 −1
  2. arch/ia64/kernel/entry.S +1 −1
  3. kernel/sys_ni.c +0 −1
arch/i386/kernel/syscall_table.S+1−1
@@ -251,7 +251,7 @@ ENTRY(sys_call_table) · 250 unmodified lines
251251 .long sys_io_submit
252252 .long sys_io_cancel
253253 .long sys_fadvise64 /* 250 */
254− .long sys_set_zone_reclaim
254+ .long sys_ni_syscall
255255 .long sys_exit_group
256256 .long sys_lookup_dcookie
257257 .long sys_epoll_create
arch/ia64/kernel/entry.S+1−1
@@ -1573,7 +1573,7 @@ sys_call_table: · 1572 unmodified lines
15731573 data8 sys_keyctl
15741574 data8 sys_ioprio_set
15751575 data8 sys_ioprio_get // 1275
1576− data8 sys_set_zone_reclaim
1576+ data8 sys_ni_syscall
15771577 data8 sys_inotify_init
15781578 data8 sys_inotify_add_watch
15791579 data8 sys_inotify_rm_watch
kernel/sys_ni.c+0−1
@@ -79,7 +79,6 @@ cond_syscall(sys_request_key); · 78 unmodified lines
7979 cond_syscall(sys_keyctl);
8080 cond_syscall(compat_sys_keyctl);
8181 cond_syscall(compat_sys_socketcall);
82−cond_syscall(sys_set_zone_reclaim);
8382 cond_syscall(sys_inotify_init);
8483 cond_syscall(sys_inotify_add_watch);
8584 cond_syscall(sys_inotify_rm_watch);

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t