Download raw body.
ip sysctl atomic
I think this is going off the rails.
I think some fictional "everyone must see the same value" is being
pushed here.
Can someone please provide an actual real example where this matters?
I asked before, let me ask again. The man page says:
Unless explicitly noted below, sysctl() returns a consistent snapshot of
the data requested. Consistency is obtained by locking the destination
buffer into memory so that the data may be copied out without blocking.
Calls to sysctl() are serialized to avoid deadlock.
I think the last sentence is incompatible with MP, and we should remove it.
Or add a 100 new biglocks, right?
Next sentence
Consistency is obtained by locking the destination
buffer into memory so that the data may be copied out without blocking.
That has always been untrue. vslock is an incredibly huge block.
So really it comes down to:
Unless explicitly noted below, sysctl() returns a consistent snapshot of
the data requested.
bluhm is trying to fix requests of one int, or one long.
Consistant with respect to what??
The codepaths he's changing don't sleep.
Can someone PLEASE tell me of an int/long sysctl value that will be
read by multiple threads, *while* another thread is changing it (and I mean
one change) -- and where it is OBSERVABLE in the multiple readers that
something wasn't consistant?
Some will return a value *before* the write was started (OR after it was
started but did not finish yet), and others will return a value *after*
the write was started and finished.
What's the problem?
Please demonstrate a specific sysctl request where this is a real issue,
and if it is, let's go the other way and just reimpose the damn biglock
and tell people OpenBSD is always going to be slow.
ip sysctl atomic