On Tue, 30 Mar 2010 20:36:17 +0800, jing zhang <zj.barak@xxxxxxxxx> wrote: > From: Jing Zhang <zj.barak@xxxxxxxxx> > > Date: Tue Mar 30 20:35:22 2010 > > With the added cache, better group locality may be earned when > allocating blocks. > > Cc: Theodore Ts'o <tytso@xxxxxxx> > Cc: Andreas Dilger <adilger@xxxxxxx> > Cc: Dave Kleikamp <shaggy@xxxxxxxxxxxxxxxxxx> > Cc: "Aneesh Kumar K. V" <aneesh.kumar@xxxxxxxxxxxxxxxxxx> > Signed-off-by: Jing Zhang <zj.barak@xxxxxxxxx> > > --- > > --- linux-2.6.32/fs/ext4/mballoc.c 2009-12-03 11:51:22.000000000 +0800 > +++ ext4_mm_leak/mballoc-13.c 2010-03-30 20:28:08.000000000 +0800 > @@ -4183,12 +4183,20 @@ static int ext4_mb_discard_preallocation > ext4_group_t i, ngroups = ext4_get_groups_count(sb); > int ret; > int freed = 0; > + static ext4_group_t grp_cache = 0; > > trace_ext4_mb_discard_preallocations(sb, needed); > - for (i = 0; i < ngroups && needed > 0; i++) { > - ret = ext4_mb_discard_group_preallocations(sb, i, needed); > + if (needed <= 0) > + return freed; > + for (i = 0; i < ngroups; i++) { > + if (grp_cache >= ngroups) > + grp_cache -= ngroups; > + ret = ext4_mb_discard_group_preallocations(sb, grp_cache, needed); > freed += ret; > needed -= ret; > + if (needed <= 0) > + break; > + grp_cache++; > } > > return freed; can you explain this further ? -aneesh -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html