On Thu, Jul 21, 2016 at 8:15 AM, Alexei Starovoitov <alexei.starovoi...@gmail.com> wrote: > On Thu, Jul 21, 2016 at 01:20:02AM +0300, Saeed Mahameed wrote: >> From: Hadar Hen Zion <had...@mellanox.com> >> >> Add support for query the minimum inline mode from the Firmware. >> It is required for correct TX steering according to L3/L4 packet >> headers. >> >> Each send queue (SQ) has inline mode that defines the minimal required >> headers that needs to be copied into the SQ WQE. >> The driver asks the Firmware for the wqe_inline_mode device capability >> value. In case the device capability defined as "vport context" the >> driver must check the reported min inline mode from the vport context >> before creating its SQs. >> >> Signed-off-by: Hadar Hen Zion <had...@mellanox.com> >> Signed-off-by: Saeed Mahameed <sae...@mellanox.com> > ... >> + int outlen = MLX5_ST_SZ_BYTES(query_nic_vport_context_out); >> + u32 *out; >> + >> + out = mlx5_vzalloc(outlen); >> + if (!out) >> + return; > > Just discovered this... > outlen is a small constant here, yet you want to try to vmalloc it? > What is the point? > There are 67 places in mlx5 where failed kmalloc is retried with > vmalloc... was that path ever tested?
The point is that there are a lot of places in the code that want to allocate huge commands and mlx5_vzalloc is a nice black box that provides the method to allocate such huge chunks of memory. Now sometimes people tend to reuse same pieces of code for code consistency. I don't see any harm from doing that.