Message ID | cover.1660902741.git.baolin.wang@linux.alibaba.com (mailing list archive) |
---|---|
Headers | show |
Series | Fix some issues when looking up hugetlb page | expand |
On 08/19/22 18:12, Baolin Wang wrote: > Hi, > > On ARM64 architecture, it can support CONT-PTE/PMD size hugetlb. When > looking up hugetlb page by follow_page(), we will hold the incorrect > pte/pmd lock for the CONT-PTE/PMD size hugetlb page, which will make > the pte/pmd entry unstable even under the lock and cause some potential > race issues. So considering the CONT-PTE/PMD size hugetlb, this patch set > changes to use the correct function to get the correct pte/pmd entry lock > to make the pte/pmd entry stable. Thank you for looking at this. I often get confused by arm64 CONT-PTE/PMD layout, so my understanding may be wrong. Can we use the PMD page lock for locking both CONT-PTE and CONT-PMD entries? Again, I may be confused by the CONT-* page table layout, but it seems these would all be referenced via that same PMD page of the page table. Or, perhaps CONT-PMD can span multiple PMD pages? If we can use PMD page for locking, this would be much finer grain that lock in the mm.
On 8/20/2022 8:08 AM, Mike Kravetz wrote: > On 08/19/22 18:12, Baolin Wang wrote: >> Hi, >> >> On ARM64 architecture, it can support CONT-PTE/PMD size hugetlb. When >> looking up hugetlb page by follow_page(), we will hold the incorrect >> pte/pmd lock for the CONT-PTE/PMD size hugetlb page, which will make >> the pte/pmd entry unstable even under the lock and cause some potential >> race issues. So considering the CONT-PTE/PMD size hugetlb, this patch set >> changes to use the correct function to get the correct pte/pmd entry lock >> to make the pte/pmd entry stable. > > Thank you for looking at this. > > I often get confused by arm64 CONT-PTE/PMD layout, so my understanding may be > wrong. Can we use the PMD page lock for locking both CONT-PTE and CONT-PMD > entries? Again, I may be confused by the CONT-* page table layout, but it > seems these would all be referenced via that same PMD page of the page table. > Or, perhaps CONT-PMD can span multiple PMD pages? Good point. CONT-PMD can not span multiple PMD pages, so I think CONT-PMD can use PMD pagetable page lock, but CONT-PTE also can not span multiple PTE pagetable page lock, so I think CONT-PTE can use the PTE pagetable page lock to get a fine grained lock. I will add CONT-PTE and CONT-PMD case in huge_pte_lockptr() in next version. Thanks for your comment. > If we can use PMD page for locking, this would be much finer grain that > lock in the mm.