mirror of
https://gitee.com/openharmony/kernel_linux
synced 2025-01-11 02:17:06 +00:00
[PATCH] sysctl: Undeprecate sys_sysctl
The basic issue is that despite have been deprecated and warned about as a very bad thing in the man pages since its inception there are a few real users of sys_sysctl. It was my assumption that because sysctl had been deprecated for all of 2.6 there would be no user space users by this point, so I initially gave sys_sysctl a very short deprecation period. Now that I know there are a few real users the only sane way to proceed with deprecation is to push the time limit out to a year or two work and work with distributions that have big testing pools like fedora core to find these last remaining users. Which means that the sys_sysctl interface needs to be maintained in the meantime. Since I have provided a technical measure that allows us to add new sysctl entries without reserving more binary numbers I believe that is enough to fix the sys_sysctl binary interface maintenance problems, because there is no longer a need to change the binary interface at all. Since the sys_sysctl implementation needs to stay around for a while and the worst of the maintenance issues that caused us to occasionally break the ABI have been addressed I don't see any advantage in continuing with the removal of sys_sysctl. So instead of merely increasing the deprecation period this patch removes the deprecation of sys_sysctl and modifies the kernel to compile the code in by default. With committing to maintain sys_sysctl we get all of the advantages of a fast interface for anything that needs it. Currently sys_sysctl is about 5x faster than /proc/sys, for the same string data. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Acked-by: Alan Cox <alan@redhat.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
6c33eb3997
commit
13bb7e37e5
@ -53,18 +53,6 @@ Who: Mauro Carvalho Chehab <mchehab@brturbo.com.br>
|
|||||||
|
|
||||||
---------------------------
|
---------------------------
|
||||||
|
|
||||||
What: sys_sysctl
|
|
||||||
When: January 2007
|
|
||||||
Why: The same information is available through /proc/sys and that is the
|
|
||||||
interface user space prefers to use. And there do not appear to be
|
|
||||||
any existing user in user space of sys_sysctl. The additional
|
|
||||||
maintenance overhead of keeping a set of binary names gets
|
|
||||||
in the way of doing a good job of maintaining this interface.
|
|
||||||
|
|
||||||
Who: Eric Biederman <ebiederm@xmission.com>
|
|
||||||
|
|
||||||
---------------------------
|
|
||||||
|
|
||||||
What: PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl])
|
What: PCMCIA control ioctl (needed for pcmcia-cs [cardmgr, cardctl])
|
||||||
When: November 2005
|
When: November 2005
|
||||||
Files: drivers/pcmcia/: pcmcia_ioctl.c
|
Files: drivers/pcmcia/: pcmcia_ioctl.c
|
||||||
|
19
init/Kconfig
19
init/Kconfig
@ -304,20 +304,19 @@ config UID16
|
|||||||
|
|
||||||
config SYSCTL_SYSCALL
|
config SYSCTL_SYSCALL
|
||||||
bool "Sysctl syscall support" if EMBEDDED
|
bool "Sysctl syscall support" if EMBEDDED
|
||||||
default n
|
default y
|
||||||
select SYSCTL
|
select SYSCTL
|
||||||
---help---
|
---help---
|
||||||
Enable the deprecated sysctl system call. sys_sysctl uses
|
sys_sysctl uses binary paths that have been found challenging
|
||||||
binary paths that have been found to be a major pain to maintain
|
to properly maintain and use. The interface in /proc/sys
|
||||||
and use. The interface in /proc/sys is now the primary and what
|
using paths with ascii names is now the primary path to this
|
||||||
everyone uses.
|
information.
|
||||||
|
|
||||||
Nothing has been using the binary sysctl interface for some
|
Almost nothing using the binary sysctl interface so if you are
|
||||||
time now so nothing should break if you disable sysctl syscall
|
trying to save some space it is probably safe to disable this,
|
||||||
support, and your kernel will get marginally smaller.
|
making your kernel marginally smaller.
|
||||||
|
|
||||||
Unless you have an application that uses the sys_sysctl interface
|
If unsure say Y here.
|
||||||
you should probably say N here.
|
|
||||||
|
|
||||||
config KALLSYMS
|
config KALLSYMS
|
||||||
bool "Load all symbols for debugging/kksymoops" if EMBEDDED
|
bool "Load all symbols for debugging/kksymoops" if EMBEDDED
|
||||||
|
Loading…
x
Reference in New Issue
Block a user