Message ID | 20191016225326.GB12497@wfg-t540p.sh.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | mm: trivial mark_page_accessed() cleanup | expand |
On 10/17/19 12:53 AM, Fengguang Wu wrote: > This avoids duplicated PageReferenced() calls. > No behavior change. > > Signed-off-by: Fengguang Wu <fengguang.wu@intel.com> Acked-by: Vlastimil Babka <vbabka@suse.cz> > --- > mm/swap.c | 14 +++++++++----- > 1 file changed, 9 insertions(+), 5 deletions(-) > > diff --git a/mm/swap.c b/mm/swap.c > index 38a52b9..c55720c 100644 > --- a/mm/swap.c > +++ b/mm/swap.c > @@ -373,9 +373,15 @@ void mark_page_accessed(struct page *page) > page = compound_head(page); > inc_node_page_state(page, NR_ACCESSED); > > - if (!PageActive(page) && !PageUnevictable(page) && > - PageReferenced(page)) { > - > + if (!PageReferenced(page)) { > + SetPageReferenced(page); > + } else if (PageUnevictable(page)) { > + /* > + * Unevictable pages are on the "LRU_UNEVICTABLE" list. But, > + * this list is never rotated or maintained, so marking an > + * evictable page accessed has no effect. > + */ > + } else if (!PageActive(page)) { > /* > * If the page is on the LRU, queue it for activation via > * activate_page_pvecs. Otherwise, assume the page is on a > @@ -389,8 +395,6 @@ void mark_page_accessed(struct page *page) > ClearPageReferenced(page); > if (page_is_file_cache(page)) > workingset_activation(page); > - } else if (!PageReferenced(page)) { > - SetPageReferenced(page); > } > if (page_is_idle(page)) > clear_page_idle(page); >
diff --git a/mm/swap.c b/mm/swap.c index 38a52b9..c55720c 100644 --- a/mm/swap.c +++ b/mm/swap.c @@ -373,9 +373,15 @@ void mark_page_accessed(struct page *page) page = compound_head(page); inc_node_page_state(page, NR_ACCESSED); - if (!PageActive(page) && !PageUnevictable(page) && - PageReferenced(page)) { - + if (!PageReferenced(page)) { + SetPageReferenced(page); + } else if (PageUnevictable(page)) { + /* + * Unevictable pages are on the "LRU_UNEVICTABLE" list. But, + * this list is never rotated or maintained, so marking an + * evictable page accessed has no effect. + */ + } else if (!PageActive(page)) { /* * If the page is on the LRU, queue it for activation via * activate_page_pvecs. Otherwise, assume the page is on a @@ -389,8 +395,6 @@ void mark_page_accessed(struct page *page) ClearPageReferenced(page); if (page_is_file_cache(page)) workingset_activation(page); - } else if (!PageReferenced(page)) { - SetPageReferenced(page); } if (page_is_idle(page)) clear_page_idle(page);
This avoids duplicated PageReferenced() calls. No behavior change. Signed-off-by: Fengguang Wu <fengguang.wu@intel.com> --- mm/swap.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-)