All of lore.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@caldera.de>
To: velco@fadata.bg, linux-kernel@vger.kernel.org, linux-mm@vger.kernel.org
Subject: [PATCH] updated version of radix-tree pagecache
Date: Sat, 5 Jan 2002 17:09:28 +0100	[thread overview]
Message-ID: <20020105170927.A25073@caldera.de> (raw)

I've just uploaded an updated version of Momchil Velikov's patch for a
scalable pagecache using radix trees.  The patch can be found at:

	ftp://ftp.kernel.org/pub/linux/kernel/people/hch/patches/v2.4/2.4.17/linux-2.4.17-ratpagecache.patch.gz

	ftp://ftp.kernel.org/pub/linux/kernel/people/hch/patches/v2.4/2.4.17/linux-2.4.17-ratpagecache.patch.bz2

It contains a number of fixed and improvements by Momchil and me.

The basic advantage over the old version (besides the fixes :)) is that
the radix tree implementation is now independand of struct page /
struct address_space and thus can easily be used in other code.



=== Changelog ===


Momchil Velikov:

  - It was possible to return a PG_locked page to the buddy
    allocator with a subsequent oops, if the call to rat_insert in
    __add_to_page_cache failed.  Thus the functions is changed as to
    avoid modifying the pages before rat_insert was
    successful. Somewhat paranoid, I changed add_page_cache_locked
    too.
  - shmem_writepage was causing an infinite looping deadlock, when a
    couple of processes was yielding for kswapd, _including kswapd
    itself_.
  - Initialized swapper_space. On some architectures the spinlock is
    initilized to 0 on some to 1, who knows maybe there are/will be
    others. I have no idea why this didn't break the test on OSDL's
    4- and 8-way boxes.

Me:

  - moved rat.c from mm/ to lib/.
  - new structure: rat_root containing root-node, height and gfp_mask.
  - changed rat_* arguments to struct rat_root * and void *.
  - change struct page * arguments to void *.
  - moved all declarations in rat.h that are not public to rat.c
  - replaced  page_cache_init() by ratcache_init() in rat.c.
  - rat_node slab handling moved to rat.c
  - in swap_state.c removed 0/NULL initializers that aren't needed.
  - replaced __find_get_page/__find_lock_page with non-prefixed versions.
  - added kdoc-style comments to rat.c.
  - fixed up whitespaces in function declarations to math Linux style.

             reply	other threads:[~2002-01-05 16:09 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-01-05 16:09 Christoph Hellwig [this message]
  -- strict thread matches above, loose matches on Subject: below --
2002-01-05 16:12 [PATCH] updated version of radix-tree pagecache Christoph Hellwig
2002-01-07 10:05 ` Peter Wächtler
2002-01-07 10:05   ` Peter Wächtler
2002-01-07 10:07   ` Momchil Velikov
2002-01-07 10:07     ` Momchil Velikov
2002-01-07 11:03   ` William Lee Irwin III
2002-01-07 11:03     ` William Lee Irwin III
2002-01-07 12:52     ` Daniel Phillips
2002-01-07 12:52       ` Daniel Phillips
2002-01-07 12:53     ` Daniel Phillips
2002-01-07 12:53       ` Daniel Phillips
2002-01-11 23:21     ` Pavel Machek
2002-01-11 23:21       ` Pavel Machek

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=20020105170927.A25073@caldera.de \
    --to=hch@caldera.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@vger.kernel.org \
    --cc=velco@fadata.bg \
    /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.