| From | Subject | Date |
|---|---|---|
| Erez Zadok | [GIT PULL -mm] 00/25 Unionfs updates/cleanups/fixes
The following is a series of patches related to Unionfs. Aside from a few
minor cleanups/fixes, the two main changes are (1) lower nameidata support
so we can stack on nfsv4, and (2) un/likely optimizations. These patches
were tested (where appropriate) on our 2.6.23-rc8 latest code, as well as
the backports to 2.6.{22,21,20,19,18,9} on ext2/3/4, xfs, reiserfs,
nfs2/3/4, jffs2, ramfs, tmpfs, cramfs, and squashfs (where available). See
http://unionfs.filesystems.org/ to download backported unionfs...
| Sep 25, 11:09 pm 2007 |
| Erez Zadok | [PATCH 02/25] Unionfs: Remove unused #defines
From: Josef 'Jeff' Sipek <jsipek@cs.sunysb.edu>
Signed-off-by: Josef 'Jeff' Sipek <jsipek@cs.sunysb.edu>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
---
fs/unionfs/union.h | 4 ----
1 files changed, 0 insertions(+), 4 deletions(-)
diff --git a/fs/unionfs/union.h b/fs/unionfs/union.h
index 1cb2e1d..140b8ae 100644
--- a/fs/unionfs/union.h
+++ b/fs/unionfs/union.h
@@ -437,10 +437,6 @@ static inline int is_robranch(const struct dentry *dentry)
#define UNIONFS_DIR_OPAQUE_N...
| Sep 25, 11:09 pm 2007 |
| Erez Zadok | [PATCH 25/25] Unionfs: use poison.h for safe poison pointers
This also fixes a compile warning on 64-bit systems.
Signed-off-by: Josef 'Jeff' Sipek <jsipek@cs.sunysb.edu>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
---
fs/unionfs/debug.c | 16 ++++++----------
fs/unionfs/union.h | 1 +
2 files changed, 7 insertions(+), 10 deletions(-)
diff --git a/fs/unionfs/debug.c b/fs/unionfs/debug.c
index 09b52ce..b103eb9 100644
--- a/fs/unionfs/debug.c
+++ b/fs/unionfs/debug.c
@@ -25,14 +25,6 @@
} \
} while (0)
-#if BITS_PER_LO...
| Sep 25, 11:10 pm 2007 |
| Erez Zadok | [PATCH 04/25] Unionfs: cache-coherency fixes
From: Olivier Blin <blino@mandriva.com>
Do not update mtime if there is no upper branch for the inode. This
prevents from calling unionfs_lower_inode_idx() with a negative index, which
triggers a bug.
Signed-off-by: Olivier Blin <blino@mandriva.com>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
---
fs/unionfs/fanout.h | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/fs/unionfs/fanout.h b/fs/unionfs/fanout.h
index afeb9f6..51aa0de 100644
--- a/fs/u...
| Sep 25, 11:09 pm 2007 |
| Erez Zadok | [PATCH 01/25] Unionfs: Simplify unionfs_get_nlinks
From: Josef 'Jeff' Sipek <jsipek@cs.sunysb.edu>
Since we set the right value for d_type in readdir, there's really no point
in having to calculate the number of directory links. Some on-disk
filesystems don't even store the number of links for directories.
Signed-off-by: Josef 'Jeff' Sipek <jsipek@cs.sunysb.edu>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
---
fs/unionfs/subr.c | 41 +++++++----------------------------------
1 files changed, 7 insertions(+), 34 deletions(-...
| Sep 25, 11:09 pm 2007 |
| Erez Zadok | [PATCH 20/25] Unionfs: add un/likely conditionals on rename ...
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
---
fs/unionfs/rename.c | 96 +++++++++++++++++++++++++-------------------------
1 files changed, 48 insertions(+), 48 deletions(-)
diff --git a/fs/unionfs/rename.c b/fs/unionfs/rename.c
index 7b8fe39..92c4515 100644
--- a/fs/unionfs/rename.c
+++ b/fs/unionfs/rename.c
@@ -39,7 +39,7 @@ static int __unionfs_rename(struct inode *old_dir, struct dentry *old_dentry,
create_parents(new_dentry->d_parent->d_inode,
new_dentry, ...
| Sep 25, 11:09 pm 2007 |
| Erez Zadok | [PATCH 18/25] Unionfs: add un/likely conditionals on super ops
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
---
fs/unionfs/main.c | 98 ++++++++++++++++++++++++++-------------------------
fs/unionfs/super.c | 90 ++++++++++++++++++++++++------------------------
2 files changed, 95 insertions(+), 93 deletions(-)
diff --git a/fs/unionfs/main.c b/fs/unionfs/main.c
index 8595750..82cb35a 100644
--- a/fs/unionfs/main.c
+++ b/fs/unionfs/main.c
@@ -32,13 +32,13 @@ static void unionfs_fill_inode(struct dentry *dentry,
for (bindex = bstart; bindex ...
| Sep 25, 11:09 pm 2007 |
| Erez Zadok | [PATCH 09/25] Unionfs: add un/likely conditionals on common ...
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
---
fs/unionfs/commonfops.c | 94 +++++++++++++++++++++++-----------------------
1 files changed, 47 insertions(+), 47 deletions(-)
diff --git a/fs/unionfs/commonfops.c b/fs/unionfs/commonfops.c
index e69ccf6..db8f064 100644
--- a/fs/unionfs/commonfops.c
+++ b/fs/unionfs/commonfops.c
@@ -64,7 +64,7 @@ retry:
tmp_dentry = lookup_one_len(name, lower_dentry->d_parent,
nlen);
- if (IS_ERR(tmp_dentry)) {
+ if (unlikely(IS_E...
| Sep 25, 11:09 pm 2007 |
| Erez Zadok | [PATCH 16/25] Unionfs: add un/likely conditionals on inode ops
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
---
fs/unionfs/inode.c | 160 ++++++++++++++++++++++++++--------------------------
1 files changed, 80 insertions(+), 80 deletions(-)
diff --git a/fs/unionfs/inode.c b/fs/unionfs/inode.c
index 7ee4760..7ae4a25 100644
--- a/fs/unionfs/inode.c
+++ b/fs/unionfs/inode.c
@@ -35,7 +35,7 @@ static int unionfs_create(struct inode *parent, struct dentry *dentry,
unionfs_lock_dentry(dentry->d_parent);
valid = __unionfs_d_revalidate_chain(dentry-...
| Sep 25, 11:09 pm 2007 |
| Erez Zadok | [PATCH 10/25] Unionfs: add un/likely conditionals on copyup ...
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
---
fs/unionfs/copyup.c | 102 +++++++++++++++++++++++++-------------------------
1 files changed, 51 insertions(+), 51 deletions(-)
diff --git a/fs/unionfs/copyup.c b/fs/unionfs/copyup.c
index 23ac4c8..e3c5f15 100644
--- a/fs/unionfs/copyup.c
+++ b/fs/unionfs/copyup.c
@@ -36,14 +36,14 @@ static int copyup_xattrs(struct dentry *old_lower_dentry,
/* query the actual size of the xattr list */
list_size = vfs_listxattr(old_lower_dentry, N...
| Sep 25, 11:09 pm 2007 |
| Erez Zadok | [PATCH 11/25] Unionfs: add un/likely conditionals on debug ops
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
---
fs/unionfs/debug.c | 108 +++++++++++++++++++++++++++------------------------
1 files changed, 57 insertions(+), 51 deletions(-)
diff --git a/fs/unionfs/debug.c b/fs/unionfs/debug.c
index 9546a41..09b52ce 100644
--- a/fs/unionfs/debug.c
+++ b/fs/unionfs/debug.c
@@ -56,19 +56,19 @@ void __unionfs_check_inode(const struct inode *inode,
sb = inode->i_sb;
istart = ibstart(inode);
iend = ibend(inode);
- if (istart > iend) {
+ if...
| Sep 25, 11:09 pm 2007 |
| Erez Zadok | [PATCH 13/25] Unionfs: add un/likely conditionals on dir ops
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
---
fs/unionfs/dirfops.c | 22 +++++++++++-----------
fs/unionfs/dirhelper.c | 30 +++++++++++++++---------------
2 files changed, 26 insertions(+), 26 deletions(-)
diff --git a/fs/unionfs/dirfops.c b/fs/unionfs/dirfops.c
index c923e58..fa2df88 100644
--- a/fs/unionfs/dirfops.c
+++ b/fs/unionfs/dirfops.c
@@ -63,7 +63,7 @@ static int unionfs_filldir(void *dirent, const char *name, int namelen,
off_t pos = rdstate2offset(buf->rdstate...
| Sep 25, 11:09 pm 2007 |
| Erez Zadok | [PATCH 12/25] Unionfs: add un/likely conditionals on dentry ...
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
---
fs/unionfs/dentry.c | 68 ++++++++++++++++++++++++++------------------------
1 files changed, 35 insertions(+), 33 deletions(-)
diff --git a/fs/unionfs/dentry.c b/fs/unionfs/dentry.c
index 52bcb18..3f3a18d 100644
--- a/fs/unionfs/dentry.c
+++ b/fs/unionfs/dentry.c
@@ -45,7 +45,7 @@ static bool __unionfs_d_revalidate_one(struct dentry *dentry,
verify_locked(dentry);
/* if the dentry is unhashed, do NOT revalidate */
- if (d_delete...
| Sep 25, 11:09 pm 2007 |
| Erez Zadok | [PATCH 17/25] Unionfs: add un/likely conditionals on lookup ...
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
---
fs/unionfs/lookup.c | 44 ++++++++++++++++++++++----------------------
1 files changed, 22 insertions(+), 22 deletions(-)
diff --git a/fs/unionfs/lookup.c b/fs/unionfs/lookup.c
index 2109714..92b5e0a 100644
--- a/fs/unionfs/lookup.c
+++ b/fs/unionfs/lookup.c
@@ -59,7 +59,7 @@ static noinline int is_opaque_dir(struct dentry *dentry, int bindex)
mutex_unlock(&lower_inode->i_mutex);
- if (IS_ERR(wh_lower_dentry)) {
+ if (unl...
| Sep 25, 11:09 pm 2007 |
| Erez Zadok | [PATCH 22/25] Unionfs: add un/likely conditionals on common ...
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
---
fs/unionfs/sioq.c | 4 ++--
fs/unionfs/subr.c | 26 +++++++++++++-------------
2 files changed, 15 insertions(+), 15 deletions(-)
diff --git a/fs/unionfs/sioq.c b/fs/unionfs/sioq.c
index 2a8c88e..35d9fc3 100644
--- a/fs/unionfs/sioq.c
+++ b/fs/unionfs/sioq.c
@@ -28,7 +28,7 @@ int __init init_sioq(void)
int err;
superio_workqueue = create_workqueue("unionfs_siod");
- if (!IS_ERR(superio_workqueue))
+ if (unlikely(!IS_ERR(supe...
| Sep 25, 11:10 pm 2007 |
| Erez Zadok | [PATCH 15/25] Unionfs: add un/likely conditionals on fileops
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
---
fs/unionfs/file.c | 38 +++++++++++++++++++-------------------
1 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/fs/unionfs/file.c b/fs/unionfs/file.c
index d8eaaa5..06ca1fa 100644
--- a/fs/unionfs/file.c
+++ b/fs/unionfs/file.c
@@ -24,13 +24,13 @@ static ssize_t unionfs_read(struct file *file, char __user *buf,
int err;
unionfs_read_lock(file->f_path.dentry->d_sb);
- if ((err = unionfs_file_revalidate(file, f...
| Sep 25, 11:09 pm 2007 |
| Erez Zadok | [PATCH 06/25] Unionfs: minor coding style updates
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
---
fs/unionfs/debug.c | 6 ++++--
fs/unionfs/dentry.c | 2 +-
fs/unionfs/inode.c | 14 ++++++++------
fs/unionfs/main.c | 4 ++--
fs/unionfs/union.h | 2 +-
5 files changed, 16 insertions(+), 12 deletions(-)
diff --git a/fs/unionfs/debug.c b/fs/unionfs/debug.c
index f678534..2d15fb0 100644
--- a/fs/unionfs/debug.c
+++ b/fs/unionfs/debug.c
@@ -467,7 +467,8 @@ void __show_dinode_times(const struct dentry *dentry,
lower_...
| Sep 25, 11:09 pm 2007 |
| Erez Zadok | [PATCH 23/25] Unionfs: add un/likely conditionals on unlink ...
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
---
fs/unionfs/unlink.c | 32 ++++++++++++++++----------------
1 files changed, 16 insertions(+), 16 deletions(-)
diff --git a/fs/unionfs/unlink.c b/fs/unionfs/unlink.c
index 3924f7f..33d08d9 100644
--- a/fs/unionfs/unlink.c
+++ b/fs/unionfs/unlink.c
@@ -26,13 +26,13 @@ static int unionfs_unlink_whiteout(struct inode *dir, struct dentry *dentry)
int bindex;
int err = 0;
- if ((err = unionfs_partial_lookup(dentry)))
+ if (unlikely((e...
| Sep 25, 11:10 pm 2007 |
| Erez Zadok | [PATCH 07/25] Unionfs: add lower nameidata debugging support
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
---
fs/unionfs/debug.c | 20 ++++++++++++++++++++
fs/unionfs/dentry.c | 4 +++-
fs/unionfs/inode.c | 8 +++++++-
fs/unionfs/union.h | 4 ++++
4 files changed, 34 insertions(+), 2 deletions(-)
diff --git a/fs/unionfs/debug.c b/fs/unionfs/debug.c
index 2d15fb0..9546a41 100644
--- a/fs/unionfs/debug.c
+++ b/fs/unionfs/debug.c
@@ -415,6 +415,26 @@ void __unionfs_check_file(const struct file *file,
__unionfs_check_dentry(dentry,fn...
| Sep 25, 11:09 pm 2007 |
| Erez Zadok | [PATCH 08/25] Unionfs: lower nameidata support for nfsv4
Pass nameidata structures as needed to the lower file system, support
LOOKUP_ACCESS/OPEN intents. This makes unionfs work on top of nfsv4.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Acked-by: Josef 'Jeff' Sipek <jsipek@cs.sunysb.edu>
---
fs/unionfs/dentry.c | 11 +++++++++--
fs/unionfs/inode.c | 8 +++++++-
fs/unionfs/lookup.c | 20 +++++++++++++++++---
3 files changed, 33 insertions(+), 6 deletions(-)
diff --git a/fs/unionfs/dentry.c b/fs/unionfs/dentry.c
index b21f1e...
| Sep 25, 11:09 pm 2007 |
| Erez Zadok | [PATCH 19/25] Unionfs: add un/likely conditionals on mmap ops
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
---
fs/unionfs/mmap.c | 28 ++++++++++++++--------------
1 files changed, 14 insertions(+), 14 deletions(-)
diff --git a/fs/unionfs/mmap.c b/fs/unionfs/mmap.c
index 37af979..1cea075 100644
--- a/fs/unionfs/mmap.c
+++ b/fs/unionfs/mmap.c
@@ -84,7 +84,7 @@ static int unionfs_writepage(struct page *page, struct writeback_control *wbc)
* resort to RAIF's page pointer flipping trick.)
*/
lower_page = find_lock_page(lower_inode->i_mapp...
| Sep 25, 11:09 pm 2007 |
| Erez Zadok | [PATCH 03/25] Unionfs: display informational messages only i...
This is to avoid filling the console/logs with messages that are primarily
of debugging use.
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Acked-by: Josef 'Jeff' Sipek <jsipek@cs.sunysb.edu>
---
fs/unionfs/commonfops.c | 4 ++--
fs/unionfs/dentry.c | 6 +++---
fs/unionfs/union.h | 4 ++++
3 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/fs/unionfs/commonfops.c b/fs/unionfs/commonfops.c
index 87cbb09..e69ccf6 100644
--- a/fs/unionfs/commonfops.c
+++...
| Sep 25, 11:09 pm 2007 |
| Erez Zadok | [PATCH 21/25] Unionfs: add un/likely conditionals on readdir...
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
---
fs/unionfs/rdstate.c | 15 ++++++++-------
1 files changed, 8 insertions(+), 7 deletions(-)
diff --git a/fs/unionfs/rdstate.c b/fs/unionfs/rdstate.c
index 0a18d5c..7ec7f95 100644
--- a/fs/unionfs/rdstate.c
+++ b/fs/unionfs/rdstate.c
@@ -45,7 +45,7 @@ int unionfs_init_filldir_cache(void)
void unionfs_destroy_filldir_cache(void)
{
- if (unionfs_filldir_cachep)
+ if (likely(unionfs_filldir_cachep))
kmem_cache_destroy(unionfs_fill...
| Sep 25, 11:10 pm 2007 |
| Erez Zadok | [PATCH 14/25] Unionfs: add un/likely conditionals on headers
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
---
fs/unionfs/fanout.h | 13 ++++++++-----
fs/unionfs/union.h | 4 ++--
2 files changed, 10 insertions(+), 7 deletions(-)
diff --git a/fs/unionfs/fanout.h b/fs/unionfs/fanout.h
index 51aa0de..6405399 100644
--- a/fs/unionfs/fanout.h
+++ b/fs/unionfs/fanout.h
@@ -308,17 +308,20 @@ static inline void unionfs_copy_attr_times(struct inode *upper)
int bindex;
struct inode *lower;
- if (!upper || ibstart(upper) < 0)
+ if (unlikel...
| Sep 25, 11:09 pm 2007 |
| Erez Zadok | [PATCH 24/25] Unionfs: add un/likely conditionals on xattr ops
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
---
fs/unionfs/xattr.c | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/fs/unionfs/xattr.c b/fs/unionfs/xattr.c
index 7f77d7d..bd2de06 100644
--- a/fs/unionfs/xattr.c
+++ b/fs/unionfs/xattr.c
@@ -23,14 +23,14 @@ void *unionfs_xattr_alloc(size_t size, size_t limit)
{
void *ptr;
- if (size > limit)
+ if (unlikely(size > limit))
return ERR_PTR(-E2BIG);
if (!size) /* size request, no buffe...
| Sep 25, 11:10 pm 2007 |
| Erez Zadok | [PATCH 05/25] Unionfs: cast page->index loff_t before shifting
Fixes bugs in number promotion/demotion computation, as per
<http://lkml.org/lkml/2007/9/20/17>
Signed-off-by: Erez Zadok <ezk@cs.sunysb.edu>
Acked-by: Josef 'Jeff' Sipek <jsipek@cs.sunysb.edu>
---
fs/unionfs/mmap.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/fs/unionfs/mmap.c b/fs/unionfs/mmap.c
index 88ef6a6..37af979 100644
--- a/fs/unionfs/mmap.c
+++ b/fs/unionfs/mmap.c
@@ -179,7 +179,8 @@ static int unionfs_do_readpage(struct file *file, ...
| Sep 25, 11:09 pm 2007 |
| Christoph Lameter | [08/17] GFP_VFALLBACK: Allow fallback of compound pages to v...
Add a new gfp flag
__GFP_VFALLBACK
If specified during a higher order allocation then the system will fall
back to vmap and attempt to create a virtually contiguous area instead of
a physically contiguous area. In many cases the virtually contiguous area
can stand in for the physically contiguous area (with some loss of
performance).
The pages used for VFALLBACK are marked with a new flag
PageVcompound(page). The mark is necessary since we have to know upon
free if we have to destroy a virtu...
| Sep 25, 7:42 pm 2007 |
| Christoph Lameter | [12/17] Virtual Compound page allocation from interrupt cont...
In an interrupt context we cannot wait for the vmlist_lock in
__get_vm_area_node(). So use a trylock instead. If the trylock fails
then the atomic allocation will fail and subsequently be retried.
This only works because the flush_cache_vunmap in use for
allocation is never performing any IPIs in contrast to flush_tlb_...
in use for freeing. flush_cache_vunmap is only used on architectures
with a virtually mapped cache (xtensa, pa-risc).
[Note: Nick Piggin is working on a scheme to make this sim...
| Sep 25, 7:42 pm 2007 |
| Christoph Lameter | [16/17] Allow virtual fallback for buffer_heads
This is in particular useful for large I/Os because it will allow > 100
allocs from the SLUB fast path without having to go to the page allocator.
Signed-off-by: Christoph Lameter <clameter@sgi.com>
---
fs/buffer.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Index: linux-2.6/fs/buffer.c
===================================================================
--- linux-2.6.orig/fs/buffer.c 2007-09-18 15:44:37.000000000 -0700
+++ linux-2.6/fs/buffer.c 2007-09-18 15:44:51.000...
| Sep 25, 7:42 pm 2007 |
| Christoph Lameter | [13/17] Virtual compound page freeing in interrupt context
If we are in an interrupt context then simply defer the free via a workqueue.
Removing a virtual mappping *must* be done with interrupts enabled
since tlb_xx functions are called that rely on interrupts for
processor to processor communications.
Signed-off-by: Christoph Lameter <clameter@sgi.com>
---
mm/page_alloc.c | 23 ++++++++++++++++++++++-
1 file changed, 22 insertions(+), 1 deletion(-)
Index: linux-2.6/mm/page_alloc.c
=========================================================...
| Sep 25, 7:42 pm 2007 |
| Christoph Lameter | [10/17] Use GFP_VFALLBACK for sparsemem.
Sparsemem currently attempts first to do a physically contiguous mapping
and then falls back to vmalloc. The same thing can now be accomplished
using GFP_VFALLBACK.
Signed-off-by: Christoph Lameter <clameter@sgi.com>
---
mm/sparse.c | 23 +++--------------------
1 file changed, 3 insertions(+), 20 deletions(-)
Index: linux-2.6/mm/sparse.c
===================================================================
--- linux-2.6.orig/mm/sparse.c 2007-09-19 18:05:34.000000000 -0700
+++ linux-2...
| Sep 25, 7:42 pm 2007 |
| Christoph Lameter | [17/17] Allow virtual fallback for dentries
Signed-off-by: Christoph Lameter <clameter@sgi.com>
---
fs/dcache.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
Index: linux-2.6/fs/dcache.c
===================================================================
--- linux-2.6.orig/fs/dcache.c 2007-09-24 16:47:43.000000000 -0700
+++ linux-2.6/fs/dcache.c 2007-09-24 17:03:15.000000000 -0700
@@ -2118,7 +2118,8 @@ static void __init dcache_init(unsigned
* of the dcache.
*/
dentry_cache = KMEM_CACHE(dentry,
- SLAB_RE...
| Sep 25, 7:42 pm 2007 |
| Christoph Lameter | [09/17] VFALLBACK: Debugging aid
Virtual fallbacks are rare and thus subtle bugs may creep in if we do not
test the fallbacks. CONFIG_VFALLBACK_ALWAYS makes all GFP_VFALLBACK
allocations fall back to virtual mapping.
Signed-off-by: Christoph Lameter <clameter@sgi.com>
---
lib/Kconfig.debug | 11 +++++++++++
mm/page_alloc.c | 6 ++++++
2 files changed, 17 insertions(+)
Index: linux-2.6/mm/page_alloc.c
===================================================================
--- linux-2.6.orig/mm/page_alloc.c 2007-09-...
| Sep 25, 7:42 pm 2007 |
| Christoph Lameter | [14/17] Allow bit_waitqueue to wait on a bit in a vmalloc area
If bit waitqueue is passed a virtual address then it must use
vmalloc_to_page instead of virt_to_page to get to the page struct.
Signed-off-by: Christoph Lameter <clameter@sgi.com>
---
kernel/wait.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Index: linux-2.6/kernel/wait.c
===================================================================
--- linux-2.6.orig/kernel/wait.c 2007-09-20 19:03:42.000000000 -0700
+++ linux-2.6/kernel/wait.c 2007-09-20 19:07:42.000000000 -0700
@...
| Sep 25, 7:42 pm 2007 |
| Christoph Lameter | [15/17] SLUB: Support virtual fallback via SLAB_VFALLBACK
SLAB_VFALLBACK can be specified for selected slab caches. If fallback is
available then the conservative settings for higher order allocations are
overridden. We then request an order that can accomodate at mininum
100 objects. The size of an individual slab allocation is allowed to reach
up to 256k (order 6 on i386, order 4 on IA64).
Implementing fallback requires special handling of virtual mappings in
the free path. However, the impact is minimal since we already check the
address if its NULL or...
| Sep 25, 7:42 pm 2007 |
| Christoph Lameter | [04/17] is_vmalloc_addr(): Check if an address is within the...
is_vmalloc_addr() is used in a couple of places. Add a version to vmalloc.h
and replace the other checks.
Signed-off-by: Christoph Lameter <clameter@sgi.com>
---
drivers/net/cxgb3/cxgb3_offload.c | 4 +---
fs/ntfs/malloc.h | 3 +--
fs/proc/kcore.c | 2 +-
fs/xfs/linux-2.6/kmem.c | 3 +--
fs/xfs/linux-2.6/xfs_buf.c | 3 +--
include/linux/mm.h | 8 ++++++++
mm/sparse.c | 10 +------...
| Sep 25, 7:42 pm 2007 |
| Christoph Lameter | [07/17] vmalloc_address(): Determine vmalloc address from pa...
Sometimes we need to figure out which vmalloc address is in use
for a certain page struct. There is no easy way to figure out
the vmalloc address from the page struct. So simply search through
the kernel page tables to find the address. This is a fairly expensive
process. Use sparingly (or provide a better implementation).
Signed-off-by: Christoph Lameter <clameter@sgi.com>
---
include/linux/mm.h | 1
mm/vmalloc.c | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++
2 ...
| Sep 25, 7:42 pm 2007 |
| Christoph Lameter | [11/17] GFP_VFALLBACK for zone wait table.
Currently vmalloc is used for the zone wait table possibly generating the need
to generate lots of TLBs to access the tables. We can now use GFP_VFALLBACK to
attempt the use of a physically contiguous page that can then use the large
kernel TLBs.
Signed-off-by: Christoph Lameter <clameter@sgi.com>
---
mm/page_alloc.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
Index: linux-2.6/mm/page_alloc.c
===================================================================
--- linux...
| Sep 25, 7:42 pm 2007 |
| Christoph Lameter | [06/17] vunmap: return page array passed on vmap()
Make vunmap return the page array that was used at vmap. This is useful
if one has no structures to track the page array but simply stores the
virtual address somewhere. The disposition of the page array can be
decided upon after vunmap. vfree() may now also be used instead of
vunmap which will release the page array after vunmap'ping it.
As noted by Kamezawa: The same subsystem that provides the page array
to vmap must must use its own method to dispose of the page array.
If vfree() is called to...
| Sep 25, 7:42 pm 2007 |
| Christoph Lameter | [05/17] vmalloc: clean up page array indexing
The page array is repeatedly indexed both in vunmap and vmalloc_area_node().
Add a temporary variable to make it easier to read (and easier to patch
later).
Signed-off-by: Christoph Lameter <clameter@sgi.com>
---
mm/vmalloc.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
Index: linux-2.6/mm/vmalloc.c
===================================================================
--- linux-2.6.orig/mm/vmalloc.c 2007-09-18 13:22:16.000000000 -0700
+++ linux-2.6/mm/vmallo...
| Sep 25, 7:42 pm 2007 |
| Christoph Lameter | [01/17] Vmalloc: Move vmalloc_to_page to mm/vmalloc.
We already have page table manipulation for vmalloc in vmalloc.c. Move the
vmalloc_to_page() function there as well.
Move the definitions for vmalloc related functions in mm.h to before the
functions dealing with compound pages because they will soon need to use
them.
Signed-off-by: Christoph Lameter <clameter@sgi.com>
---
include/linux/mm.h | 5 +++--
mm/memory.c | 40 ----------------------------------------
mm/vmalloc.c | 38 ++++++++++++++++++++++++++++++++++++++...
| Sep 25, 7:42 pm 2007 |
| Christoph Lameter | [03/17] i386: Resolve dependency of asm-i386/pgtable.h on hi...
pgtable.h does not include highmem.h but uses various constants from
highmem.h. We cannot include highmem.h because highmem.h will in turn
include many other include files that also depend on pgtable.h
So move the definitions from highmem.h into pgtable.h.
Signed-off-by: Christoph Lameter <clameter@sgi.com>
---
include/asm-i386/highmem.h | 6 ------
include/asm-i386/pgtable.h | 8 ++++++++
2 files changed, 8 insertions(+), 6 deletions(-)
Index: linux-2.6/include/asm-i386/highme...
| Sep 25, 7:42 pm 2007 |
| Christoph Lameter | [02/17] vmalloc: add const
Make vmalloc functions work the same way as kfree() and friends that
take a const void * argument.
Signed-off-by: Christoph Lameter <clameter@sgi.com>
---
include/linux/mm.h | 4 ++--
include/linux/vmalloc.h | 6 +++---
mm/vmalloc.c | 16 ++++++++--------
3 files changed, 13 insertions(+), 13 deletions(-)
Index: linux-2.6/mm/vmalloc.c
===================================================================
--- linux-2.6.orig/mm/vmalloc.c 2007-09-24 16:58:37.00000000...
| Sep 25, 7:42 pm 2007 |
| Christoph Lameter | [00/17] Virtual Compound Page Support V1
RFC->V1
- Support for all compound functions for virtual compound pages
(including the compound_nth_page() necessary for LBS mmap support)
- Fix various bugs
- Fix i386 build
Currently there is a strong tendency to avoid larger page allocations in
the kernel because of past fragmentation issues and the current
defragmentation methods are still evolving. It is not clear to what extend
they can provide reliable allocations for higher order pages (plus the
definition of "reliable" seems to be i...
| Sep 25, 7:42 pm 2007 |
| Christoph Lameter | [patch 4/4] ext4: fix rec_len overflow for 64KB block size
[4/4] ext4: fix rec_len overflow
- prevent rec_len from overflow with 64KB blocksize
Signed-off-by: Takashi Sato <sho@tnes.nec.co.jp>
Signed-off-by: Mingming Cao <cmm@us.ibm.com>
---
fs/ext4/dir.c | 11 ++++--
fs/ext4/namei.c | 88 +++++++++++++++++++++++++++++++++++++++---------
include/linux/ext4_fs.h | 9 ++++
3 files changed, 90 insertions(+), 18 deletions(-)
Index: linux-2.6.23-rc8-mm1/fs/ext4/dir.c
==========================================...
| Sep 25, 7:30 pm 2007 |
| Christoph Lameter | [patch 2/4] ext2: fix rec_len overflow for 64KB block size
[2/4] ext2: fix rec_len overflow
- prevent rec_len from overflow with 64KB blocksize
Signed-off-by: Takashi Sato <sho@tnes.nec.co.jp>
Signed-off-by: Mingming Cao <cmm@us.ibm.com>
Signed-off-by: Christoph Lameter <clameter@sgi.com>
---
fs/ext2/dir.c | 46 ++++++++++++++++++++++++++++++++++++----------
include/linux/ext2_fs.h | 13 +++++++++++++
2 files changed, 49 insertions(+), 10 deletions(-)
Index: linux-2.6.23-rc8-mm1/fs/ext2/dir.c
==============...
| Sep 25, 7:30 pm 2007 |
| Andreas Dilger | Re: [patch 2/4] ext2: fix rec_len overflow for 64KB block size
Note that we just got a cleaner implemantation of this code on the ext4
mailing list from Jan Kara yesterday. Please use that one instead, in
thread "Avoid rec_len overflow with 64KB block size" instead.
Cheers, Andreas
--
Andreas Dilger
Principal Software Engineer
Cluster File Systems, Inc.
-
| Sep 25, 8:42 pm 2007 |
| Christoph Lameter | [patch 3/4] ext3: fix rec_len overflow with 64KB block size
Prevent rec_len from overflow with 64KB blocksize
Signed-off-by: Takashi Sato <sho@tnes.nec.co.jp>
Signed-off-by: Mingming Cao <cmm@us.ibm.com>
Signed-off-by: Christoph Lameter <clameter@sgi.com>
---
fs/ext3/dir.c | 13 ++++---
fs/ext3/namei.c | 88 +++++++++++++++++++++++++++++++++++++++---------
include/linux/ext3_fs.h | 9 ++++
3 files changed, 91 insertions(+), 19 deletions(-)
Index: linux-2.6.23-rc8-mm1/fs/ext3/dir.c
==========================...
| Sep 25, 7:30 pm 2007 |
| Christoph Lameter | [patch 1/4] Increase limits for 64k page size support for Ex...
[This patch allows architectures that use 64k blocksizes--like IA64 and
PPC64--to use 64k blocks on ext filesystems]
The patches to support blocksizes up to PAGESIZE, max 64KB for ext2/3/4,\
were originally from Takashi Sato.
http://marc.info/?l=linux-ext4&m=115768873518400&w=2
It's quite simple to support large block size in ext2/3/4, mostly just
enlarge the block size limit. But it is NOT possible to have 64kB
blocksize on ext2/3/4 without some changes to the directory handling
code. ...
| Sep 25, 7:30 pm 2007 |
| Christoph Lameter | [patch 0/4] 64k pagesize/blocksize fixes
Attached the fixes necessary to support 64k pagesize/blocksize. I think these are useful
independent of the large blocksize patchset since there are architectures that support
64k page size and that could use these large buffer sizes without the large buffersize
patchset.
Are these patches in the right shape to be merged? I rediffed these against 2.6.32-rc8-mm1.
I had to fix some things in the second patch (ext2) that may need some review since the
way that commits work changed.
--
-
| Sep 25, 7:30 pm 2007 |
| previous day | today | next day |
|---|---|---|
| September 24, 2007 | September 25, 2007 | September 26, 2007 |
| monstr | [PATCH 11/60] microblaze_v4: cache support |
| Andrew Morton | Re: x86: 4kstacks default |
| Greg KH | [GIT PATCH] driver core patches against 2.6.24 |
| Alan Cox | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
git: | |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Ben Hutchings | Re: [GIT]: Networking |
| Gerrit Renker | [PATCH 03/37] dccp: List management for new feature negotiation |
| Jiri Olsa | [PATCHv5 0/2] net: fix race in the receive/select |
