Hi Sean, On Thu, Nov 10, 2011 at 07:03:40AM +0000, Hefty, Sean wrote: > > > Yes, but the use of the cache is hidden from the user. > > > > user who? > > ib_cm, rdma_cm, ib_mad, ib_ipoib, etc. You would need to trace the use up to > all ULPs. > > > Since the drivers would be users of cache calls, the behavior would be > > as assumed for the query calls for the driver. Refer mthca > > implementation (PATCH 11/11): If the entry is found in cache, it > > will return immediately, and will not sleep. > > > If the entry is not found, it will query the device and may sleep. > > This is the issue. You changed calls from ib_find_cached_pkey() and > ib_find_cached_gid() to ib_query_pkey() and ib_query_gid(). The latter calls > may sleep, but I don't believe that we can sleep in all places where the new > functions are used. Changing from ib_find_cached_gid to ib_query_gid changes > the locking restrictions up through the stack. It doesn't matter if the > cache doesn't block, the exposed calls may.
Thanks for explaining. I see your point now. This had been in the orignal discussion, but I missed on this point while working on this. I will redo the patches after reviewing the function usage. -- Goldwyn -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
