[ofa-general] Re: [PATCH v2] opensm: free lft_buf if it matches switch's lft
Sasha Khapyorsky
sashak at voltaire.com
Thu Oct 30 14:45:19 PDT 2008
Hi Yevgeny,
On 18:03 Thu 30 Oct , Yevgeny Kliteynik wrote:
> Sasha,
>
> This patch frees the switch's lft_buf if it matches the
> LFT that is currently configured on switch.
>
> Signed-off-by: Yevgeny Kliteynik <kliteyn at dev.mellanox.co.il>
I applied this. Thanks. However one question below.
[snip...]
> diff --git a/opensm/opensm/osm_ucast_mgr.c b/opensm/opensm/osm_ucast_mgr.c
> index adb6688..175817c 100644
> --- a/opensm/opensm/osm_ucast_mgr.c
> +++ b/opensm/opensm/osm_ucast_mgr.c
> @@ -392,6 +392,20 @@ int osm_ucast_mgr_set_fwd_table(IN osm_ucast_mgr_t * const p_mgr,
> context.lft_context.node_guid = osm_node_get_node_guid(p_node);
> context.lft_context.set_method = TRUE;
>
> + if (!p_sw->lft_buf) {
> + /* any routing should provide the lft_buf */
> + CL_ASSERT(p_mgr->p_subn->opt.use_ucast_cache &&
> + p_mgr->cache_valid && !p_sw->need_update);
> + goto Exit;
> + }
> +
> + if (!p_sw->need_update &&
> + !memcmp(p_sw->lft, p_sw->lft_buf, IB_LID_UCAST_END_HO + 1)) {
> + free(p_sw->lft_buf);
> + p_sw->lft_buf = NULL;
> + goto Exit;
> + }
> +
So buffers are freed only on next routing iteration (heavy sweep). Isn't
it better to drop it when LFT images from switches are received in
osm_lin_fwd_rcv.c?
Sasha
More information about the general
mailing list