On Wed, 25 Sep 2024 21:47:32 +0800 Adrian Huang <adrianhuang0701@xxxxxxxxx> wrote: > > ... > > From: Adrian Huang <ahuang12@xxxxxxxxxx> > After re-visiting code path about setting the kasan ptep (pte pointer), > it's unlikely that a kasan ptep is set and cleared simultaneously by > different CPUs. So, use ptep_get_and_clear() to get rid of the spinlock > operation. "unlikely" isn't particularly comforting. We'd prefer to never corrupt pte's! I'm suspecting we need a more thorough solution here. btw, for a lame fix, did you try moving the spin_lock() into kasan_release_vmalloc(), around the apply_to_existing_page_range() call? That would at least reduce locking frequency a lot. Some mitigation might be needed to avoid excessive hold times.