All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Theodore Ts'o" <tytso@mit.edu>
To: ksummit-discuss@lists.linuxfoundation.org
Cc: Matthew Wilcox <willy@infradead.org>
Subject: [Ksummit-discuss] [TECH TOPIC] Maple Tree
Date: Thu, 30 May 2019 02:12:11 -0400	[thread overview]
Message-ID: <20190530061211.GA31667@mit.edu> (raw)

From: Liam Howlett <Liam.Howlett@Oracle.com>,
      Matthew Wilcox <willy@infradead.org>

[ Note: The following abstract was submitted via the Linux Plumbers
  Conference website.  Per the instructions that were posted for the
  Maintainer's / Kernel Summit Call for Proposals[1], the proposal
  should also be posted on the ksummit-discuss list, so that people
  can comment on the proposal, and perhaps start a discussion before
  the summit.

  [1] https://lwn.net/Articles/788378/

  Please note that topic proposals for both the Kernel Summit and the
  Maintainer's Summit are still welcome, and the deadline has been
  extended to June 3rd. -- Ted ]

The Red-Black tree and Radix tree are used in many places in the
kernel to store ranges. Both of these trees have drawbacks when used
for ranges. The Red-Black tree requires writing your own insertion &
search code. It is also designed with the assumption that memory
accesses are cheap, which is no longer true. The Radix tree performs
acceptably well when ranges are aligned to a power of 2, but has awful
worst-case performance.

The Maple tree is a fast, cache efficient tree with a simple API. It
supports contiguous ranges efficiently, while suffering only minor
penalties for discontiguous ranges. Single entries are also supported
as a range of length one.

The Maple tree can optionally track free ranges to allow for more
efficient allocation. In order to allow it to be used as the basis for
the page cache, it will need support for search marks as well as
handling reclamation of shadow entries. Other potential users of the
Maple tree want more than the three search marks currently supported
by the Radix tree.

We want to discuss requirements with potential users of the Maple
tree, and to present development since the last Plumbers conference
where the broad outlines of the tree were first presented.

                 reply	other threads:[~2019-05-30  6:12 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=20190530061211.GA31667@mit.edu \
    --to=tytso@mit.edu \
    --cc=ksummit-discuss@lists.linuxfoundation.org \
    --cc=willy@infradead.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.