Re: [PATCH] [RFC] Fix deadlock on regular nonseekable files

From: Al Viro
Date: Fri Mar 20 2015 - 10:46:43 EST


On Fri, Mar 20, 2015 at 04:22:11PM +0200, Vitaly Chernooky wrote:
> > AFAICS, any threads blocked on f_pos_lock are not holding anything else and
> > cannot impede the rest. What am I missing here?
>
> As far as I understand it is true only for files on regular filesystem
> like ext4. Let's to see how XEN guys run into trouble with that
> f_pos_lock:

What does it have to do with filesystem type involved? The only place that
takes f_pos_lock is __fdget_pos(), with only one caller in the entire tree -
fdget_pos(). Which is static in fs/read_write.c and all its callers are
in right in the beginning of sys_<something>.

Is it just that they have read() on procfs file blocked waiting for something
and a bunch of other read/write on the same descriptor blocked on ->f_pos_mutex
waiting for that sucker to finish?

Then basically they are asking to waive XSI 2.9.7 for that file - behaviour
*is* required by POSIX.

What file it is and what is the first read() (or write(), whatever) blocked on?
Stack traces would be useful for the latter...
--
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/