Re: [External] Re: [PATCH v9 03/11] mm/hugetlb: Free the vmemmap pages associated with each HugeTLB page

2020-12-17 Thread Muchun Song
On Thu, Dec 17, 2020 at 2:54 PM Muchun Song wrote: > > On Thu, Dec 17, 2020 at 6:52 AM Mike Kravetz wrote: > > > > On 12/16/20 2:25 PM, Oscar Salvador wrote: > > > On Wed, Dec 16, 2020 at 02:08:30PM -0800, Mike Kravetz wrote: > > >>> + * vmemmap_rmap_walk - walk vmemmap page table > > >>> + > > >

Re: [External] Re: [PATCH v9 03/11] mm/hugetlb: Free the vmemmap pages associated with each HugeTLB page

2020-12-16 Thread Muchun Song
On Thu, Dec 17, 2020 at 6:52 AM Mike Kravetz wrote: > > On 12/16/20 2:25 PM, Oscar Salvador wrote: > > On Wed, Dec 16, 2020 at 02:08:30PM -0800, Mike Kravetz wrote: > >>> + * vmemmap_rmap_walk - walk vmemmap page table > >>> + > >>> +static void vmemmap_pte_range(pmd_t *pmd, unsigned long addr, >

Re: [External] Re: [PATCH v9 03/11] mm/hugetlb: Free the vmemmap pages associated with each HugeTLB page

2020-12-16 Thread Muchun Song
On Thu, Dec 17, 2020 at 6:08 AM Mike Kravetz wrote: > > On 12/13/20 7:45 AM, Muchun Song wrote: > > Every HugeTLB has more than one struct page structure. We __know__ that > > we only use the first 4(HUGETLB_CGROUP_MIN_ORDER) struct page structures > > to store metadata associated with each HugeTL

Re: [PATCH v9 03/11] mm/hugetlb: Free the vmemmap pages associated with each HugeTLB page

2020-12-16 Thread Mike Kravetz
On 12/16/20 2:25 PM, Oscar Salvador wrote: > On Wed, Dec 16, 2020 at 02:08:30PM -0800, Mike Kravetz wrote: >>> + * vmemmap_rmap_walk - walk vmemmap page table >>> + >>> +static void vmemmap_pte_range(pmd_t *pmd, unsigned long addr, >>> + unsigned long end, struct vmemmap_rma

Re: [PATCH v9 03/11] mm/hugetlb: Free the vmemmap pages associated with each HugeTLB page

2020-12-16 Thread Oscar Salvador
On Wed, Dec 16, 2020 at 02:08:30PM -0800, Mike Kravetz wrote: > > + * vmemmap_rmap_walk - walk vmemmap page table > > I am not sure if 'rmap' should be part of these names. rmap today is mostly > about reverse mapping lookup. Did you use rmap for 'remap', or because this > code is patterned afte

Re: [PATCH v9 03/11] mm/hugetlb: Free the vmemmap pages associated with each HugeTLB page

2020-12-16 Thread Mike Kravetz
On 12/13/20 7:45 AM, Muchun Song wrote: > Every HugeTLB has more than one struct page structure. We __know__ that > we only use the first 4(HUGETLB_CGROUP_MIN_ORDER) struct page structures > to store metadata associated with each HugeTLB. > > There are a lot of struct page structures associated wi

Re: [External] Re: [PATCH v9 03/11] mm/hugetlb: Free the vmemmap pages associated with each HugeTLB page

2020-12-16 Thread Muchun Song
On Wed, Dec 16, 2020 at 9:06 PM Oscar Salvador wrote: > > On Sun, Dec 13, 2020 at 11:45:26PM +0800, Muchun Song wrote: > > + > > +/* > > + * vmemmap_rmap_walk - walk vmemmap page table > > + * > > + * @rmap_pte:called for each non-empty PTE (lowest-level) > > entry. > > + * @reuse

Re: [PATCH v9 03/11] mm/hugetlb: Free the vmemmap pages associated with each HugeTLB page

2020-12-16 Thread Oscar Salvador
On Sun, Dec 13, 2020 at 11:45:26PM +0800, Muchun Song wrote: > + > +/* > + * vmemmap_rmap_walk - walk vmemmap page table > + * > + * @rmap_pte:called for each non-empty PTE (lowest-level) > entry. > + * @reuse: the page which is reused for the tail vmemmap pages. > + * @v

[PATCH v9 03/11] mm/hugetlb: Free the vmemmap pages associated with each HugeTLB page

2020-12-13 Thread Muchun Song
Every HugeTLB has more than one struct page structure. We __know__ that we only use the first 4(HUGETLB_CGROUP_MIN_ORDER) struct page structures to store metadata associated with each HugeTLB. There are a lot of struct page structures associated with each HugeTLB page. For tail pages, the value of