[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CALCETrUgPj=LdLDhdt9AequiMYFSV6B2A6HBVwSsJvyMu1X+6A@mail.gmail.com>
Date: Tue, 4 Nov 2014 12:24:52 -0800
From: Andy Lutomirski <luto@...capital.net>
To: Al Viro <viro@...iv.linux.org.uk>
Cc: Jan Kara <jack@...e.cz>, Christoph Hellwig <hch@...radead.org>,
LKML <linux-kernel@...r.kernel.org>,
Linux FS Devel <linux-fsdevel@...r.kernel.org>
Subject: Re: [PATCH 0/4 v3] fs: Remove i_devices from struct inode
On Tue, Nov 4, 2014 at 12:16 PM, Al Viro <viro@...iv.linux.org.uk> wrote:
> On Tue, Nov 04, 2014 at 11:52:22AM -0800, Andy Lutomirski wrote:
>
>> Let me try again, though: what if a chardev inode replaced i_cdev with
>> NULL and dropped its kobj reference in iput_final? This would add a
>> bit over overhead to things that repeatedly open and close the same
>> device node, but I doubt this matters much.
>
> How is it different from what Jan proposed? The whole problem is that
> iput_final() is too late. We could clean the reference on close, all
> right, and have it looked up again on every open, but I'm not at all sure
> that situation with opening/closing cdev is never a hot path, especially with
> udev playing silly buggers, etc.
I thought the issue was inodes on the LRU list holding references open.
Anyway, the only expensive part of recreating the reference seems to
be kobj_lookup, and that doesn't look so bad. If there's a case where
the performance impact would matter at all, maybe that's an argument
for fixing it.
And is udev really opening the same device node more than once? I can
see once for blkid and such, but I don't see where a second open call
would come from.
--Andy
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists