Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 13bb7e37 authored by Eric W. Biederman's avatar Eric W. Biederman Committed by Linus Torvalds
Browse files

[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: default avatarEric W. Biederman <ebiederm@xmission.com>
Acked-by: default avatarAlan Cox <alan@redhat.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 6c33eb39
Loading
Loading
Loading
Loading
+0 −12
Original line number Original line Diff line number Diff line
@@ -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
+9 −10
Original line number Original line Diff line number Diff line
@@ -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