On Sat, Jan 13, 2024 at 05:44:33PM +0800, Nanyong Sun wrote:I think this situation is impossible. In the implementation of the second patch, when the page table is being corrupted
HVO was previously disabled on arm64 [1] due to the lack of necessaryI'm not keen on this approach. I'm not even sure it's safe. In the
BBM(break-before-make) logic when changing page tables.
This set of patches fix this by adding necessary BBM sequence when
changing page table, and supporting vmemmap page fault handling to
fixup kernel address translation fault if vmemmap is concurrently accessed.
second patch, you take the init_mm.page_table_lock on the fault path but
are we sure this is unlocked when the fault was taken?
Basically you canAs long as allocating or releasing hugetlb is called. We cannot limit users to only allocate or release hugetlb
get a fault anywhere something accesses a struct page.
How often is this code path called? I wonder whether a stop_machine()
approach would be simpler.
Andrew, I'd suggest we drop these patches from the mm tree for the time
being. They haven't received much review from the arm64 folk. Thanks.