Re: [RFC, PATCH] locks: remove posix deadlock detection



On Sun, 28 Oct 2007 13:43:21 -0400
"J. Bruce Fields" <bfields@xxxxxxxxxxxx> wrote:

From: J. Bruce Fields <bfields@xxxxxxxxxxxxxx>

We currently attempt to return -EDEALK to blocking fcntl() file locking
requests that would create a cycle in the graph of tasks waiting on
locks.

This is inefficient: in the general case it requires us determining
whether we're adding a cycle to an arbitrary directed acyclic graph.
And this calculation has to be performed while holding a lock (currently
the BKL) that prevents that graph from changing.

It has historically been a source of bugs; most recently it was noticed
that it could loop indefinitely while holding the BKL.

It seems unlikely to be useful to applications:
- The difficulty of implementation has kept standards from
requiring it. (E.g. SUSv3 : "Since implementation of full
deadlock detection is not always feasible, the [EDEADLK] error
was made optional.") So portable applications may not be able to
depend on it.
- It only detects deadlocks that involve nothing but local posix
file locks; deadlocks involving network filesystems or other kinds
of locks or resources are missed.

It therefore seems best to remove deadlock detection.

Signed-off-by: J. Bruce Fields <bfields@xxxxxxxxxxxxxx>


NAK. This is an ABI change and one that was rejected before when this was
last discussed in detail. Moving it out of BKL makes a ton of sense, even
adding a "don't check" flag makes a lot of sense. Removing the checking
does not.

I'd much rather see


if (flags & FL_NODLCHECK)
posix_deadlock_detect(....)


The failure case for removing this feature is obscure and hard to debug
application hangs for the afflicted programs - not nice for users at all.

Alan
-
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/



Relevant Pages

  • Re: [RFC, PATCH] locks: remove posix deadlock detection
    ... whether we're adding a cycle to an arbitrary directed acyclic graph. ... It seems unlikely to be useful to applications: ... file locks; deadlocks involving network filesystems or other kinds ... It therefore seems best to remove deadlock detection. ...
    (Linux-Kernel)
  • Re: [RFC, PATCH] locks: remove posix deadlock detection
    ... locks. ... whether we're adding a cycle to an arbitrary directed acyclic graph. ... that it could loop indefinitely while holding the BKL. ...
    (Linux-Kernel)
  • Re: Bug in IFileSourceFilter
    ... - one reads a MIDI with the AsyncFileReader ... WMASFReader (depending on how you build the graph) ... the Explorer on XP/2003 tries to preview the file ... when you select it and so it locks the file before you can ...
    (microsoft.public.win32.programmer.directx.audio)
  • Re: Fwd: IIUG 2008 survey for new features
    ... designed set of interacting applications accessing multiple resources ... had deadlock detection pretty much since day one. ... what locks did they hold at the time and what sql statement were ... SQL> SELECT ( ...
    (comp.databases.informix)
  • Re: Help! Programming keyless remote 2004 Mustang
    ... Hit any button on the remote and the ... locks should cycle again to indicate it recieved a signal. ... works for factory installed systems and NOT dealer installed units. ...
    (rec.autos.makers.ford.mustang)