Skip to content

Commit

Permalink
mm: Support compiling out madvise and fadvise
Browse files Browse the repository at this point in the history
Many embedded systems will not need these syscalls, and omitting them
saves space.  Add a new EXPERT config option CONFIG_ADVISE_SYSCALLS
(default y) to support compiling them out.

bloat-o-meter:
add/remove: 0/3 grow/shrink: 0/0 up/down: 0/-2250 (-2250)
function                                     old     new   delta
sys_fadvise64                                 57       -     -57
sys_fadvise64_64                             691       -    -691
sys_madvise                                 1502       -   -1502

Signed-off-by: Josh Triplett <[email protected]>
  • Loading branch information
joshtriplett committed Aug 18, 2014
1 parent 7d1311b commit d3ac21c
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 2 deletions.
10 changes: 10 additions & 0 deletions init/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -1537,6 +1537,16 @@ config AIO
by some high performance threaded applications. Disabling
this option saves about 7k.

config ADVISE_SYSCALLS
bool "Enable madvise/fadvise syscalls" if EXPERT
default y
help
This option enables the madvise and fadvise syscalls, used by
applications to advise the kernel about their future memory or file
usage, improving performance. If building an embedded system where no
applications use these syscalls, you can disable this option to save
space.

config PCI_QUIRKS
default y
bool "Enable PCI quirk workarounds" if EXPERT
Expand Down
3 changes: 3 additions & 0 deletions kernel/sys_ni.c
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,9 @@ cond_syscall(sys_process_vm_writev);
cond_syscall(compat_sys_process_vm_readv);
cond_syscall(compat_sys_process_vm_writev);
cond_syscall(sys_uselib);
cond_syscall(sys_fadvise64);
cond_syscall(sys_fadvise64_64);
cond_syscall(sys_madvise);

/* arch-specific weak syscall entries */
cond_syscall(sys_pciconfig_read);
Expand Down
7 changes: 5 additions & 2 deletions mm/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@
#

mmu-y := nommu.o
mmu-$(CONFIG_MMU) := fremap.o gup.o highmem.o madvise.o memory.o mincore.o \
mmu-$(CONFIG_MMU) := fremap.o gup.o highmem.o memory.o mincore.o \
mlock.o mmap.o mprotect.o mremap.o msync.o rmap.o \
vmalloc.o pagewalk.o pgtable-generic.o

ifdef CONFIG_CROSS_MEMORY_ATTACH
mmu-$(CONFIG_MMU) += process_vm_access.o
endif

obj-y := filemap.o mempool.o oom_kill.o fadvise.o \
obj-y := filemap.o mempool.o oom_kill.o \
maccess.o page_alloc.o page-writeback.o \
readahead.o swap.o truncate.o vmscan.o shmem.o \
util.o mmzone.o vmstat.o backing-dev.o \
Expand All @@ -28,6 +28,9 @@ else
obj-y += bootmem.o
endif

ifdef CONFIG_MMU
obj-$(CONFIG_ADVISE_SYSCALLS) += fadvise.o madvise.o
endif
obj-$(CONFIG_HAVE_MEMBLOCK) += memblock.o

obj-$(CONFIG_SWAP) += page_io.o swap_state.o swapfile.o
Expand Down

0 comments on commit d3ac21c

Please sign in to comment.