]> www.infradead.org Git - users/jedix/linux-maple.git/commit
mlx4: change the ICM table allocations to lowest needed size
authorDaniel Jurgens <danielj@mellanox.com>
Tue, 6 Mar 2018 21:49:08 +0000 (13:49 -0800)
committerJack Vogel <jack.vogel@oracle.com>
Thu, 29 Mar 2018 04:07:23 +0000 (21:07 -0700)
commite7567cf1d53bddbe233dabea5c632658671dae9e
tree17c5bf6c9b0788d6576793b61c783222b0868b40
parentddc6ef15ce04851dc02bd68562405b8ff743c841
mlx4: change the ICM table allocations to lowest needed size

The driver currently allocates 256KB contig memort for ICM
tables which puts pressure on memory management to allocate such
large contig page in fragmented memory system. Such allocation
itself contributes to memory fragmentation and at times user
process stalls for 10's of seconds leading to slow path
dumps with mm lock contention.

This change makes the driver allocate lowest page size
needed for ICM allocation(8K), which fixes these stalls.

With 4K chunk sizes the QP table size is 4MB, which cannot be allocated
by kmalloc. A larger design change would be neccesary to break up the
table. With 8k chunks the same table is 2MB, which can be allocated by
kmalloc. This large table allocation only happens once at driver load
time.

Orabug: 27718303

Signed-off-by: Daniel Jurgens <danielj@mellanox.com>
Signed-off-by: Santosh Shilimkar <santosh.shilimkar@oracle.com>
Signed-off-by: Qing Huang <qing.huang@oracle.com>
Reviewed-by: Ajaykumar Hotchandani <ajaykumar.hotchandani@oracle.com>
Reviewed-by: Yuval Shaia <yuval.shaia@oracle.com>
drivers/net/ethernet/mellanox/mlx4/icm.c