Tzachi, Upon further code review, there seems to be a rather simple solution which covers most concerns.
The bus driver (ioc_manager) is coded such that when the IOC rescan routine is finished it restarts the IOC rescan timer if IocPollInterval > 0 using IocPollInterval as the timer expiration value. Your solution (IocPollInterval = 0) prohibits starting the IOC rescan timer for all events, thus a new IOC/U will not be recognized; OK for most installations. To prohibit IOC scanning every 30 seconds and yet recognize a new IOC/IOU...... upon completion of an IOC rescan operation, the IOC rescan timer is not restarted? Currently IB_PNP_SM_CHANGE and IB_PNP_PORT_ACTIVE cause the IOC rescan timer to start and expire after 250 ms; no code change. Upon recognition of QUERY_DEVICE_RELATIONS for device 'IB Bus' the IOC rescan timer is started; this would cover the 'devcon.exe rescan' case. BTW, the IOC rescan timer callback function is coded such that only a single instance of the IOC rescan function will run. To summarize: Do not automatically restart the IOC rescan timer (IocPollInterval) after completing an IOC rescan. Restart the IOC rescan timer upon recognition of QUERY_DEVICE_RELATIONS for device 'IB Bus'. Simple, minor code changes? What have I missed? Thanks, Stan. _______________________________________________ ofw mailing list [email protected] http://lists.openfabrics.org/cgi-bin/mailman/listinfo/ofw
