• Jason Gunthorpe's avatar
    RDMA/umem: Get rid of per_mm->notifier_count · ca748c39
    Jason Gunthorpe authored
    This is intrinsically racy and the scheme is simply unnecessary. New MR
    registration can wait for any on going invalidation to fully complete.
    
          CPU0                              CPU1
                                      if (atomic_read())
     if (atomic_dec_and_test() &&
         !list_empty())
      { /* not taken */ }
                                           list_add()
    
    Putting the new UMEM into some kind of purgatory until another invalidate
    rolls through..
    
    Instead hold the read side of the umem_rwsem across the pair'd start/end
    and get rid of the racy 'deferred add' approach.
    
    Since all umem's in the rbt are always ready to go, also get rid of the
    mn_counters_active stuff.
    Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
    Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
    Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
    ca748c39
umem_odp.c 21.9 KB