TODO patch (was Re: [openib-general] qp lock in mthca_poll_cq)

Michael S. Tsirkin mst at mellanox.co.il
Sun Sep 12 23:30:28 PDT 2004


Hello!
Quoting r. Roland Dreier (roland at topspin.com) "Re: [openib-general] qp lock in mthca_poll_cq":
>     Michael> Wouldnt locking the cq while QP is being destroyed also
>     Michael> work?  And maybe the eq which gets the async events.
> 
> Yes, that's a good idea, trading some locking in the slow destroy path
> for removing an atomic access in the data path.  EQ access is
> currently lock-free, but replacing the atomic_t refcounting of
> individual resources with a per-EQ spinlock should if anything be a
> little more cache friendly.  I'll add this to my TODO list (I need to
> take care that the locking hierarchies are OK to avoid deadlocks).

Here's a TODO patch.


Index: src/linux-kernel/TODO
===================================================================
--- src/linux-kernel/TODO	(revision 795)
+++ src/linux-kernel/TODO	(working copy)
@@ -44,3 +44,12 @@
  - rewrite client_query/sa_client/dm_client so that they are more
    general (better support for component mask, RMPP, etc) and more
    maintainable.
+
+mthca specific tasks:
+ - Reduce the number of locks on poll cq path. Locking the cq while qp
+   is being destroyed might just work (and maybe the eq which gets the
+   async events), trading some locking in the slow destroy path
+   for removing an atomic access in the data path.  eq access is
+   currently lock-free, but replacing the atomic_t refcounting of
+   individual resources with a per-eq spinlock should if anything be a
+   little more cache friendly.




More information about the general mailing list