sysctl OKRs 2026
Objective 1 ⏳: Provide contextual info on series and the subsystem in general
Motivation is to increase awareness on what is needed in the subsystem, avoid misunderstandings and have a way to point to the docs.
Key Result 1.1 ⏳:
Track all sysctl patch sets through sysctl patchwork
Key Result 1.2 ⏳:
At least once a linux kernel release, update the notes about current development in sysctl ReadTheDocs web site
Objective 2 ⏳: Consolidate converter functions into one implementation
Consolidate the three slightly different implementations of the converter functions for integer, unsigned integer and unsigned long into one. There are no “real” differences except for the type that is handled. Have an initial proposal under the dovec_consolidate branch.
Key Result 2.1 ⏳:
Test the current implementation in dovec_consolidate branch.
Key Result 2.2 ⏳:
Refactor Macro based implementation into one with just regular functions.
Objective 3 ⏳: Const qualify the net directory ctl_tables
The motivation is to const qualifying ctl_table structs prevents unintended modification of proc_handler function pointers by placing them in the .rodata section.
Key Result 3.1 ⏳:
Const qualify the net directory
Key Result 3.2 ⏳:
Const qualify the ctl_tables that depend on net directory
iwcm_ctl_table (depend on net)
ucma_ctl_table (depend on net)
Note
Const qualifying the network sysctl tables is tricky as they change the permission (ctl_table->mode) based on what namespace that are generated from. This is done in order to protect the namespaces from interfering with each other. Still need to find a clean transition for this one.
Objective 4 ⏳: Create sysctl ctl_table table entries with a macro
Consolidate the way ctl_table entries are created into a SYSCTL_ENTRY macro. This is mainly done to consolidate the logic of creating each ctl_table entry into one place.
Note
An example of this can be found in the sysctl-entry-macro branch.
This will probably require a treewide commit spanning several subsystems.
Key Result 4.1 ⏳:
Validate a SYSCTL_ENTRY macro implementation in the kernel mailing list
Key Result 4.2 ⏳:
Upstream Solution. The way this is done depends on how intrusive the resulting change is
Objective 5 ⏳: change enxter{1,2} type from void* to ulong
This depends on O4. Here I’m guessing that we would still have to handle outliers (like net), but they would be much less.
Key Result 5.1 ⏳:
Implement an alternative to the places where exter{1,2} are not used as min/max
Key Result 5.2 ⏳:
Change the type of extern{1,2} to ulong