On Thu, Aug 15, 2019 at 08:55:37AM -0400, Brian Foster wrote: > The last block scan is the dominant near mode allocation algorithm > for a newer filesystem with fewer, large free extents. Add debug > mode logic to randomly fall back to lookup mode to improve > regression test coverage. How about just using an errortag since the new sysfs interface lets testcases / admins control the frequency? --D > Signed-off-by: Brian Foster <bfoster@xxxxxxxxxx> > --- > fs/xfs/libxfs/xfs_alloc.c | 8 +++++++- > 1 file changed, 7 insertions(+), 1 deletion(-) > > diff --git a/fs/xfs/libxfs/xfs_alloc.c b/fs/xfs/libxfs/xfs_alloc.c > index 7753b61ba532..d550aa5597bf 100644 > --- a/fs/xfs/libxfs/xfs_alloc.c > +++ b/fs/xfs/libxfs/xfs_alloc.c > @@ -1266,6 +1266,7 @@ xfs_alloc_ag_vextent_near( > int i; > xfs_agblock_t bno; > xfs_extlen_t len; > + bool lastblock; > > /* handle unitialized agbno range so caller doesn't have to */ > if (!args->min_agbno && !args->max_agbno) > @@ -1291,7 +1292,12 @@ xfs_alloc_ag_vextent_near( > * Otherwise run the optimized lookup search algorithm from the current > * location to the end of the tree. > */ > - if (xfs_btree_islastblock(acur.cnt, 0)) { > + lastblock = xfs_btree_islastblock(acur.cnt, 0); > +#ifdef DEBUG > + if (lastblock) > + lastblock = prandom_u32() & 1; > +#endif > + if (lastblock) { > int j; > > trace_xfs_alloc_cur_lastblock(args); > -- > 2.20.1 >