On 8/5/23, Linus Torvalds torvalds@linux-foundation.org wrote:
On Fri, 4 Aug 2023 at 14:46, Mateusz Guzik mjguzik@gmail.com wrote:
I don't see it mentioned in the discussion, so at a risk of ruffling feathers or looking really bad I'm going to ask: is the locking of any use if the forking process is single-threaded? T
Sadly, we've always been able to access the mm from other processes, so the locking is - I think - unavoidable.
And some of those "access from other processes" aren't even uncommon or special. It's things like "ps" etc, that do it just to see the process name and arguments.
I know of these guys, I think they are excluded as is -- they go through access_remote_vm, starting with: if (mmap_read_lock_killable(mm)) return 0;
while dup_mmap already write locks the parent's mm.
I don't see any surprise relocks of the semaphore.
Granted, should someone *bypass* this mechanism the above would be moot.