public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Werner Almesberger <werner@almesberger.net>
To: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: Rajesh Venkatasubramanian <vrajesh@umich.edu>,
	linux-kernel@vger.kernel.org
Subject: Re: [RFC] Generalize prio_tree (1/3)
Date: Mon, 15 Nov 2004 03:07:50 -0300	[thread overview]
Message-ID: <20041115030750.L28802@almesberger.net> (raw)
In-Reply-To: <419830FD.7000007@yahoo.com.au>; from nickpiggin@yahoo.com.au on Mon, Nov 15, 2004 at 03:30:53PM +1100

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

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.

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.

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.

- Werner

-- 
  _________________________________________________________________________
 / Werner Almesberger, Buenos Aires, Argentina     werner@almesberger.net /
/_http://www.almesberger.net/____________________________________________/

  reply	other threads:[~2004-11-15  6:08 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 [this message]
2004-11-15 11:01     ` Nick Piggin
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=20041115030750.L28802@almesberger.net \
    --to=werner@almesberger.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nickpiggin@yahoo.com.au \
    --cc=vrajesh@umich.edu \
    /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