linux/drivers/net/mlx4
Roland Dreier e4044cfc49 mlx4_core: Keep free count for MTT buddy allocator
MTT entries are allocated with a buddy allocator, which just keeps
bitmaps for each level of the buddy table.  However, all free space
starts out at the highest order, and small allocations start scanning
from the lowest order.  When the lowest order tables have no free
space, this can lead to scanning potentially millions of bits before
finding a free entry at a higher order.

We can avoid this by just keeping a count of how many free entries
each order has, and skipping the bitmap scan when an order is
completely empty.  This provides a nice performance boost for a
negligible increase in memory usage.

Signed-off-by: Roland Dreier <rolandd@cisco.com>
2008-07-22 14:19:40 -07:00
..
alloc.c mlx4_core: Add HW queues allocation helpers 2008-04-25 14:27:08 -07:00
catas.c mlx4_core: Fix confusion between mlx4_event and mlx4_dev_event enums 2008-04-16 21:01:08 -07:00
cmd.c mlx4_code: Add missing FW status return code 2008-07-22 14:19:39 -07:00
cq.c mlx4_core: Add a way to set the "collapsed" CQ flag 2008-04-29 13:46:50 -07:00
eq.c mlx4_core: Fix confusion between mlx4_event and mlx4_dev_event enums 2008-04-16 21:01:08 -07:00
fw.c mlx4_core: Add module parameter to enable QoS support 2008-07-22 14:19:37 -07:00
fw.h mlx4_core: Use MOD_STAT_CFG command to get minimal page size 2008-07-14 23:48:53 -07:00
icm.c SG: Change sg_set_page() to take length and offset argument 2007-10-24 11:20:47 +02:00
icm.h mlx4_core: Write MTTs from CPU instead with of WRITE_MTT FW command 2007-10-09 19:59:16 -07:00
intf.c mlx4_core: Fix confusion between mlx4_event and mlx4_dev_event enums 2008-04-16 21:01:08 -07:00
main.c mlx4_core: Use MOD_STAT_CFG command to get minimal page size 2008-07-14 23:48:53 -07:00
Makefile IB/mlx4: Add a driver Mellanox ConnectX InfiniBand adapters 2007-05-08 18:00:38 -07:00
mcg.c IB/mlx4: Add support for blocking multicast loopback packets 2008-07-14 23:48:48 -07:00
mlx4.h mlx4_core: Keep free count for MTT buddy allocator 2008-07-22 14:19:40 -07:00
mr.c mlx4_core: Keep free count for MTT buddy allocator 2008-07-22 14:19:40 -07:00
pd.c mlx4_core: Fix section mismatches 2007-10-10 15:43:54 -07:00
profile.c IB/mlx4: Add a driver Mellanox ConnectX InfiniBand adapters 2007-05-08 18:00:38 -07:00
qp.c mlx4_core: Add helper to move QP to ready-to-send 2008-04-25 14:52:32 -07:00
reset.c mlx4_core: Wait 1 second after reset before accessing device 2007-08-13 08:47:44 -07:00
srq.c mlx4_core: Fix section mismatches 2007-10-10 15:43:54 -07:00