mlx4_core: Scale size of MTT table with system RAM
authorRoland Dreier <roland@purestorage.com>
Mon, 5 Mar 2012 18:05:28 +0000 (10:05 -0800)
committerRoland Dreier <roland@purestorage.com>
Mon, 12 Mar 2012 23:24:59 +0000 (16:24 -0700)
commitdb5a7a65c05867cb6ff5cb6d556a0edfce631d2d
treefdb7cb84d4ae634303c5337203ce482ae4c83c97
parent096335b3f9830b90d13aee77252cf6f5f12a258c
mlx4_core: Scale size of MTT table with system RAM

The current driver defaults to 1M MTT segments, where each segment holds
8 MTT entries.  This limits the total memory registered to 8M * PAGE_SIZE
which is 32GB with 4K pages.  Since systems that have much more memory
are pretty common now (at least among systems with InfiniBand hardware),
this limit ends up getting hit in practice quite a bit.

Handle this by having the driver allocate at least enough MTT entries to
cover 2 * totalram pages.

Signed-off-by: Roland Dreier <roland@purestorage.com>
drivers/net/ethernet/mellanox/mlx4/mlx4.h
drivers/net/ethernet/mellanox/mlx4/profile.c