[openib-general] mthca and DDR not hidden

Hal Rosenstock halr at voltaire.com
Thu Sep 30 12:46:20 PDT 2004


On Thu, 2004-09-30 at 15:10, Roland Dreier wrote:
>     Hal> I attempted to send UD and got stopped by the following in mthca_av.c:
> 
>     Hal> int mthca_read_ah(struct mthca_dev *dev, struct mthca_ah *ah,
>     Hal>                   struct ib_ud_header *header)
>     Hal> {
>     Hal>         if (ah->on_hca)
>     Hal>                 return -EINVAL;
> 
>     Hal> on_hca is set due to the following in mthca_create_ah:
> 
>     Hal>        if (!atomic_read(&pd->sqp_count) &&
>     Hal>             !(dev->mthca_flags & MTHCA_FLAG_DDR_HIDDEN)) {
> 
>     [...]
> 
>     Hal>                 ah->on_hca = 1;
> 
>     Hal> Is it a requirement to run the HCA with DDR hidden ? 
> 
> Notice that on_hca won't be set if either the DDR is hidden _or_ the
> PD being used has special QPs attached.  We only need to reread the AH
> for sends on QP0/QP1 (not general UD QPs), so this shouldn't be a
> problem in practice.  Are you using the same PD for your QPs and AHs
> (they have to match for correct operation)?

Oops. Looks like we need a way to expose the PD and MR to be able to do
this. How about adding this into the mad_agent structure returned ? If
that makes sense, I will generate the patch for this.

> I run nearly all of my HCAs without the DDR hidden and it works fine.
> 
>     Hal> Is there a way to get the AH when the DDR is not hidden ? If so, should
>     Hal> this support be added into mthca ?
> 
> Yes, it's possible.  However I don't think it's urgent because things
> should work fine as it stands now.

Agreed (and there already is a TODO list item on DDR hidden relative to
UD AHs (other than QP0/1)).

> The only issue seems to be that we
> may not generate the correct error when an AH from a different PD is
> used on QP0/QP1.

What's should be the correct error for this case ?

Thanks.

-- Hal





More information about the general mailing list