Sean Hefty [Mon, 21 Jun 2010 19:07:58 +0000 (12:07 -0700)]
complib/timer: fix race accessing timer fields
The timeout_time field of cl_timer_t is modified in the timer
callback function and also in calls to cl_timer_start, cl_timer_stop,
and cl_timer_trim. The user cannot protect against the changes
made in the timer callback function, so the timer must provide
this protection itself.
Provide serialization to prevent multiple timer callbacks to
the user at once.
Stan Smith [Thu, 24 Jun 2010 16:20:07 +0000 (16:20 +0000)]
[WIX] Incorporate WIX DirRef construct to simplify wix files (installed folder structure defined in a single file; much easier to understand overall structure).
Additionally install .dlls in %SystemRoot%\system32 instead of %SystemRoot%.
Sean Hefty [Wed, 23 Jun 2010 22:40:05 +0000 (22:40 +0000)]
libibumad: fix handling of receive timeouts
If the user calls receive with a timeout, the receive will
be posted, then the user will wait on an event until either
the receive completes or times out. If the wait times out,
an attempt is made to cancel the pending receive. However,
a MAD could be received between the wait timing out and
the completion of the cancel. To handle this, we need to
check the return status after the cancel to see if the
cancel succeeded.
This fixes a problem with ibnetdiscover hanging.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2831 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86
Sean Hefty [Tue, 22 Jun 2010 23:57:33 +0000 (16:57 -0700)]
libibumad: fix handling of receive timeouts
If the user calls receive with a timeout, the receive will
be posted, then the user will wait on an event until either
the receive completes or times out. If the wait times out,
an attempt is made to cancel the pending receive. However,
a MAD could be received between the wait timing out and
the completion of the cancel. To handle this, we need to
check the return status after the cancel to see if the
cancel succeeded.
Sean Hefty [Tue, 22 Jun 2010 23:57:33 +0000 (16:57 -0700)]
libibumad: fix handling of receive timeouts
If the user calls receive with a timeout, the receive will
be posted, then the user will wait on an event until either
the receive completes or times out. If the wait times out,
an attempt is made to cancel the pending receive. However,
a MAD could be received between the wait timing out and
the completion of the cancel. To handle this, we need to
check the return status after the cancel to see if the
cancel succeeded.
Sean Hefty [Tue, 22 Jun 2010 19:08:46 +0000 (12:08 -0700)]
winmad: change handling of large MADs
Winmad uses buffered I/O to transfer data from user space
to the kernel. When dealing with large RMPP MADs, the size
of the data can exceed a single page, which can result in the
IOCTL failing. The likelihood of the failure depends on the
size of the MAD and how fragmented the non-paged pool has
become.
Sean Hefty [Mon, 21 Jun 2010 19:07:58 +0000 (12:07 -0700)]
complib/timer: fix race accessing timer fields
The timeout_time field of cl_timer_t is modified in the timer
callback function and also in calls to cl_timer_start, cl_timer_stop,
and cl_timer_trim. The user cannot protect against the changes
made in the timer callback function, so the timer must provide
this protection itself.
Provide serialization to prevent multiple timer callbacks to
the user at once.
Sean Hefty [Mon, 21 Jun 2010 19:07:58 +0000 (12:07 -0700)]
complib/timer: fix race accessing timer fields
The timeout_time field of cl_timer_t is modified in the timer
callback function and also in calls to cl_timer_start, cl_timer_stop,
and cl_timer_trim. The user cannot protect against the changes
made in the timer callback function, so the timer must provide
this protection itself.
Provide serialization to prevent multiple timer callbacks to
the user at once.
Sean Hefty [Mon, 21 Jun 2010 19:07:58 +0000 (12:07 -0700)]
complib/timer: fix race accessing timer fields
The timeout_time field of cl_timer_t is modified in the timer
callback function and also in calls to cl_timer_start, cl_timer_stop,
and cl_timer_trim. The user cannot protect against the changes
made in the timer callback function, so the timer must provide
this protection itself.
Sean Hefty [Mon, 21 Jun 2010 19:07:58 +0000 (12:07 -0700)]
complib/timer: fix race accessing timer fields
The timeout_time field of cl_timer_t is modified in the timer
callback function and also in calls to cl_timer_start, cl_timer_stop,
and cl_timer_trim. The user cannot protect against the changes
made in the timer callbac function, so the timer must provide
this protection itself.
Sean Hefty [Mon, 21 Jun 2010 18:42:58 +0000 (18:42 +0000)]
libibumad: fixes for opensm
Fix struct user_mad to align the grh_valid field with winmad. Provide conversion functions to switch GRH data between umad and winmad when GRH data is in use.
Set errno correctly in case of failures.
Finally, cancel overlapped requests if receive or poll time out to prevent reusing those structures.
Signed-off-by: Sean Hefty <sean.hefty@intel.com>
git-svn-id: svn://openib.tc.cornell.edu/gen1@2825 ad392aa1-c5ef-ae45-8dd8-e69d62a5ef86