On Thu, Oct 19, 2017 at 01:43:19PM +1100, Balbir Singh wrote: > On Mon, 16 Oct 2017 23:10:01 -0400 > jglisse@xxxxxxxxxx wrote: > > > From: Jérôme Glisse <jglisse@xxxxxxxxxx> > > > > (Andrew you already have v1 in your queue of patch 1, patch 2 is new, > > i think you can drop it patch 1 v1 for v2, v2 is bit more conservative > > and i fixed typos) > > > > All this only affect user of invalidate_range callback (at this time > > CAPI arch/powerpc/platforms/powernv/npu-dma.c, IOMMU ATS/PASID in > > drivers/iommu/amd_iommu_v2.c|intel-svm.c) > > > > This patchset remove useless double call to mmu_notifier->invalidate_range > > callback wherever it is safe to do so. The first patch just remove useless > > call > > As in an extra call? Where does that come from? Before this patch you had the following pattern: mmu_notifier_invalidate_range_start(); take_page_table_lock() ... update_page_table() mmu_notifier_invalidate_range() ... drop_page_table_lock() mmu_notifier_invalidate_range_end(); It happens that mmu_notifier_invalidate_range_end() also make an unconditional call to mmu_notifier_invalidate_range() so in the above scenario you had 2 calls to mmu_notifier_invalidate_range() Obviously one of the 2 call is useless. In some case you can drop the first call (under the page table lock) this is what patch 1 does. In other cases you can drop the second call that happen inside mmu_notifier_invalidate_range_end() that is what patch 2 does. Hence why i am referring to useless double call. I have added more documentation to explain all this in the code and also under Documentation/vm/mmu_notifier.txt > > > and add documentation explaining why it is safe to do so. The second > > patch go further by introducing mmu_notifier_invalidate_range_only_end() > > which skip callback to invalidate_range this can be done when clearing a > > pte, pmd or pud with notification which call invalidate_range right after > > clearing under the page table lock. > > > > Balbir Singh. > -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>