On Thu, 26 Jul 2018, Matthew Wilcox wrote: > On Wed, Jul 25, 2018 at 11:53:15PM -0700, Hugh Dickins wrote: > > and fixing the bug differently ;-) But many thanks for spotting it! I thought you might :) > > I'll look into the next bug you reported ... No need: that idea now works a lot better when I use the initialized "start", instead of the uninitialized "index". Hugh --- mmotm/mm/khugepaged.c 2018-07-20 17:54:41.978805312 -0700 +++ linux/mm/khugepaged.c 2018-07-26 09:20:22.416949014 -0700 @@ -1352,6 +1352,7 @@ static void collapse_shmem(struct mm_str goto out; } while (1); + xas_set(&xas, start); for (index = start; index < end; index++) { struct page *page = xas_next(&xas);