On Thu, Jul 09, 2015 at 04:19:00PM +0300, Vladimir Davydov wrote: > On Wed, Jul 08, 2015 at 04:01:13PM -0700, Andres Lagar-Cavilla wrote: > > On Fri, Jun 12, 2015 at 2:52 AM, Vladimir Davydov > > > +#ifdef CONFIG_IDLE_PAGE_TRACKING > > > +/* > > > + * Idle page tracking only considers user memory pages, for other types of > > > + * pages the idle flag is always unset and an attempt to set it is silently > > > + * ignored. > > > + * > > > + * We treat a page as a user memory page if it is on an LRU list, because it is > > > + * always safe to pass such a page to page_referenced(), which is essential for > > > + * idle page tracking. With such an indicator of user pages we can skip > > > + * isolated pages, but since there are not usually many of them, it will hardly > > > + * affect the overall result. > > > + * > > > + * This function tries to get a user memory page by pfn as described above. > > > + */ > > > +static struct page *kpageidle_get_page(unsigned long pfn) > > > +{ > > > + struct page *page; > > > + struct zone *zone; > > > + > > > + if (!pfn_valid(pfn)) > > > + return NULL; > > > + > > > + page = pfn_to_page(pfn); > > > + if (!page || !PageLRU(page)) > > > > Isolation can race in while you're processing the page, after these > > checks. This is ok, but worth a small comment. > > Agree, will add one. Oh, the comment is already present - it's in the description to this function. Minchan asked me to add it long time ago, and so I did. Completely forgot about it. Thanks, Vladimir -- 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>