Re: [PATCH 01/11] sysctl: Separate the binary sysctl logic into it's own file.

Eric W. Biederman
2009-11-06T13:58:45Z

Arnd Bergmann <arnd@arndb.de> writes:

> On Friday 06 November 2009, Eric W. Biederman wrote:
>> The primary proc path already doesn't need the lock_kernel(). My next
>> patch winds up killing the entire binary path and rebuilding on top of
>> /proc/sys. Which removes that lock_kernel().
>>
>> Which I think elegantly solves all of the sysctl BKL lock issues.
>
> Yes, that sounds like an excellent plan, but I'm not completely sure
> if the lack of the BKL in the procfs case is intentional. As a
> particular case that I stumbled over, 'core_pattern' is read
> with the BKL held to protect against sysctl changing it, but
> it is changed with proc_dostring without the BKL.

Then that is a bug. The bottom line is sys_sysctl never gets used
in practice, making the proc interface normative.

> Most uses of intvec or string seem to be racy and probably need
> a proper serialization method anyway.

That sounds familiar. Of course in practice the changes are rare
enough and are of static variables that don't get reallocated
that I would be surprised if the lack of lacking ever causes
more more than temporary strange behavior.

Eric