[ofw][patch] mcast destroy retry count - parameters
Fab Tillier
ftillier at windows.microsoft.com
Tue Jun 17 10:21:32 PDT 2008
Hi Slava,
>From: ofw-bounces at lists.openfabrics.org
>[mailto:ofw-bounces at lists.openfabrics.org] On Behalf Of Slava Strebkov
>Sent: Tuesday, June 17, 2008 3:21 AM
>
>Index: core/al/al_mcast.c
>===================================================================
>--- core/al/al_mcast.c (revision 1261)
>+++ core/al/al_mcast.c (working copy)
>@@ -271,8 +273,14 @@
> sa_mad_data.p_attr = &h_mcast->member_rec;
>
> ref_al_obj( &h_mcast->obj );
>- status = al_send_sa_req(
>- &h_mcast->sa_dereg_req, h_mcast->port_guid, 500,
>0, &sa_mad_data, 0 );
>+ status =
>+#if defined( CL_KERNEL )
>+ al_send_sa_req(
>+ &h_mcast->sa_dereg_req, h_mcast->port_guid,
>g_mc_destroy_retry_timeout, g_mc_destroy_retry_count, &sa_mad_data, 0 );
>+#else
>+ al_send_sa_req(
>+ &h_mcast->sa_dereg_req, h_mcast->port_guid, 500, 0,
>&sa_mad_data, 0 );
>+#endif
Is there a reason user-mode clients should not use the same timeouts and retry count? Just use the same code for kernel- and user-mode clients. What's good enough for the kernel is good enough for user-mode clients. It will keep the code easier to maintain, and will keep consistent functionality.
I also agree with Sean that having exponential backoff would make sense. For that, I would suggest having the timeout value specified in the al_send_sa_req be a starting value, and have the lower layer implement the exponential backoff. In fact, if the mad layer did the exponential backoff itself, I suspect you could eliminate the starting timeout value and start with something pretty aggressive. In fact, I would even eliminate the retry count, and provide a "timeout" value, and the lower layer would calculate the number of retries needed.
-Fab
More information about the ofw
mailing list