linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Zach Brown <zach.brown@oracle.com>
To: Christoph Hellwig <hch@lst.de>
Cc: Joel Becker <Joel.Becker@oracle.com>,
	Andrew Morton <akpm@osdl.org>,
	mark.fasheh@oracle.com, linux-fsdevel@vger.kernel.org
Subject: Re: [Joel.Becker@oracle.com: Re: [Linux-cluster] Re: [PATCH 1/3] dlm: use configfs]
Date: Thu, 25 Aug 2005 11:45:14 -0700	[thread overview]
Message-ID: <430E11BA.4030603@oracle.com> (raw)
In-Reply-To: <20050825095819.GA4785@lst.de>


> Currently we don't support buffered aio on any filesystem in
> mainline, so adding crufty code to mainline sounds like a bad idea.
> Zab agreed on that and wants to remove it as much as it gets.

Yeah, we aim to simplify this code.  For the record, it wasn't buffered
aio that was the problem.  There were two naughty moving parts:

First, trying not to block in the dlm when issuing aio ops and tracking
state to restart after dlm ops returned eiocbqueued.  This was just
overly aggressive.  This can behave like block mapping lookups in that
it rarely blocks.  Most aio that people care about (direct io writes to
already allocated regions) will simply be acquiring and releasing
shared-read locks around each op -- trivial local operations.

Second, trying to hold dlm locks around the entirety of aio ops. This
led to the mess of trying to tear down locks in the iocb dtor method.
(which can then race with unmount, aio does __fput on the filp, dropping
the vfsmount ref, before calling dtor.. bleh). We can get around this
by unlocking after performing the block mapping lookups and issueing the
io and introducing a cluster DLM lock which behaves like i_alloc_sem.

So, how about a patch that lets the fs provide a callback to
acquire/release i_alloc_sem at the current sites (dio, notify_change)
that work with it? Most file systems wouldn't provide a callback and
the code would just use the sem as usual, but clustered guys could use
dlm locking.

- z

  parent reply	other threads:[~2005-08-25 18:45 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20050822213220.GH19387@insight.us.oracle.com>
     [not found] ` <20050822144521.24494329.akpm@osdl.org>
     [not found]   ` <20050822215049.GI19387@insight.us.oracle.com>
     [not found]     ` <20050822150505.7978136d.akpm@osdl.org>
2005-08-24  7:18       ` [Joel.Becker@oracle.com: Re: [Linux-cluster] Re: [PATCH 1/3] dlm: use configfs] Christoph Hellwig
2005-08-24 20:33         ` Joel Becker
2005-08-25  9:58           ` Christoph Hellwig
2005-08-25 17:45             ` Mark Fasheh
2005-08-28 22:48               ` Greg KH
2005-08-29 17:41                 ` Joel Becker
2005-08-29 19:29                   ` Miklos Szeredi
2005-08-31  6:14                     ` Greg KH
2005-08-31  8:24                       ` Joel Becker
2005-08-31 11:11                       ` Miklos Szeredi
2005-08-25 18:45             ` Zach Brown [this message]
2005-08-25 20:23               ` Christoph Hellwig

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=430E11BA.4030603@oracle.com \
    --to=zach.brown@oracle.com \
    --cc=Joel.Becker@oracle.com \
    --cc=akpm@osdl.org \
    --cc=hch@lst.de \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=mark.fasheh@oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).