lkml.org 
[lkml]   [2020]   [Oct]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v2 07/19] mm/hugetlb: Free the vmemmap pages associated with each hugetlb page
On Mon, Oct 26, 2020 at 10:51:02PM +0800, Muchun Song wrote:
> +static void split_vmemmap_pmd(pmd_t *pmd, pte_t *pte_p, unsigned long addr)
> +{
> + struct mm_struct *mm = &init_mm;
> + struct page *page;
> + pmd_t old_pmd, _pmd;
> + int i;
> +
> + old_pmd = READ_ONCE(*pmd);
> + page = pmd_page(old_pmd);
> + pmd_populate_kernel(mm, &_pmd, pte_p);
> +
> + for (i = 0; i < VMEMMAP_HPAGE_NR; i++, addr += PAGE_SIZE) {
> + pte_t entry, *pte;
> +
> + entry = mk_pte(page + i, PAGE_KERNEL);

I'd be happier if that were:

pgprot_t pgprot = PAGE_KERNEL;
...
for (i = 0; i < VMEMMAP_HPAGE_NR; i++, addr += PAGE_SIZE) {
pte_t entry, *pte;

entry = mk_pte(page + i, pgprot);
pgprot = PAGE_KERNEL_RO;

so that all subsequent tail pages are mapped read-only.

\
 
 \ /
  Last update: 2020-10-26 17:03    [W:2.024 / U:0.752 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site