<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/include/linux/sysctl.h, branch v3.18.9</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v3.18.9</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v3.18.9'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2014-08-08T22:57:24Z</updated>
<entry>
<title>sysctl: remove typedef ctl_table</title>
<updated>2014-08-08T22:57:24Z</updated>
<author>
<name>Joe Perches</name>
<email>joe@perches.com</email>
</author>
<published>2014-08-08T21:22:16Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=e5eea0981a3840f3f39f43d2d00461c4c24018e7'/>
<id>urn:sha1:e5eea0981a3840f3f39f43d2d00461c4c24018e7</id>
<content type='text'>
Remove the final user, and the typedef itself.

Signed-off-by: Joe Perches &lt;joe@perches.com&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>sysctl: Pass useful parameters to sysctl permissions</title>
<updated>2012-11-19T01:30:55Z</updated>
<author>
<name>Eric W. Biederman</name>
<email>ebiederm@xmission.com</email>
</author>
<published>2012-11-16T03:02:58Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=73f7ef435934e952c1d70d83d69921ea5d1f6bd4'/>
<id>urn:sha1:73f7ef435934e952c1d70d83d69921ea5d1f6bd4</id>
<content type='text'>
- Current is implicitly avaiable so passing current-&gt;nsproxy isn't useful.
- The ctl_table_header is needed to find how the sysctl table is connected
  to the rest of sysctl.
- ctl_table_root is avaiable in the ctl_table_header so no need to it.

With these changes it becomes possible to write a version of
net_sysctl_permission that takes into account the network namespace of
the sysctl table, an important feature in extending the user namespace.

Acked-by: Serge Hallyn &lt;serge.hallyn@canonical.com&gt;
Signed-off-by: "Eric W. Biederman" &lt;ebiederm@xmission.com&gt;
Signed-off-by: David S. Miller &lt;davem@davemloft.net&gt;
</content>
</entry>
<entry>
<title>UAPI: (Scripted) Disintegrate include/linux</title>
<updated>2012-10-13T09:46:48Z</updated>
<author>
<name>David Howells</name>
<email>dhowells@redhat.com</email>
</author>
<published>2012-10-13T09:46:48Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=607ca46e97a1b6594b29647d98a32d545c24bdff'/>
<id>urn:sha1:607ca46e97a1b6594b29647d98a32d545c24bdff</id>
<content type='text'>
Signed-off-by: David Howells &lt;dhowells@redhat.com&gt;
Acked-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
Acked-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Acked-by: Michael Kerrisk &lt;mtk.manpages@gmail.com&gt;
Acked-by: Paul E. McKenney &lt;paulmck@linux.vnet.ibm.com&gt;
Acked-by: Dave Jones &lt;davej@redhat.com&gt;
</content>
</entry>
<entry>
<title>sysctl: Add register_sysctl for normal sysctl users</title>
<updated>2012-01-25T00:40:30Z</updated>
<author>
<name>Eric W. Biederman</name>
<email>ebiederm@xmission.com</email>
</author>
<published>2012-01-21T05:47:03Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=fea478d4101a4285aa25c5bafaaf4cec35026fe0'/>
<id>urn:sha1:fea478d4101a4285aa25c5bafaaf4cec35026fe0</id>
<content type='text'>
The plan is to convert all callers of register_sysctl_table
and register_sysctl_paths to register_sysctl.  The interface
to register_sysctl is enough nicer this should make the callers
a bit more readable.  Additionally after the conversion the
230 lines of backwards compatibility can be removed.

Signed-off-by: Eric W. Biederman &lt;ebiederm@xmission.com&gt;
</content>
</entry>
<entry>
<title>sysctl: Index sysctl directories with rbtrees.</title>
<updated>2012-01-25T00:40:30Z</updated>
<author>
<name>Eric W. Biederman</name>
<email>ebiederm@xmission.com</email>
</author>
<published>2012-01-10T01:24:30Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=ac13ac6f4c6c0504d2c927862216f4e422a2c0b5'/>
<id>urn:sha1:ac13ac6f4c6c0504d2c927862216f4e422a2c0b5</id>
<content type='text'>
One of the most important jobs of sysctl is to export network stack
tunables.  Several of those tunables are per network device.  In
several instances people are running with 1000+ network devices in
there network stacks, which makes the simple per directory linked list
in sysctl a scaling bottleneck.   Replace O(N^2) sysctl insertion and
lookup times with O(NlogN) by using an rbtree to index the sysctl
directories.

Benchmark before:
    make-dummies 0 999 -&gt; 0.32s
    rmmod dummy        -&gt; 0.12s
    make-dummies 0 9999 -&gt; 1m17s
    rmmod dummy         -&gt; 17s

Benchmark after:
    make-dummies 0 999 -&gt; 0.074s
    rmmod dummy        -&gt; 0.070s
    make-dummies 0 9999 -&gt; 3.4s
    rmmod dummy         -&gt; 0.44s

Benchmark after (without dev_snmp6):
    make-dummies 0 9999 -&gt; 0.75s
    rmmod dummy         -&gt; 0.44s
    make-dummies 0 99999 -&gt; 11s
    rmmod dummy          -&gt; 4.3s

At 10,000 dummy devices the bottleneck becomes the time to add and
remove the files under /proc/sys/net/dev_snmp6.  I have commented
out the code that adds and removes files under /proc/sys/net/dev_snmp6
and taken measurments of creating and destroying 100,000 dummies to
verify the sysctl continues to scale.

Signed-off-by: Eric W. Biederman &lt;ebiederm@xmission.com&gt;
</content>
</entry>
<entry>
<title>sysctl: Make the header lists per directory.</title>
<updated>2012-01-25T00:40:30Z</updated>
<author>
<name>Eric W. Biederman</name>
<email>ebiederm@xmission.com</email>
</author>
<published>2012-01-08T07:45:12Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=9e3d47df35abd6430fed04fb40a76c7358b1e815'/>
<id>urn:sha1:9e3d47df35abd6430fed04fb40a76c7358b1e815</id>
<content type='text'>
Slightly enhance efficiency and clarity of the code by making the
header list per directory instead of per set.

Benchmark before:
    make-dummies 0 999 -&gt; 0.63s
    rmmod dummy        -&gt; 0.12s
    make-dummies 0 9999 -&gt; 2m35s
    rmmod dummy         -&gt; 18s

Benchmark after:
    make-dummies 0 999 -&gt; 0.32s
    rmmod dummy        -&gt; 0.12s
    make-dummies 0 9999 -&gt; 1m17s
    rmmod dummy         -&gt; 17s

Signed-off-by: Eric W. Biederman &lt;ebiederm@xmission.com&gt;
</content>
</entry>
<entry>
<title>sysctl: Modify __register_sysctl_paths to take a set instead of a root and an nsproxy</title>
<updated>2012-01-25T00:40:30Z</updated>
<author>
<name>Eric W. Biederman</name>
<email>ebiederm@xmission.com</email>
</author>
<published>2012-01-08T08:02:37Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=60a47a2e823cbe6b609346bffff61a00c0c76470'/>
<id>urn:sha1:60a47a2e823cbe6b609346bffff61a00c0c76470</id>
<content type='text'>
An nsproxy argument here has always been awkard and now the nsproxy argument
is completely unnecessary so remove it, replacing it with the set we want
the registered tables to show up in.

Signed-off-by: Eric W. Biederman &lt;ebiederm@xmission.com&gt;
</content>
</entry>
<entry>
<title>sysctl: Replace root_list with links between sysctl_table_sets.</title>
<updated>2012-01-25T00:40:29Z</updated>
<author>
<name>Eric W. Biederman</name>
<email>ebiederm@xmission.com</email>
</author>
<published>2012-01-08T07:24:30Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=0e47c99d7fe25e0f3907d9f3401079169d904891'/>
<id>urn:sha1:0e47c99d7fe25e0f3907d9f3401079169d904891</id>
<content type='text'>
Piecing together directories by looking first in one directory
tree, than in another directory tree and finally in a third
directory tree makes it hard to verify that some directory
entries are not multiply defined and makes it hard to create
efficient implementations the sysctl filesystem.

Replace the sysctl wide list of roots with autogenerated
links from the core sysctl directory tree to the other
sysctl directory trees.

This simplifies sysctl directory reading and lookups as now
only entries in a single sysctl directory tree need to be
considered.

Benchmark before:
    make-dummies 0 999 -&gt; 0.44s
    rmmod dummy        -&gt; 0.065s
    make-dummies 0 9999 -&gt; 1m36s
    rmmod dummy         -&gt; 0.4s

Benchmark after:
    make-dummies 0 999 -&gt; 0.63s
    rmmod dummy        -&gt; 0.12s
    make-dummies 0 9999 -&gt; 2m35s
    rmmod dummy         -&gt; 18s

The slowdown is caused by the lookups used in insert_headers
and put_links to see if we need to add links or remove links.

Signed-off-by: Eric W. Biederman &lt;ebiederm@xmission.com&gt;
</content>
</entry>
<entry>
<title>sysctl: Stop requiring explicit management of sysctl directories</title>
<updated>2012-01-25T00:40:29Z</updated>
<author>
<name>Eric W. Biederman</name>
<email>ebiederm@xmission.com</email>
</author>
<published>2011-12-29T16:24:29Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=7ec66d06362da7684a4948c4c2bf1f8546425df4'/>
<id>urn:sha1:7ec66d06362da7684a4948c4c2bf1f8546425df4</id>
<content type='text'>
Simplify the code and the sysctl semantics by autogenerating
sysctl directories when a sysctl table is registered that needs
the directories and autodeleting the directories when there are
no more sysctl tables registered that need them.

Autogenerating directories keeps sysctl tables from depending
on each other, removing all of the arcane register/unregister
ordering constraints and makes it impossible to get the order
wrong when reigsering and unregistering sysctl tables.

Autogenerating directories yields one unique entity that dentries
can point to, retaining the current effective use of the dcache.

Add struct ctl_dir as the type of these new autogenerated
directories.

The attached_by and attached_to fields in ctl_table_header are
removed as they are no longer needed.

The child field in ctl_table is no longer needed by the core of
the sysctl code.  ctl_table.child can be removed once all of the
existing users have been updated.

Benchmark before:
    make-dummies 0 999 -&gt; 0.7s
    rmmod dummy        -&gt; 0.07s
    make-dummies 0 9999 -&gt; 1m10s
    rmmod dummy         -&gt; 0.4s

Benchmark after:
    make-dummies 0 999 -&gt; 0.44s
    rmmod dummy        -&gt; 0.065s
    make-dummies 0 9999 -&gt; 1m36s
    rmmod dummy         -&gt; 0.4s

Signed-off-by: Eric W. Biederman &lt;ebiederm@xmission.com&gt;
</content>
</entry>
<entry>
<title>sysctl: Add a root pointer to ctl_table_set</title>
<updated>2012-01-25T00:40:29Z</updated>
<author>
<name>Eric W. Biederman</name>
<email>ebiederm@xmission.com</email>
</author>
<published>2012-01-23T05:26:00Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=9eb47c26f09e27506d343ef52e634b2a50ee21ef'/>
<id>urn:sha1:9eb47c26f09e27506d343ef52e634b2a50ee21ef</id>
<content type='text'>
Add a ctl_table_root pointer to ctl_table set so it is easy to
go from a ctl_table_set to a ctl_table_root.

Signed-off-by: Eric W. Biederman &lt;ebiederm@xmission.com&gt;
</content>
</entry>
</feed>
