Re: [RFC] inode.i_opflags - Usage of two different locking schemes

From: Alexander Lochmann
Date: Mon Mar 08 2021 - 09:06:26 EST




On 05.03.21 17:04, Theodore Ts'o wrote:
On Fri, Mar 05, 2021 at 04:35:47PM +0100, Alexander Lochmann wrote:


On 05.03.21 16:18, Theodore Ts'o wrote:
1) I don't see where i_opflags is being read in ipc/mqueue.c at all,
either with or without i_rwsem.

It is read in fs/dcache.c

So why is this unique to the mqueue inode then? It might be helpful
to have explicit call stacks in the e-mail, in text form, when you
resend to LKML.
It is unique to mqeue inode, because the control flow goes through ipc/mqueue.c where almost always the i_rwsem is taken.
Hence, we see more memory accesses to an mqueue inode with the i_rwsem.
The i_lock is less often hold compared to the i_rwsem.
We conclude the i_rwsem is needed. So it might not be a contradiction at all. It rather could be a flaw in our approach. :-/

Besides from our current discussion:
Does the i_lock protect i_opflags for both reading and writing?

Cheers,
Alex


That's because the HTML file is ***huge*** (1.7Meg), and I'm having
trouble with my browser properly rendering it. In any case, the html
claims to be showing the counter examples and I'm still stuck on the
*example*?

Cheers,

- Ted


--
Technische Universität Dortmund
Alexander Lochmann PGP key: 0xBC3EF6FD
Otto-Hahn-Str. 16 phone: +49.231.7556141
D-44227 Dortmund fax: +49.231.7556116
http://ess.cs.tu-dortmund.de/Staff/al

Attachment: OpenPGP_signature
Description: OpenPGP digital signature