From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Linus Torvalds <torvalds@osdl.org>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, mason@suse.com,
andrea@suse.de, hugh@veritas.com, axboe@suse.de
Subject: Re: [rfc][patch] remove racy sync_page?
Date: Thu, 01 Jun 2006 00:57:34 +1000 [thread overview]
Message-ID: <447DAEDE.5070305@yahoo.com.au> (raw)
In-Reply-To: <Pine.LNX.4.64.0605310740530.24646@g5.osdl.org>
Linus Torvalds wrote:
>
> On Wed, 31 May 2006, Nick Piggin wrote:
>
>>Now having a mechanism for a task to batch up requests might be a
>>good idea. Eg.
>>
>>plug();
>>submit reads
>>unplug();
>>wait for page
>
>
> What do you think we're _talking_ about?
Plugging. Emphasis on task.
>
> What do you think my example of sys_readahead() was all about?
>
> WE DO HAVE EXACTLY THAT MECHANISM. IT'S CALLED PLUGGING!
It isn't exactly that. I'm thinking per-task rather than per-queue might
be a better idea because a) you don't know what else is putting requests
on the queue, and b) the point where you wait is not always the best place
to unplug.
>
>
>>I'd think this would give us the benefits of corse grained (per-queue)
>>plugging and more (e.g. it works when the request queue isn't empty).
>>And it would be simpler because the unplug point is explicit and doesn't
>>need to be kicked by lock_page or wait_on_page
>
>
> What do you think plugging IS?
>
> It's _exactly_ what you're talking about.
Yes, and I'm talking about per-task vs per-queue plugging (because I want
to get rid of the implicit unplug, because I want to make lock_page & co
nicer).
> And yes, we used to have
> explicit unplugging (a long long long time ago), and IT SUCKED. People
> would forget, but even more importantly, people would do it even when not
I don't see what the problem is. Locks also suck if you forget to unlock
them.
> needed because they didn't have a good place to do it because the waiter
> was in a totally different path.
Example?
>
> The reason it's kicked by wait_on_page() is that is when it's needed.
Yes, you already said that, and I showed cases where that isn't optimal.
I don't know why you think this way of doing plugging is fundamentally
right and anything else must be wrong... it is always heuristic, isn't
it?
--
SUSE Labs, Novell Inc.
Send instant messages to your online friends http://au.messenger.yahoo.com
WARNING: multiple messages have this Message-ID (diff)
From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Linus Torvalds <torvalds@osdl.org>
Cc: linux-kernel@vger.kernel.org, linux-mm@kvack.org, mason@suse.com,
andrea@suse.de, hugh@veritas.com, axboe@suse.de
Subject: Re: [rfc][patch] remove racy sync_page?
Date: Thu, 01 Jun 2006 00:57:34 +1000 [thread overview]
Message-ID: <447DAEDE.5070305@yahoo.com.au> (raw)
In-Reply-To: <Pine.LNX.4.64.0605310740530.24646@g5.osdl.org>
Linus Torvalds wrote:
>
> On Wed, 31 May 2006, Nick Piggin wrote:
>
>>Now having a mechanism for a task to batch up requests might be a
>>good idea. Eg.
>>
>>plug();
>>submit reads
>>unplug();
>>wait for page
>
>
> What do you think we're _talking_ about?
Plugging. Emphasis on task.
>
> What do you think my example of sys_readahead() was all about?
>
> WE DO HAVE EXACTLY THAT MECHANISM. IT'S CALLED PLUGGING!
It isn't exactly that. I'm thinking per-task rather than per-queue might
be a better idea because a) you don't know what else is putting requests
on the queue, and b) the point where you wait is not always the best place
to unplug.
>
>
>>I'd think this would give us the benefits of corse grained (per-queue)
>>plugging and more (e.g. it works when the request queue isn't empty).
>>And it would be simpler because the unplug point is explicit and doesn't
>>need to be kicked by lock_page or wait_on_page
>
>
> What do you think plugging IS?
>
> It's _exactly_ what you're talking about.
Yes, and I'm talking about per-task vs per-queue plugging (because I want
to get rid of the implicit unplug, because I want to make lock_page & co
nicer).
> And yes, we used to have
> explicit unplugging (a long long long time ago), and IT SUCKED. People
> would forget, but even more importantly, people would do it even when not
I don't see what the problem is. Locks also suck if you forget to unlock
them.
> needed because they didn't have a good place to do it because the waiter
> was in a totally different path.
Example?
>
> The reason it's kicked by wait_on_page() is that is when it's needed.
Yes, you already said that, and I showed cases where that isn't optimal.
I don't know why you think this way of doing plugging is fundamentally
right and anything else must be wrong... it is always heuristic, isn't
it?
--
SUSE Labs, Novell Inc.
Send instant messages to your online friends http://au.messenger.yahoo.com
--
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:[~2006-05-31 14:57 UTC|newest]
Thread overview: 118+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-29 9:34 [rfc][patch] remove racy sync_page? Nick Piggin
2006-05-29 19:15 ` Andrew Morton
2006-05-29 19:15 ` Andrew Morton
2006-05-30 0:08 ` Nick Piggin
2006-05-30 0:08 ` Nick Piggin
2006-05-30 1:32 ` Andrew Morton
2006-05-30 1:32 ` Andrew Morton
2006-05-30 2:54 ` Nick Piggin
2006-05-30 2:54 ` Nick Piggin
2006-05-30 3:14 ` Andrew Morton
2006-05-30 3:14 ` Andrew Morton
2006-05-30 4:13 ` Nick Piggin
2006-05-30 4:13 ` Nick Piggin
2006-05-30 9:05 ` Jens Axboe
2006-05-30 9:05 ` Jens Axboe
2006-05-31 13:43 ` Nick Piggin
2006-05-31 13:43 ` Nick Piggin
2006-05-31 15:09 ` Hugh Dickins
2006-05-31 15:09 ` Hugh Dickins
2006-05-31 15:22 ` Nick Piggin
2006-05-31 15:22 ` Nick Piggin
2006-05-31 17:51 ` Jens Axboe
2006-05-31 17:51 ` Jens Axboe
2006-05-31 17:50 ` Jens Axboe
2006-05-31 17:50 ` Jens Axboe
2006-05-30 4:20 ` Linus Torvalds
2006-05-30 4:20 ` Linus Torvalds
2006-05-30 5:07 ` Nick Piggin
2006-05-30 5:07 ` Nick Piggin
2006-05-30 5:21 ` Nick Piggin
2006-05-30 5:21 ` Nick Piggin
2006-05-30 6:12 ` Neil Brown
2006-05-30 6:12 ` Neil Brown
2006-05-30 7:10 ` Nick Piggin
2006-05-30 7:10 ` Nick Piggin
2006-05-31 4:34 ` Neil Brown
2006-05-31 4:34 ` Neil Brown
2006-05-30 8:24 ` Nikita Danilov
2006-05-30 8:24 ` Nikita Danilov
2006-05-30 17:55 ` Linus Torvalds
2006-05-30 17:55 ` Linus Torvalds
2006-05-31 0:32 ` Nick Piggin
2006-05-31 0:32 ` Nick Piggin
2006-05-31 0:56 ` Linus Torvalds
2006-05-31 0:56 ` Linus Torvalds
2006-05-31 1:33 ` Mark Lord
2006-05-31 1:33 ` Mark Lord
2006-05-31 6:11 ` Jens Axboe
2006-05-31 6:11 ` Jens Axboe
2006-05-31 12:55 ` Mark Lord
2006-05-31 12:55 ` Mark Lord
2006-05-31 13:02 ` Jens Axboe
2006-05-31 13:02 ` Jens Axboe
2006-06-01 13:19 ` NCQ performance (was Re: [rfc][patch] remove racy sync_page?) Jens Axboe
2006-06-01 13:19 ` Jens Axboe
2006-06-01 14:56 ` Avi Kivity
2006-06-01 14:56 ` Avi Kivity
2006-06-01 15:03 ` Jens Axboe
2006-06-01 15:03 ` Jens Axboe
2006-06-01 18:04 ` Jens Axboe
2006-06-01 18:04 ` Jens Axboe
2006-06-05 5:30 ` Avi Kivity
2006-06-05 5:30 ` Avi Kivity
2006-06-05 7:59 ` Jens Axboe
2006-06-05 7:59 ` Jens Axboe
2006-05-31 12:31 ` [rfc][patch] remove racy sync_page? Helge Hafting
2006-05-31 12:31 ` Helge Hafting
2006-05-31 12:36 ` Arjan van de Ven
2006-05-31 12:36 ` Arjan van de Ven
2006-05-31 13:29 ` Nick Piggin
2006-05-31 13:29 ` Nick Piggin
2006-05-31 13:41 ` Jens Axboe
2006-05-31 13:41 ` Jens Axboe
2006-05-31 13:54 ` Nick Piggin
2006-05-31 13:54 ` Nick Piggin
2006-05-31 14:43 ` Linus Torvalds
2006-05-31 14:43 ` Linus Torvalds
2006-05-31 14:57 ` Nick Piggin [this message]
2006-05-31 14:57 ` Nick Piggin
2006-05-31 15:13 ` Linus Torvalds
2006-05-31 15:13 ` Linus Torvalds
2006-05-31 15:33 ` Nick Piggin
2006-05-31 15:57 ` Linus Torvalds
2006-05-31 16:12 ` Linus Torvalds
2006-05-31 16:26 ` Nick Piggin
2006-05-31 16:19 ` Nick Piggin
2006-05-31 16:22 ` Nick Piggin
2006-05-31 16:41 ` Linus Torvalds
2006-06-02 2:34 ` Nick Piggin
2006-06-02 2:39 ` Nick Piggin
2006-05-31 16:39 ` Linus Torvalds
2006-06-02 2:21 ` Nick Piggin
2006-05-31 23:59 ` Neil Brown
2006-05-31 15:09 ` Linus Torvalds
2006-05-31 15:09 ` Linus Torvalds
2006-05-31 18:13 ` Jens Axboe
2006-05-31 18:13 ` Jens Axboe
2006-05-31 18:26 ` Linus Torvalds
2006-05-31 18:26 ` Linus Torvalds
2006-05-30 5:36 ` Nick Piggin
2006-05-30 18:31 ` Hugh Dickins
2006-05-30 18:31 ` Hugh Dickins
2006-05-31 0:21 ` Nick Piggin
2006-05-31 0:21 ` Nick Piggin
2006-05-31 3:06 ` Hugh Dickins
2006-05-31 3:06 ` Hugh Dickins
2006-05-31 14:30 ` Hugh Dickins
2006-05-31 14:30 ` Hugh Dickins
2006-05-31 17:56 ` Jens Axboe
2006-05-31 17:56 ` Jens Axboe
2006-05-30 5:51 ` Josef Sipek
2006-05-30 5:51 ` Josef Sipek
2006-05-30 6:44 ` Nick Piggin
2006-05-30 6:44 ` Nick Piggin
2006-05-30 6:50 ` Nick Piggin
2006-05-30 6:50 ` Nick Piggin
2006-05-30 13:12 ` Josef Sipek
2006-05-30 13:12 ` Josef Sipek
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=447DAEDE.5070305@yahoo.com.au \
--to=nickpiggin@yahoo.com.au \
--cc=andrea@suse.de \
--cc=axboe@suse.de \
--cc=hugh@veritas.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mason@suse.com \
--cc=torvalds@osdl.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.