lkml.org 
[lkml]   [2021]   [Jan]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 2/5] hugetlb: convert page_huge_active() to HP_Migratable flag
On Fri, Jan 15, 2021 at 04:31:02PM -0800, Mike Kravetz wrote:
> +++ b/fs/hugetlbfs/inode.c
> @@ -735,7 +735,7 @@ static long hugetlbfs_fallocate(struct file *file, int mode, loff_t offset,
>
> mutex_unlock(&hugetlb_fault_mutex_table[hash]);
>
> - set_page_huge_active(page);
> + hugetlb_set_page_flag(page, HP_Migratable);

I had understood the request to be more like ...

SetHPageMigratable(page);

> +++ b/include/linux/hugetlb.h
> @@ -480,9 +480,13 @@ unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
> * HP_Restore_Reserve - Set when a hugetlb page consumes a reservation at
> * allocation time. Cleared when page is fully instantiated. Free
> * routine checks flag to restore a reservation on error paths.
> + * HP_Migratable - Set after a newly allocated page is added to the page
> + * cache and/or page tables. Indicates the page is a candidate for
> + * migration.
> */
> enum hugetlb_page_flags {
> HP_Restore_Reserve = 0,
> + HP_Migratable,
> };

and name these HPG_restore_reserve and HPG_migratable

and generate the calls to hugetlb_set_page_flag etc from macros, eg:

#define TESTHPAGEFLAG(uname, lname) \
static __always_inline bool HPage##uname(struct page *page) \
{ return test_bit(HPG_##lname, &page->private); }
...
#define HPAGEFLAG(uname, lname) \
TESTHPAGEFLAG(uname, lname) \
SETHPAGEFLAG(uname, lname) \
CLEARHPAGEFLAG(uname, lname)

HPAGEFLAG(RestoreReserve, restore_reserve)
HPAGEFLAG(Migratable, migratable)

just to mirror page-flags.h more closely.

\
 
 \ /
  Last update: 2021-01-16 05:26    [W:0.101 / U:0.276 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site