Re: [PATCH 1/2] mm: swap: make page_evictable() inline

From: Matthew Wilcox
Date: Sun Mar 15 2020 - 03:15:41 EST


On Sat, Mar 14, 2020 at 02:34:35AM +0800, Yang Shi wrote:
> -extern int page_evictable(struct page *page);
> +/*

This seems to be in kernel-doc format already; could you add the extra
'*' so it is added to the fine documentation?

> + * page_evictable - test whether a page is evictable
> + * @page: the page to test
> + *
> + * Test whether page is evictable--i.e., should be placed on active/inactive
> + * lists vs unevictable list.
> + *
> + * Reasons page might not be evictable:
> + * (1) page's mapping marked unevictable
> + * (2) page is part of an mlocked VMA
> + *
> + */
> +static inline int page_evictable(struct page *page)
> +{
> + int ret;
> +
> + /* Prevent address_space of inode and swap cache from being freed */
> + rcu_read_lock();
> + ret = !mapping_unevictable(page_mapping(page)) && !PageMlocked(page);
> + rcu_read_unlock();
> + return ret;
> +}

This seems like it should return bool ... that might even lead to code
generation improvement.