linux-fsdevel mailing list

FromSubjectsort iconDate
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 daytodaynext day
September 24, 2007September 25, 2007September 26, 2007