On Wed, 25 Feb 2015, Mel Gorman wrote: > On Fri, Feb 20, 2015 at 07:56:15PM -0800, Hugh Dickins wrote: > > Commit 07a427884348 ("mm: shmem: avoid atomic operation during > > shmem_getpage_gfp") rightly replaced one instance of SetPageSwapBacked > > by __SetPageSwapBacked, pointing out that the newly allocated page is > > not yet visible to other users (except speculative get_page_unless_zero- > > ers, who may not update page flags before their further checks). > > > > That was part of a series in which Mel was focused on tmpfs profiles: > > but almost all SetPageSwapBacked uses can be so optimized, with the > > same justification. And remove the ClearPageSwapBacked from > > read_swap_cache_async()'s and zswap_get_swap_cache_page()'s error > > paths: it's not an error to free a page with PG_swapbacked set. > > > > (There's probably scope for further __SetPageFlags in other places, > > but SwapBacked is the one I'm interested in at the moment.) > > > > Signed-off-by: Hugh Dickins <hughd@xxxxxxxxxx> > > --- > > mm/migrate.c | 6 +++--- > > mm/rmap.c | 2 +- > > mm/shmem.c | 4 ++-- > > mm/swap_state.c | 3 +-- > > mm/zswap.c | 3 +-- > > 5 files changed, 8 insertions(+), 10 deletions(-) > > > > <SNIP> > > --- thpfs.orig/mm/shmem.c 2015-02-08 18:54:22.000000000 -0800 > > +++ thpfs/mm/shmem.c 2015-02-20 19:33:35.676074594 -0800 > > @@ -987,8 +987,8 @@ static int shmem_replace_page(struct pag > > flush_dcache_page(newpage); > > > > __set_page_locked(newpage); > > + __SetPageSwapBacked(newpage); > > SetPageUptodate(newpage); > > - SetPageSwapBacked(newpage); > > set_page_private(newpage, swap_index); > > SetPageSwapCache(newpage); > > > > It's clear why you did this but ... > > > @@ -1177,8 +1177,8 @@ repeat: > > goto decused; > > } > > > > - __SetPageSwapBacked(page); > > __set_page_locked(page); > > + __SetPageSwapBacked(page); > > if (sgp == SGP_WRITE) > > __SetPageReferenced(page); > > > > It's less clear why this was necessary. I don't think the reordering was necessary in either case (though perhaps the first hunk makes a subsequent patch smaller). I just get irritated by seeing the same lines of code permuted in different ways for no reason, and thought I'd tidy them up to establish one familiar sequence, that's all. > I don't think it causes any problems though so > > Reviewed-by: Mel Gorman <mgorman@xxxxxxx> Thanks! Hugh -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>