From: David Howells <dhowells@redhat.com>
To: torvalds@osdl.org, akpm@linux-foundation.org
Cc: cluster-devel@redhat.com, nfsv4@linux-nfs.org,
linux-kernel@vger.kernel.org, linux-cachefs@redhat.com,
jens.axboe@oracle.com, linux-fsdevel@vger.kernel.org,
linux-cifs-client@lists.samba.org
Subject: [GIT PULL v2] Fix bugs in Slow-work, FS-Cache and CacheFiles
Date: Fri, 20 Nov 2009 23:01:23 +0000 [thread overview]
Message-ID: <17633.1258758083@redhat.com> (raw)
In-Reply-To: <13590.1258714119@redhat.com>
Hi Linus,
Could you pull the attached patches before 2.6.32 please? I've added three
one-liner patches to fix some silly bugs.
For the most part these patches are bug fixes for the slow-work, FS-Cache and
CacheFiles facilities, with a few patches to produce better debugging
information, and a couple of patches to slow work from Jens that all the rest
are built on top of.
These vastly improve the stability of FS-Cache under extremely high load -
especially when the system is running out of memory regularly. I wrote a
better test case:
http://people.redhat.com/~dhowells/slurp.c
which helped enormously in reproducing these bugs. Testing has involved
running repeated invocations of slurp over five NFS4 mounted directory trees
totalling ~40GB in N file spread over 100,000 dirs on a machine with 1GB of
RAM and 4GB of disk cache space. Note that slurp, being massively parallel,
will abandon a part of the tree if it hits any error (such as ENOMEM) - so not
all the data set will necessarily be used in any particular run.
The patches can also be downloaded as:
http://people.redhat.com/~dhowells/fscache/patches/fscache-fixes.tar.bz2
The changes don't affect very much outside of FS-Cache and its dependents (NFS,
AFS and 9P), but the slow-work changes do affect CIFS and GFS2.
Thanks,
David
---
The following changes since commit 66b00a7c93ec782d118d2c03bd599cfd041e80a1:
Linus Torvalds (1):
Merge branch 'fixes' of git://git.kernel.org/.../davej/cpufreq
are available in the git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-2.6-fscache.git master
David Howells (28):
SLOW_WORK: Wait for outstanding work items belonging to a module to clear
SLOW_WORK: Allow the work items to be viewed through a /proc file
SLOW_WORK: Allow the owner of a work item to determine if it is queued or not
SLOW_WORK: Allow a requeueable work item to sleep till the thread is needed
FS-Cache: Annotate slow-work runqueue proc lines for FS-Cache work items
FS-Cache: Allow the current state of all objects to be dumped
FS-Cache: Add counters for entry/exit to/from cache operation functions
FS-Cache: Clear netfs pointers in cookie after detaching object, not before
FS-Cache: Use radix tree preload correctly in tracking of pages to be stored
FS-Cache: Permit cache retrieval ops to be interrupted in the initial wait phase
FS-Cache: The object-available state can't rely on the cookie to be available
FS-Cache: Fix lock misorder in fscache_write_op()
FS-Cache: Don't delete pending pages from the page-store tracking tree
FS-Cache: Handle read request vs lookup, creation or other cache failure
FS-Cache: Handle pages pending storage that get evicted under OOM conditions
FS-Cache: Add a retirement stat counter
FS-Cache: Make sure FSCACHE_COOKIE_LOOKING_UP cleared on lookup failure
FS-Cache: Start processing an object's operations on that object's death
FS-Cache: Actually requeue an object when requested
CacheFiles: Don't write a full page if there's only a partial page to cache
CacheFiles: Handle truncate unlocking the page we're reading
CacheFiles: Mark parent directory locks as I_MUTEX_PARENT to keep lockdep happy
CacheFiles: Better showing of debugging information in active object problems
CacheFiles: Catch an overly long wait for an old active object
CacheFiles: Don't log lookup/create failing with ENOBUFS
SLOW_WORK: Fix CIFS to pass THIS_MODULE to slow_work_register_user()
SLOW_WORK: Fix GFS2 to #include <linux/module.h> before using THIS_MODULE
FS-Cache: Provide nop fscache_stat_d() if CONFIG_FSCACHE_STATS=n
Jens Axboe (3):
SLOW_WORK: Make slow_work_ops ->get_ref/->put_ref optional
SLOW_WORK: Add support for cancellation of slow work
SLOW_WORK: Add delayed_slow_work support
Documentation/filesystems/caching/fscache.txt | 110 +++++
Documentation/filesystems/caching/netfs-api.txt | 21 +-
Documentation/slow-work.txt | 160 +++++++-
fs/9p/cache.c | 14 +-
fs/afs/file.c | 15 +-
fs/cachefiles/interface.c | 32 ++-
fs/cachefiles/namei.c | 187 +++++++--
fs/cachefiles/rdwr.c | 128 ++++++-
fs/cifs/cifsfs.c | 2 +-
fs/fscache/Kconfig | 7 +
fs/fscache/Makefile | 1 +
fs/fscache/cache.c | 5 +
fs/fscache/cookie.c | 26 +-
fs/fscache/internal.h | 56 +++
fs/fscache/main.c | 6 +-
fs/fscache/object-list.c | 432 ++++++++++++++++++++
fs/fscache/object.c | 104 +++++-
fs/fscache/operation.c | 120 +++++--
fs/fscache/page.c | 273 ++++++++++---
fs/fscache/proc.c | 13 +
fs/fscache/stats.c | 94 ++++-
fs/gfs2/main.c | 4 +-
fs/gfs2/recovery.c | 2 +
fs/nfs/fscache.c | 10 +-
include/linux/fscache-cache.h | 40 ++-
include/linux/fscache.h | 27 ++
include/linux/slow-work.h | 72 ++++-
init/Kconfig | 10 +
kernel/Makefile | 1 +
kernel/slow-work-proc.c | 227 +++++++++++
kernel/slow-work.c | 494 +++++++++++++++++++++--
kernel/slow-work.h | 72 ++++
lib/radix-tree.c | 5 +-
33 files changed, 2505 insertions(+), 265 deletions(-)
create mode 100644 fs/fscache/object-list.c
create mode 100644 kernel/slow-work-proc.c
create mode 100644 kernel/slow-work.h
next prev parent reply other threads:[~2009-11-20 23:01 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-11-20 10:48 [GIT PULL] Fix bugs in Slow-work, FS-Cache and CacheFiles David Howells
2009-11-20 23:01 ` David Howells [this message]
2009-12-01 6:56 ` [PATCH] slow-work: Fix build bug in the !CONFIG_MODULES case Ingo Molnar
2009-12-01 7:32 ` Stephen Rothwell
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=17633.1258758083@redhat.com \
--to=dhowells@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=cluster-devel@redhat.com \
--cc=jens.axboe@oracle.com \
--cc=linux-cachefs@redhat.com \
--cc=linux-cifs-client@lists.samba.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=nfsv4@linux-nfs.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).