diff options
author | Eric W. Biederman <ebiederm@xmission.com> | 2012-01-07 23:45:12 -0800 |
---|---|---|
committer | Eric W. Biederman <ebiederm@xmission.com> | 2012-01-24 16:40:30 -0800 |
commit | 9e3d47df35abd6430fed04fb40a76c7358b1e815 (patch) | |
tree | 8c7fe500d2cefdf99b1128e60178045a39f1a864 /include/linux/sysctl.h | |
parent | e54012cede6749528899f66a72312522a179d427 (diff) | |
download | linux-9e3d47df35abd6430fed04fb40a76c7358b1e815.tar.gz linux-9e3d47df35abd6430fed04fb40a76c7358b1e815.tar.bz2 linux-9e3d47df35abd6430fed04fb40a76c7358b1e815.zip |
sysctl: Make the header lists per directory.
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 -> 0.63s
rmmod dummy -> 0.12s
make-dummies 0 9999 -> 2m35s
rmmod dummy -> 18s
Benchmark after:
make-dummies 0 999 -> 0.32s
rmmod dummy -> 0.12s
make-dummies 0 9999 -> 1m17s
rmmod dummy -> 17s
Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Diffstat (limited to 'include/linux/sysctl.h')
-rw-r--r-- | include/linux/sysctl.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h index cec59415b3ce..36dec756ef9d 100644 --- a/include/linux/sysctl.h +++ b/include/linux/sysctl.h @@ -1047,10 +1047,10 @@ struct ctl_table_header struct ctl_dir { /* Header must be at the start of ctl_dir */ struct ctl_table_header header; + struct list_head list; }; struct ctl_table_set { - struct list_head list; int (*is_seen)(struct ctl_table_set *); struct ctl_dir dir; }; |