lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Fri, 22 May 2020 04:43:48 -0700 From: Matthew Wilcox <willy@...radead.org> To: Muchun Song <songmuchun@...edance.com> Cc: adobriyan@...il.com, ast@...nel.org, daniel@...earbox.net, kafai@...com, songliubraving@...com, yhs@...com, andriin@...com, john.fastabend@...il.com, kpsingh@...omium.org, ebiederm@...ssion.com, bernd.edlinger@...mail.de, linux-kernel@...r.kernel.org, linux-fsdevel@...r.kernel.org, netdev@...r.kernel.org, bpf@...r.kernel.org Subject: Re: [External] Re: [PATCH] files: Use rcu lock to get the file structures for better performance On Fri, May 22, 2020 at 03:52:39PM +0800, Muchun Song wrote: > On Fri, May 22, 2020 at 12:47 AM Matthew Wilcox <willy@...radead.org> wrote: > > > @@ -160,14 +168,23 @@ static int proc_fd_link(struct dentry *dentry, struct path *path) > > > unsigned int fd = proc_fd(d_inode(dentry)); > > > struct file *fd_file; > > > > > > - spin_lock(&files->file_lock); > > > + rcu_read_lock(); > > > +again: > > > fd_file = fcheck_files(files, fd); > > > if (fd_file) { > > > + if (!get_file_rcu(fd_file)) { > > > + /* > > > + * we loop to catch the new file > > > + * (or NULL pointer). > > > + */ > > > + goto again; > > > + } > > > *path = fd_file->f_path; > > > path_get(&fd_file->f_path); > > > + fput(fd_file); > > > ret = 0; > > > } > > > - spin_unlock(&files->file_lock); > > > + rcu_read_unlock(); > > > > Why is it an improvement to increment/decrement the refcount on the > > struct file here, rather than take/release the spinlock? > > > > lock-free vs spinlock. bananas vs oranges. How do you think refcounts work? How do you think spinlocks work? > Do you think spinlock would be better than the lock-free method? > Actually I prefer the rcu lock. Why? You don't seem to understand the tradeoffs.
Powered by blists - more mailing lists