]> git.openfabrics.org - ~shefty/rdma-win.git/commit
[IBAL] Limit time spent at DISPATCH_LEVEL when processing MADs.
authorleonidk <leonidk@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Sun, 13 Jul 2008 11:35:53 +0000 (11:35 +0000)
committerleonidk <leonidk@ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86>
Sun, 13 Jul 2008 11:35:53 +0000 (11:35 +0000)
commit83a21e7b9403f3d295eb26308547b3060f08a7b1
tree34964d2097cf50b99bc2b7363a3f4ab4d7f797b9
parentb0cae726c12373c84e5f3979da9f802238f4fa76
[IBAL] Limit time spent at DISPATCH_LEVEL when processing MADs.

In working with some switch SMs, I found that under stress the QP0 MAD processing could get delayed by eternal QP1 MAD processing (from hitting the SA for path queries).  This caused the SMs to remove the node from the fabric (multicast group membership, etc) because it appeared unreachable.

This patch adds a DPC for QP0 and QP1 to the SMI, and limits the SMI to processing 16 MADs before re-queueing the DPC to the DPC queue.

Because QP0 processing is crucial to the fabric operating properly, the QP0 DPC is set to high importance so that it always gets queued to the front of the DPC queue, pre-empting any QP1 processing (among other things).

In any case, with this patch all my changes have now been mailed to the list.

Signed-off-by: Fab Tillier <ftillier@microsoft.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@1393 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
trunk/core/al/kernel/al_smi.c
trunk/core/al/kernel/al_smi.h