From: Oliver Xymoron <oxymoron@waste.org>
To: Andrew Morton <akpm@digeo.com>
Cc: Alex Tomas <bzzz@tmi.comex.ru>,
linux-kernel@alex.org.uk, linux-kernel@vger.kernel.org,
linux-mm@kvack.org
Subject: Re: 2.5.59-mm5
Date: Fri, 24 Jan 2003 09:56:26 -0600 [thread overview]
Message-ID: <20030124155626.GC9417@waste.org> (raw)
In-Reply-To: <20030124035017.6276002f.akpm@digeo.com>
On Fri, Jan 24, 2003 at 03:50:17AM -0800, Andrew Morton wrote:
> Alex Tomas <bzzz@tmi.comex.ru> wrote:
> >
> > >>>>> Andrew Morton (AM) writes:
> >
> > AM> But writes are completely different. There is no dependency
> > AM> between them and at any point in time we know where on-disk a lot
> > AM> of writes will be placed. We don't know that for reads, which is
> > AM> why we need to twiddle thumbs until the application or filesystem
> > AM> makes up its mind.
> >
> >
> > it's significant that application doesn't want to wait read completion
> > long and doesn't wait for write completion in most cases.
>
> That's correct. Reads are usually synchronous and writes are rarely
> synchronous.
>
> The most common place where the kernel forces a user process to wait on
> completion of a write is actually in unlink (truncate, really). Because
> truncate must wait for in-progress I/O to complete before allowing the
> filesystem to free (and potentially reuse) the affected blocks.
>
> If there's a lot of writeout happening then truncate can take _ages_. Hence
> this patch:
An alternate approach might be to change the way the scheduler splits
things. That is, rather than marking I/O read vs write and scheduling
based on that, add a flag bit to mark them all sync vs async since
that's the distinction we actually care about. The normal paths can
all do read+sync and write+async, but you can now do things like
marking your truncate writes sync and readahead async.
And dependent/nondependent or stalling/nonstalling might be a clearer
terminology.
--
"Love the dolphins," she advised him. "Write by W.A.S.T.E.."
WARNING: multiple messages have this Message-ID (diff)
From: Oliver Xymoron <oxymoron@waste.org>
To: Andrew Morton <akpm@digeo.com>
Cc: Alex Tomas <bzzz@tmi.comex.ru>,
linux-kernel@alex.org.uk, linux-kernel@vger.kernel.org,
linux-mm@kvack.org
Subject: Re: 2.5.59-mm5
Date: Fri, 24 Jan 2003 09:56:26 -0600 [thread overview]
Message-ID: <20030124155626.GC9417@waste.org> (raw)
In-Reply-To: <20030124035017.6276002f.akpm@digeo.com>
On Fri, Jan 24, 2003 at 03:50:17AM -0800, Andrew Morton wrote:
> Alex Tomas <bzzz@tmi.comex.ru> wrote:
> >
> > >>>>> Andrew Morton (AM) writes:
> >
> > AM> But writes are completely different. There is no dependency
> > AM> between them and at any point in time we know where on-disk a lot
> > AM> of writes will be placed. We don't know that for reads, which is
> > AM> why we need to twiddle thumbs until the application or filesystem
> > AM> makes up its mind.
> >
> >
> > it's significant that application doesn't want to wait read completion
> > long and doesn't wait for write completion in most cases.
>
> That's correct. Reads are usually synchronous and writes are rarely
> synchronous.
>
> The most common place where the kernel forces a user process to wait on
> completion of a write is actually in unlink (truncate, really). Because
> truncate must wait for in-progress I/O to complete before allowing the
> filesystem to free (and potentially reuse) the affected blocks.
>
> If there's a lot of writeout happening then truncate can take _ages_. Hence
> this patch:
An alternate approach might be to change the way the scheduler splits
things. That is, rather than marking I/O read vs write and scheduling
based on that, add a flag bit to mark them all sync vs async since
that's the distinction we actually care about. The normal paths can
all do read+sync and write+async, but you can now do things like
marking your truncate writes sync and readahead async.
And dependent/nondependent or stalling/nonstalling might be a clearer
terminology.
--
"Love the dolphins," she advised him. "Write by W.A.S.T.E.."
--
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/
next prev parent reply other threads:[~2003-01-24 15:47 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-01-24 3:50 2.5.59-mm5 Andrew Morton
2003-01-24 3:50 ` 2.5.59-mm5 Andrew Morton
2003-01-24 11:03 ` 2.5.59-mm5 Alex Bligh - linux-kernel
2003-01-24 11:03 ` 2.5.59-mm5 Alex Bligh - linux-kernel
2003-01-24 11:16 ` 2.5.59-mm5 Andrew Morton
2003-01-24 11:16 ` 2.5.59-mm5 Andrew Morton
2003-01-24 11:23 ` 2.5.59-mm5 Alex Tomas
2003-01-24 11:23 ` 2.5.59-mm5 Alex Tomas
2003-01-24 11:50 ` 2.5.59-mm5 Andrew Morton
2003-01-24 11:50 ` 2.5.59-mm5 Andrew Morton
2003-01-24 12:05 ` 2.5.59-mm5 Alex Tomas
2003-01-24 12:05 ` 2.5.59-mm5 Alex Tomas
2003-01-24 19:12 ` 2.5.59-mm5 Andrew Morton
2003-01-24 19:12 ` 2.5.59-mm5 Andrew Morton
2003-01-24 19:58 ` 2.5.59-mm5 Alex Tomas
2003-01-24 19:58 ` 2.5.59-mm5 Alex Tomas
2003-01-25 17:32 ` 2.5.59-mm5 Ed Tomlinson
2003-01-25 17:41 ` 2.5.59-mm5 Andrew Morton
2003-01-25 20:34 ` 2.5.59-mm5 Ed Tomlinson
2003-01-25 22:33 ` 2.5.59-mm5 Andrew Morton
2003-01-26 1:43 ` 2.5.59-mm5 Ed Tomlinson
2003-01-26 2:17 ` 2.5.59-mm5 Andrew Morton
2003-01-26 3:51 ` 2.5.59-mm5 Ed Tomlinson
2003-01-26 4:04 ` 2.5.59-mm5 Andrew Morton
2003-01-24 15:56 ` Oliver Xymoron [this message]
2003-01-24 15:56 ` 2.5.59-mm5 Oliver Xymoron
2003-01-24 16:04 ` 2.5.59-mm5 Nick Piggin
2003-01-24 16:04 ` 2.5.59-mm5 Nick Piggin
2003-01-24 17:09 ` 2.5.59-mm5 Giuliano Pochini
2003-01-24 17:09 ` 2.5.59-mm5 Giuliano Pochini
2003-01-24 17:22 ` 2.5.59-mm5 Nick Piggin
2003-01-24 17:22 ` 2.5.59-mm5 Nick Piggin
2003-01-24 19:34 ` 2.5.59-mm5 Valdis.Kletnieks
2003-01-24 20:04 ` 2.5.59-mm5 Jens Axboe
2003-01-24 20:04 ` 2.5.59-mm5 Jens Axboe
2003-01-24 22:02 ` 2.5.59-mm5 Valdis.Kletnieks
2003-01-25 12:28 ` 2.5.59-mm5 Jens Axboe
2003-01-25 12:28 ` 2.5.59-mm5 Jens Axboe
2003-01-24 12:14 ` 2.5.59-mm5 Nikita Danilov
2003-01-24 12:14 ` 2.5.59-mm5 Nikita Danilov
2003-01-24 16:00 ` 2.5.59-mm5 Nick Piggin
2003-01-24 16:00 ` 2.5.59-mm5 Nick Piggin
2003-01-24 11:23 ` 2.5.59-mm5 Jens Axboe
2003-01-24 11:23 ` 2.5.59-mm5 Jens Axboe
2003-01-24 13:59 ` 2.5.59-mm5 got stuck during boot Helge Hafting
2003-01-24 13:59 ` Helge Hafting
2003-01-24 17:44 ` Ed Tomlinson
2003-01-24 17:56 ` Nick Piggin
2003-01-24 19:18 ` Ed Tomlinson
2003-01-24 16:17 ` 2.5.59-mm5 jlnance
2003-01-24 19:05 ` 2.5.59-mm5 Andrew Morton
2003-01-25 8:33 ` 2.5.59-mm5 Andres Salomon
2003-01-25 8:33 ` 2.5.59-mm5 Andres Salomon
-- strict thread matches above, loose matches on Subject: below --
2003-01-24 16:59 2.5.59-mm5 Luck, Tony
2003-01-24 21:31 ` 2.5.59-mm5 Andrew Morton
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=20030124155626.GC9417@waste.org \
--to=oxymoron@waste.org \
--cc=akpm@digeo.com \
--cc=bzzz@tmi.comex.ru \
--cc=linux-kernel@alex.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
/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.