On Tue, Feb 25, 2014 at 05:52:50PM -0800, Christoph Hellwig wrote: > On Mon, Feb 24, 2014 at 05:29:26PM +1100, Dave Chinner wrote: > > @@ -842,7 +842,7 @@ start_inode_prefetch( > > * and not any other associated metadata like directories > > */ > > > > - max_queue = libxfs_bcache->c_maxcount / thread_count / 8; > > + max_queue = libxfs_bcache->c_maxcount / thread_count / 32; > > I can't correlate this to anything mentioned in the changelog. > Also if you're touching it anyway it might be a good idea to document > the magic number here. I was fiddling with the magic number to see if it affected the readahead behaviour (it didn't) and forgot to set it back to the original value. Will fix. > > > +void > > +prefetch_ag_range( > > + struct work_queue *work, > > + xfs_agnumber_t start_ag, > > + xfs_agnumber_t end_ag, > > + bool dirs_only, > > + void (*func)(struct work_queue *, > > + xfs_agnumber_t, void *)) > > +{ > > + int i; > > + struct prefetch_args *pf_args[2]; > > + > > + pf_args[start_ag & 1] = start_inode_prefetch(start_ag, dirs_only, NULL); > > + for (i = start_ag; i < end_ag; i++) { > > + /* Don't prefetch end_ag */ > > + if (i + 1 < end_ag) > > + pf_args[(~i) & 1] = start_inode_prefetch(i + 1, > > + dirs_only, pf_args[i & 1]); > > + func(work, i, pf_args[i & 1]); > > + } > > +} > > This seems to largely duplicate the common code added in patch 5. > Having _range variants of those that the non-range ones wrap with 0 and > mp->m_sb.sb_agcount as default parameters would avoid that duplication. Actually, that's pretty much what this patch does in this hunk: @@ -905,12 +945,8 @@ do_inode_prefetch( */ if (!stride) { queue.mp = mp; - pf_args[0] = start_inode_prefetch(0, dirs_only, NULL); - for (i = 0; i < mp->m_sb.sb_agcount; i++) { - pf_args[(~i) & 1] = start_inode_prefetch(i + 1, - dirs_only, pf_args[i & 1]); - func(&queue, i, pf_args[i & 1]); - } + prefetch_ag_range(&queue, 0, mp->m_sb.sb_agcount, + dirs_only, func); return; } Cheers, Dave. -- Dave Chinner david@xxxxxxxxxxxxx _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs