From: Nick Piggin <nickpiggin@yahoo.com.au>
To: Werner Almesberger <werner@almesberger.net>
Cc: Rajesh Venkatasubramanian <vrajesh@umich.edu>,
linux-kernel@vger.kernel.org
Subject: Re: [RFC] Generalize prio_tree (1/3)
Date: Mon, 15 Nov 2004 22:01:54 +1100 [thread overview]
Message-ID: <41988CA2.8050407@yahoo.com.au> (raw)
In-Reply-To: <20041115030750.L28802@almesberger.net>
Werner Almesberger wrote:
> Nick Piggin wrote:
>
>>I'm curious, how do you plan to use them for healthier barrier handling?
>
>
> Ah, you missed the great discussion on fsdevel and the BOF
> at OLS :-)
>
> http://marc.theaimsgroup.com/?t=108787649700005&r=1&w=2&n=34
> http://marc.theaimsgroup.com/?t=108809650200006&r=1&w=2&n=11
> http://marc.theaimsgroup.com/?l=linux-fsdevel&m=109107082406140&w=2
>
Ah OK. Interesting reading.
> This comes from prioritization of requests at the elevator.
> In order to honor priorities as much as possible, we need to
> keep barriers from affecting all requests in the queue.
>
> The idea is to ignore barriers unless requests separated by a
> barrier overlap, and at least one of them is a write. prio_tree
> is used to find those overlaps.
>
Hmm OK. I won't quiz you on the impelementation as I'm sure you've
thought it through, and I haven't :)
... but humor me, you _are_ ensuring the following doesn't get
reordered, say:
(write, sect 100), (barrier), (write, sect 200)
Right? It isn't clear from your description what you are intending
(and I'm too lazy to read the code at the moment!).
> That way, priorities are only affected by barriers if using
> some form of direct IO, with overlaps and writes. While this
> isn't perfect (i.e. someone else scribbling over our files can
> still spoil all the fun), it allows a much larger class of
> applications to enjoy the full benefits of priorities.
>
> Besides that, it also helps the elevator to do a better job for
> requests even without priorities, because it doesn't have to go
> FIFO whenever it sees a barrier.
>
Well it goes FIFO to the extent that the barrier definition requires:
all requests before the barrier are issued before any requests
after the barrier.
> See also section 3.6 of
> http://abiss.sourceforge.net/doc/abiss-lk.ps.gz
>
> The CPU overhead is actually quite marginal: in tests, the ABISS
> elevator would actually outperform AS in terms of CPU time
> spent (measured by sending a lot of random requests with AIO
> into a large queue). While such tests compare apples and oranges,
> they at least indicate that minimalizing the effect of barriers
> doesn't have a horrible performance impact.
>
Well it sounds interesting. Good luck with it...
No comment on your prio tree generalization, sorry. Other than: it
seems to be unfortunately quite ugly. Obviously better than duplicating
the code, but... it may just be worth holding onto it until it has
another user about to be merged as well (eg. add the patch to the front
of your ABISS elevator if you submit it to 2.6 or -mm).
But I don't have strong feelings on the matter. If Rajesh says its OK
to go ahead as is, that would be fine by me :)
Good luck!
Nick
next prev parent reply other threads:[~2004-11-15 11:02 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-11-15 2:56 [RFC] Generalize prio_tree (1/3) Werner Almesberger
2004-11-15 2:59 ` [RFC] Make MM use generalized prio_tree (2/3) Werner Almesberger
2004-11-15 3:05 ` [RFC] prio_tree debugging functions (3/3) Werner Almesberger
2004-11-15 4:30 ` [RFC] Generalize prio_tree (1/3) Nick Piggin
2004-11-15 6:07 ` Werner Almesberger
2004-11-15 11:01 ` Nick Piggin [this message]
2004-11-15 14:32 ` Werner Almesberger
2004-11-15 18:13 ` Rajesh Venkatasubramanian
2004-11-15 20:54 ` Werner Almesberger
2004-11-15 21:14 ` Rajesh Venkatasubramanian
2004-11-15 21:42 ` Werner Almesberger
2004-11-15 22:27 ` Rajesh Venkatasubramanian
2004-11-15 22:59 ` Werner Almesberger
2004-11-16 0:07 ` Rajesh Venkatasubramanian
2004-11-16 0:35 ` Werner Almesberger
2004-11-16 1:48 ` Rajesh Venkatasubramanian
2004-11-16 23:51 ` Generalize prio_tree, 2nd try Werner Almesberger
2004-11-17 1:28 ` Werner Almesberger
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=41988CA2.8050407@yahoo.com.au \
--to=nickpiggin@yahoo.com.au \
--cc=linux-kernel@vger.kernel.org \
--cc=vrajesh@umich.edu \
--cc=werner@almesberger.net \
/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