From: Chris Mason <chris.mason@oracle.com>
To: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: Nick Piggin <npiggin@suse.de>, Jeff Garzik <jeff@garzik.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Linux Memory Management List <linux-mm@kvack.org>,
linux-fsdevel@vger.kernel.org
Subject: Re: [RFC] fsblock
Date: Mon, 25 Jun 2007 08:25:21 -0400 [thread overview]
Message-ID: <20070625122521.GA12446@think.oraclecorp.com> (raw)
In-Reply-To: <467F67A8.3030408@yahoo.com.au>
On Mon, Jun 25, 2007 at 04:58:48PM +1000, Nick Piggin wrote:
>
> >Using buffer heads instead allows the FS to send file data down inside
> >the transaction code, without taking the page lock. So, locking wrt
> >data=ordered is definitely going to be tricky.
> >
> >The best long term option may be making the locking order
> >transaction -> page lock, and change writepage to punt to some other
> >queue when it needs to start a transaction.
>
> Yeah, that's what I would like, and I think it would come naturally
> if we move away from these "pass down a single, locked page APIs"
> in the VM, and let the filesystem do the locking and potentially
> batching of larger ranges.
Definitely.
>
> write_begin/write_end is a step in that direction (and it helps
> OCFS and GFS quite a bit). I think there is also not much reason
> for writepage sites to require the page to lock the page and clear
> the dirty bit themselves (which has seems ugly to me).
If we keep the page mapping information with the page all the time (ie
writepage doesn't have to call get_block ever), it may be possible to
avoid sending down a locked page. But, I don't know the delayed
allocation internals well enough to say for sure if that is true.
Either way, writepage is the easiest of the bunch because it can be
deferred.
-chris
WARNING: multiple messages have this Message-ID (diff)
From: Chris Mason <chris.mason@oracle.com>
To: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: Nick Piggin <npiggin@suse.de>, Jeff Garzik <jeff@garzik.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Linux Memory Management List <linux-mm@kvack.org>,
linux-fsdevel@vger.kernel.org
Subject: Re: [RFC] fsblock
Date: Mon, 25 Jun 2007 08:25:21 -0400 [thread overview]
Message-ID: <20070625122521.GA12446@think.oraclecorp.com> (raw)
In-Reply-To: <467F67A8.3030408@yahoo.com.au>
On Mon, Jun 25, 2007 at 04:58:48PM +1000, Nick Piggin wrote:
>
> >Using buffer heads instead allows the FS to send file data down inside
> >the transaction code, without taking the page lock. So, locking wrt
> >data=ordered is definitely going to be tricky.
> >
> >The best long term option may be making the locking order
> >transaction -> page lock, and change writepage to punt to some other
> >queue when it needs to start a transaction.
>
> Yeah, that's what I would like, and I think it would come naturally
> if we move away from these "pass down a single, locked page APIs"
> in the VM, and let the filesystem do the locking and potentially
> batching of larger ranges.
Definitely.
>
> write_begin/write_end is a step in that direction (and it helps
> OCFS and GFS quite a bit). I think there is also not much reason
> for writepage sites to require the page to lock the page and clear
> the dirty bit themselves (which has seems ugly to me).
If we keep the page mapping information with the page all the time (ie
writepage doesn't have to call get_block ever), it may be possible to
avoid sending down a locked page. But, I don't know the delayed
allocation internals well enough to say for sure if that is true.
Either way, writepage is the easiest of the bunch because it can be
deferred.
-chris
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2007-06-25 12:28 UTC|newest]
Thread overview: 106+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-06-24 1:45 [RFC] fsblock Nick Piggin
2007-06-24 1:45 ` Nick Piggin
2007-06-24 1:46 ` [patch 1/3] add the fsblock layer Nick Piggin
2007-06-24 1:46 ` Nick Piggin
2007-06-24 15:28 ` Andi Kleen
2007-06-24 15:28 ` Andi Kleen
2007-06-24 20:18 ` Arjan van de Ven
2007-06-24 20:18 ` Arjan van de Ven
2007-06-25 8:58 ` Andi Kleen
2007-06-25 8:58 ` Andi Kleen
2007-06-25 7:19 ` Nick Piggin
2007-06-25 7:19 ` Nick Piggin
2007-06-24 23:01 ` Neil Brown
2007-06-24 23:01 ` Neil Brown
2007-06-25 7:41 ` Nick Piggin
2007-06-25 7:41 ` Nick Piggin
2007-06-25 12:29 ` Chris Mason
2007-06-25 12:29 ` Chris Mason
2007-06-26 2:34 ` Nick Piggin
2007-06-26 2:34 ` Nick Piggin
2007-06-26 2:48 ` Neil Brown
2007-06-26 2:48 ` Neil Brown
2007-06-26 3:07 ` Nick Piggin
2007-06-26 3:07 ` Nick Piggin
2007-06-26 12:26 ` Chris Mason
2007-06-26 12:26 ` Chris Mason
2007-06-30 10:40 ` Christoph Hellwig
2007-06-30 10:40 ` Christoph Hellwig
2007-06-30 10:40 ` Christoph Hellwig
2007-06-30 10:40 ` Christoph Hellwig
2007-06-25 13:19 ` Chris Mason
2007-06-25 13:19 ` Chris Mason
2007-06-26 2:42 ` Nick Piggin
2007-06-26 2:42 ` Nick Piggin
2007-06-24 1:46 ` [patch 2/3] block_dev: convert to fsblock Nick Piggin
2007-06-24 1:46 ` Nick Piggin
2007-06-24 1:47 ` [patch 3/3] minix: " Nick Piggin
2007-06-24 1:47 ` Nick Piggin
2007-06-24 1:53 ` [RFC] fsblock Nick Piggin
2007-06-24 1:53 ` Nick Piggin
2007-06-24 3:07 ` Jeff Garzik
2007-06-24 3:07 ` Jeff Garzik
2007-06-24 3:47 ` Nick Piggin
2007-06-24 3:47 ` Nick Piggin
2007-06-24 13:51 ` Chris Mason
2007-06-24 13:51 ` Chris Mason
2007-06-25 6:58 ` Nick Piggin
2007-06-25 6:58 ` Nick Piggin
2007-06-25 12:25 ` Chris Mason [this message]
2007-06-25 12:25 ` Chris Mason
2007-06-30 10:44 ` Christoph Hellwig
2007-06-30 10:44 ` Christoph Hellwig
2007-06-30 10:42 ` Christoph Hellwig
2007-06-30 10:42 ` Christoph Hellwig
2007-06-30 11:10 ` Jeff Garzik
2007-06-30 11:10 ` Jeff Garzik
2007-06-30 11:13 ` Christoph Hellwig
2007-06-30 11:13 ` Christoph Hellwig
2007-06-24 4:19 ` William Lee Irwin III
2007-06-24 4:19 ` William Lee Irwin III
2007-06-24 14:16 ` Andi Kleen
2007-06-24 14:16 ` Andi Kleen
2007-06-25 7:16 ` Nick Piggin
2007-06-25 7:16 ` Nick Piggin
2007-06-26 3:06 ` David Chinner
2007-06-26 3:06 ` David Chinner
2007-06-26 3:55 ` Nick Piggin
2007-06-26 3:55 ` Nick Piggin
2007-06-26 9:23 ` David Chinner
2007-06-26 9:23 ` David Chinner
2007-06-26 11:14 ` Nick Piggin
2007-06-26 11:14 ` Nick Piggin
2007-06-27 12:39 ` Kyle Moffett
2007-06-27 12:39 ` Kyle Moffett
2007-06-26 12:34 ` Chris Mason
2007-06-26 12:34 ` Chris Mason
2007-06-27 5:32 ` Nick Piggin
2007-06-27 5:32 ` Nick Piggin
2007-06-27 6:05 ` David Chinner
2007-06-27 6:05 ` David Chinner
2007-06-27 11:50 ` Chris Mason
2007-06-27 11:50 ` Chris Mason
2007-06-27 15:18 ` Anton Altaparmakov
2007-06-27 15:18 ` Anton Altaparmakov
2007-06-27 22:35 ` David Chinner
2007-06-27 22:35 ` David Chinner
2007-06-28 2:44 ` Nick Piggin
2007-06-28 2:44 ` Nick Piggin
2007-06-28 12:20 ` Chris Mason
2007-06-28 12:20 ` Chris Mason
2007-06-29 2:08 ` David Chinner
2007-06-29 2:08 ` David Chinner
2007-06-29 2:33 ` Nick Piggin
2007-06-29 2:33 ` Nick Piggin
2007-06-30 11:05 ` Christoph Hellwig
2007-06-30 11:05 ` Christoph Hellwig
2007-07-09 17:14 ` Christoph Lameter
2007-07-09 17:14 ` Christoph Lameter
2007-07-10 0:54 ` Nick Piggin
2007-07-10 0:54 ` Nick Piggin
2007-07-10 0:59 ` Christoph Lameter
2007-07-10 0:59 ` Christoph Lameter
2007-07-10 1:07 ` Nick Piggin
2007-07-10 1:07 ` Nick Piggin
2007-07-10 1:37 ` Dave McCracken
2007-07-10 1:37 ` Dave McCracken
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=20070625122521.GA12446@think.oraclecorp.com \
--to=chris.mason@oracle.com \
--cc=jeff@garzik.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=nickpiggin@yahoo.com.au \
--cc=npiggin@suse.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.