On 12/31/2017 7:40 AM, Theodore Ts'o wrote:
On Sat, Dec 30, 2017 at 12:44:17PM -0800, Matthew Wilcox wrote:
I'm not sure I agree with this part. What if we add a new TCP lock class
for connections which are used for filesystems/network block devices/...?
Yes, it'll be up to each user to set the lockdep classification correctly,
but that's a relatively small number of places to add annotations,
and I don't see why it wouldn't work.
I was exagerrating a bit for effect, I admit. (but only a bit).
It can probably be for all TCP connections that are used by kernel
code (as opposed to userspace-only TCP connections). But it would
probably have to be each and every device-mapper instance, each and
every block device, each and every mounted file system, each and every
bdi object, etc.
The point I was trying to drive home is that "all we have to do is
just classify everything well or just invalidate the right lock
Just to be sure, we don't have to invalidate lock objects at all but
a problematic waiter only.
objects" is a massive understatement of the complexity level of what
would be required, or the number of locks/completion handlers that
would have to be blacklisted.
- Ted
--
Thanks,
Byungchul