Sasha,

On Thu, Oct 15, 2009 at 6:30 PM, Hal Rosenstock <[email protected]> wrote:
>
> Heap memory consumption by the unicast and multicast routing tables can be
> reduced.
>
> This patch is analagous to the previous patch doing this for the unicast
> routing tables (LFTs).
>
> Using valgrind --tool=massif (for heap profiling), there are couple of place
> ->38.75% (11,206,656B) 0x43267E: osm_switch_new (osm_switch.c:134)
> ->12.89% (3,728,256B) 0x40F8C9: osm_mcast_tbl_init (osm_mcast_tbl.c:96)
>
> osm_mcast_tbl_init (osm_mcast_tbl.c:96):
>        p_tbl->p_mask_tbl = malloc(p_tbl->num_entries *
>                                   (IB_MCAST_POSITION_MAX +
>                                    1) * IB_MCAST_MASK_SIZE / 8);
>
> num_entries above is set based on the switch's MulticastFDBCap
> (indicated in it's SM class SwitchInfo attribute).
>
> MFTs are only be increased in size and are never reduced in size. If a realloc
> for MFT fails, it is treated as a fatal error and OpenSM is exited.
>
> Signed-off-by: Hal Rosenstock <[email protected]>
> ---
> Changes since v3:
> Renamed mft_size to mft_depth and added description in osm_mcast_tbl.h
> Removed vestigial realloc mask tbl call in osm_dump.c
> Simplified max_mlid determination in alloc_mfts
> Added return value to osm_mcast_tbl_realloc_mask_tbl
> Added return value to alloc_mfts
> Handle alloc_mfts failure in osm_mcast_mgr_process/process_mgroups
> Renamed osm_mcast_tbl_realloc_mask_tbl to osm_mcast_tbl_realloc
> In osm_mcast_tbl_realloc, simplified mft_depth calculation
>
> Changes since v2:
> MFT allocation during routing preparation rather than on table access
>
> Changes since v1:
> MFT allocation based on actual MLID requests
>

Please ignore this. I'll resubmit once we get past the mcast tbl
change for max LID host order.

-- Hal

<snip...>
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to