Re: Folio mapcount

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2 Feb 2023, at 10:31, Matthew Wilcox wrote:

> On Wed, Feb 01, 2023 at 07:45:17PM -0800, Mike Kravetz wrote:
>> On 01/24/23 18:13, Matthew Wilcox wrote:
>>> Once we get to the part of the folio journey where we have
>>> one-pointer-per-page, we can't afford to maintain per-page state.
>>> Currently we maintain a per-page mapcount, and that will have to go.
>>> We can maintain extra state for a multi-page folio, but it has to be a
>>> constant amount of extra state no matter how many pages are in the folio.
>>>
>>> My proposal is that we maintain a single mapcount per folio, and its
>>> definition is the number of (vma, page table) tuples which have a
>>> reference to any pages in this folio.
>>
>> Hi Matthew, finally took a look at this.  Can you clarify your definition of
>> 'page table' here?  I think you are talking about all the entries within
>> one page table page?  Is that correct?  It certainly makes sense in this
>> context.
>>
>> I have always thought of page table as the entire tree structure starting at
>> *pgd in the mm_struct.  So, I was a bit confused.  But, I now see elsewhere
>> that 'page table' may refer to either.
>
> Yes, we're pretty sloppy about that.  What I had in mind was:
>
> We have a large folio which is mapped at, say, (1.9MB - 2.1MB) in the
> user address space.  There are thus multiple PTEs which map it and some
> of those PTEs belong to one PMD and the rest belong to a second PMD.
> It has a mapcount of 2 due to being mapped by PTE entries belonging to
> two PMD tables.  If it were mapped at (2.1-2.3MB), it would have a
> mapcount of 1 due to all its PTEs belonging to a single PMD table.

What is the logic of using PMD as the basic counting unit? Why not use
PTE or PUG? I just cannot understand the goal of doing this.

>
> [ Mike & I spoke earlier this week about what should happen with mapcount
> and a theoretical aligned 1GB THP that has its PUD mapping split into
> PTE mappings.  Splitting a PMD to PTEs does not affect the mapcount
> since all of the PTEs are now referenced from a single PMD table instead
> of from a PMD entry.  But splitting a PUD to PTEs should increment the
> mapcount by 511 since the folio is now referenced from 512 PMD tables. ]


--
Best Regards,
Yan, Zi

Attachment: signature.asc
Description: OpenPGP digital signature


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux