[openib-general] Unknown SMP Recv

Hal Rosenstock halr at voltaire.com
Fri Feb 9 11:03:07 PST 2007


On Fri, 2007-02-09 at 13:38, Michael Arndt wrote:
> Hi,
> 
> > I have no clue; I don't really understand what you have changed so it is
> > hard to know.
> 
> For example: if I send ten SMPs like:
> 
>     for (i=0;i<10;i++){
>         umad_send(portid, agentid, msg, len, timeout, repeats);
>     }
> 
>     timeout > 0!
> than only the first one is sent and all other umad_send calls returning 
> with -5.

-5 is EIO 

For some reason, umad_send is indicating this after the write into the
fd to pass the send to user_mad kernel module:

        n = write(port->dev_fd, mad, length + sizeof *mad);
        if (n == length + sizeof *mad)
                return 0;

        DEBUG("write returned %d != sizeof umad %zu + length %d (%m)",
              n, sizeof *mad, length);
        if (!errno)
                errno = EIO;
        return -EIO;

I have no clue as to why subsequent (non first) writes are failing to
write the proper amount of data. Do you have or can you create a simple
test program to demonstrate this ?

-- Hal

> Thanks Michael





More information about the general mailing list