[openib-general] ioctl and send_agents

Hal Rosenstock halr at voltaire.com
Sun Jan 7 18:00:30 PST 2007


On Sun, 2007-01-07 at 19:29, Michael Arndt wrote:
> Hallo,
> 
> I have two questions.
> 
> 1. In the function osmv_transport_init (file : osm_vendor_mlx_ts.c) the 
> device is opened and an ioctl call is made. My question is which module is 
> used to support the open and ioctl calls? I think it should be the user_mad 
> module, but there is no ioctl defined there. And I just find unlocked_ioctl 
> = ib_umad_ioctl and compat_ioctl = ib_umad_ioctl in this module which I 
> think are used because they also register the agents. Is there some 
> transformation from ioctl to unlocked_ioctl or compat_ioctl?

osm_vendor_mlx_ts.c is not included by the OpenIB (aka gen2) build. It
is for a gen1 implementation. Mellanox is best to comment here.

> 2. Does the SM register send agents? If so where exactly is this done. If no 
> what send agent are used by the SM (ib_umad_write)?

OpenSM registers agents in opensm/osm_sm_mad_ctrl.c:osm_sm_mad_ctrl_bind
and opensm/osm_sa_mad_ctrl.c:osm_sa_mad_ctrl_bind. osm_sm_mad_ctrl_bind
is called from osm_sm.c:osm_sm_bind and osm_sa_mad_ctrl_bind is called
from osm_sa.c:osm_sa_bind. Both osm_sm_bind and osm_sa_bind are called
from opensm/osm_opensm.c:osm_opensm_bind which is in turn called from
main.c during OpenSM startup. That is the vendor independent part.

The vendor dependant part is done in the vendor layer. For OpenIB, it is
done in osm_vendor_ibumad.c:osm_vendor_bind.

-- Hal

> Thanks Michael 
> 
> 
> _______________________________________________
> openib-general mailing list
> openib-general at openib.org
> http://openib.org/mailman/listinfo/openib-general
> 
> To unsubscribe, please visit http://openib.org/mailman/listinfo/openib-general
> 





More information about the general mailing list