On 12/01/21 19:10, Ben Gardon wrote:
+        *  May be acquired under the MMU lock in read mode or non-overlapping
+        *  with the MMU lock.
+        */
+       spinlock_t tdp_mmu_pages_lock;

Is this correct?  My understanding is that:

- you can take tdp_mmu_pages_lock from a shared MMU lock critical section

- you don't need to take tdp_mmu_pages_lock from an exclusive MMU lock critical section, because you can't be concurrent with a shared critical section

- but then, you can't take tdp_mmu_pages_lock outside the MMU lock, because you could have

   write_lock(mmu_lock)
                                     spin_lock(tdp_mmu_pages_lock)
   do tdp_mmu_pages_lock stuff  !!!  do tdp_mmu_pages_lock stuff
   write_unlock(mmu_lock)
                                     spin_unlock(tdp_mmu_pages_lock)

Paolo

Reply via email to