On 10.08.23 05:25, Matthew Wilcox wrote:
On Wed, Aug 09, 2023 at 05:23:46PM -0400, Peter Xu wrote:
Hi, David,
Some pure questions below..
On Wed, Aug 09, 2023 at 10:32:56AM +0200, David Hildenbrand wrote:
Let's track the total mapcount for all large folios in the first subpage.
The total mapcount is what we actually want to know in folio_mapcount()
and it is also sufficient for implementing folio_mapped(). This also
gets rid of any "raceiness" concerns as expressed in
folio_total_mapcount().
Any more information for that "raciness" described here?
UTSL.
/*
* Add all the PTE mappings of those pages mapped by PTE.
* Limit the loop to folio_nr_pages_mapped()?
* Perhaps: given all the raciness, that may be a good or a bad idea.
*/
Yes, that comment from Hugh primarily discusses how we could possibly
optimize the loop, and if relying on folio_nr_pages_mapped() to reduce
the iterations would be racy. As far as I can see, there are cases where
"it would be certainly a bad idea" :)
In the other comment in that function, it's also made clear what the
traditional behavior with PMD-mappable THP was "In the common case,
avoid the loop when no pages mapped by PTE", which will no longer hold
with sub-PMD THP.
--
Cheers,
David / dhildenb