Messages in this thread | | | Date | Thu, 19 Oct 2017 17:33:22 +0200 | From | Michal Hocko <> | Subject | Re: [PATCH] mm/swap: Use page flags to determine LRU list in __activate_page() |
| |
On Thu 19-10-17 20:26:57, Anshuman Khandual wrote: > Its already assumed that the PageActive flag is clear on the input > page, hence page_lru(page) will pick the base LRU for the page. In > the same way page_lru(page) will pick active base LRU, once the > flag PageActive is set on the page. This change of LRU list should > happen implicitly through the page flags instead of being hard > coded.
The patch description tells what but it doesn't explain _why_? Does the resulting code is better, more optimized or is this a pure readability thing?
All I can see is that page_lru is more complex and a large part of it can be optimized away which has been done manually here. I suspect the compiler can deduce the same thing.
> Signed-off-by: Anshuman Khandual <khandual@linux.vnet.ibm.com> > --- > mm/swap.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/mm/swap.c b/mm/swap.c > index fcd82bc..494276b 100644 > --- a/mm/swap.c > +++ b/mm/swap.c > @@ -275,12 +275,10 @@ static void __activate_page(struct page *page, struct lruvec *lruvec, > { > if (PageLRU(page) && !PageActive(page) && !PageUnevictable(page)) { > int file = page_is_file_cache(page); > - int lru = page_lru_base_type(page); > > - del_page_from_lru_list(page, lruvec, lru); > + del_page_from_lru_list(page, lruvec, page_lru(page)); > SetPageActive(page); > - lru += LRU_ACTIVE; > - add_page_to_lru_list(page, lruvec, lru); > + add_page_to_lru_list(page, lruvec, page_lru(page)); > trace_mm_lru_activate(page); > > __count_vm_event(PGACTIVATE); > -- > 1.8.5.2
-- Michal Hocko SUSE Labs
| |