Re: sysfs: use a separate locking class for open files depending onmmap

From: Dave Jones
Date: Tue Dec 03 2013 - 13:43:39 EST


On Thu, Nov 28, 2013 at 05:12:23AM +0000, Linux Kernel wrote:
> Gitweb: http://git.kernel.org/linus/;a=commit;h=027a485d12e089314360d459b8d847104dd28702
> Commit: 027a485d12e089314360d459b8d847104dd28702
> Parent: 54d71145a4548330313ca664a4a009772fe8b7dd
> Author: Tejun Heo <tj@xxxxxxxxxx>
> AuthorDate: Sun Nov 17 11:17:36 2013 +0900
> Committer: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>
> CommitDate: Sat Nov 23 10:52:13 2013 -0800
>
> sysfs: use a separate locking class for open files depending on mmap
>
> The following two commits implemented mmap support in the regular file
> path and merged bin file support into the regular path.
> ...
> - mutex_init(&of->mutex);
> + /*
> + * The following is done to give a different lockdep key to
> + * @of->mutex for files which implement mmap. This is a rather
> + * crude way to avoid false positive lockdep warning around
> + * mm->mmap_sem - mmap nests @of->mutex under mm->mmap_sem and
> + * reading /sys/block/sda/trace/act_mask grabs sr_mutex, under
> + * which mm->mmap_sem nests, while holding @of->mutex. As each
> + * open file has a separate mutex, it's okay as long as those don't
> + * happen on the same file. At this point, we can't easily give
> + * each file a separate locking class. Let's differentiate on
> + * whether the file has mmap or not for now.
> + */
> + if (has_mmap)
> + mutex_init(&of->mutex);
> + else
> + mutex_init(&of->mutex);
> +

Somehow I just triggered this trace again, even with this commit applied.
The trace is pretty much identical to the old one.

Dave

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/