xfs
[Top] [All Lists]

Re: xfs_file_splice_read: possible circular locking dependency detected

To: Al Viro <viro@xxxxxxxxxxxxxxxxxx>
Subject: Re: xfs_file_splice_read: possible circular locking dependency detected
From: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
Date: Sat, 17 Sep 2016 13:15:29 -0700
Cc: Dave Chinner <david@xxxxxxxxxxxxx>, CAI Qian <caiqian@xxxxxxxxxx>, linux-xfs <linux-xfs@xxxxxxxxxxxxxxx>, xfs@xxxxxxxxxxx, Jens Axboe <axboe@xxxxxxxxx>, Nick Piggin <npiggin@xxxxxxxxx>
Delivered-to: xfs@xxxxxxxxxxx
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:in-reply-to:references:from:date:message-id :subject:to:cc; bh=mxHActdPfubhqZu5YUxKFSRZbtoq5ib3N+OUHyvBg5U=; b=BfJwE7bfOozdFx7QVcTumNPWrDqk7et6OzFuITdag6NntzJq4Tp6GjZ7dYTKkSZ3CM BxqPXGMmWToy8agtxPA0ouyinN+eIC8kIsYmf5K626o+XL3/mYrAj9jedcEs0PW0Mcx/ CInMtFkVDu7vyHuqc+k3+ZtITdJIfnOUmXcU2/L6yS8NLdv3seL6FZYqtnsUZmd6V8ui RwrO/5BQfOdoEfMoQovgYCTuhglq+062cwH7fcPyb/B6e250nNuWYac3Og0AjJsKk9ZO Ab/rY0qpTwSxzgFFvv8XVseh69dreQhdOtpIzTrFBxmpAfq9nWj312L53vKmpE+rf+jg +sQA==
In-reply-to: <20160917190023.GA8039@xxxxxxxxxxxxxxxxxx>
References: <CA+55aFzohsUXj_3BeFNr2t50Wm=G+7toRDEz=Tk7VJqP3n1hXQ@xxxxxxxxxxxxxx> <CA+55aFxrqCng2Qxasc9pyMrKUGFjo==fEaFT1vkH9Lncte3RgQ@xxxxxxxxxxxxxx> <20160909023452.GO2356@xxxxxxxxxxxxxxxxxx> <CA+55aFwHQMjO4-vtfB9-ytc=o+DRo-HXVGckvXLboUxgpwb7_g@xxxxxxxxxxxxxx> <20160909221945.GQ2356@xxxxxxxxxxxxxxxxxx> <CA+55aFzTOOB6oEVaaGD0N7Uznk-W9+ULPwzsxS_L_oZqGVSeLA@xxxxxxxxxxxxxx> <20160914031648.GB2356@xxxxxxxxxxxxxxxxxx> <CA+55aFznQaOWoSMNphgGJJWZ=8-odrc0DAUMzfGPQe+_N4UgNA@xxxxxxxxxxxxxx> <20160914042559.GC2356@xxxxxxxxxxxxxxxxxx> <20160917082007.GA6489@xxxxxxxxxxxxxxxxxx> <20160917190023.GA8039@xxxxxxxxxxxxxxxxxx>
Sender: linus971@xxxxxxxxx
On Sat, Sep 17, 2016 at 12:00 PM, Al Viro <viro@xxxxxxxxxxxxxxxxxx> wrote:
>
> [ edited out steps 1-6]

So that all sounds very much like a big improvement. Not that I think
removing splice_pipe_desc is such a big deal per se, but on the whole
the less the actual low-level iterator does, and the more we do at a
higher level, the happier I am. The fact that you say you can remove
it does make it sound like you got rid of the right amount of
complexity, though. The reason that whole thing exists is exactly
because otherwise the splice callbacks would look too damn hair for
words.

If we get rid of all the SPLICE_F_NONBLOCK, sighandling, pipe_wait()
and fasync crap at the low level, I'll already be much happier. I hate
how complex that code is, and how the filesystems call into it as a
helper etc. Doing just the iterator in the deep corners of splice
sounds like absolutely the right thing to do.

So reading your outline I say "wonderful".

Of course, maybe I'll change my mind when I actually see your patches ;^p

             Linus

<Prev in Thread] Current Thread [Next in Thread>