bnx2x: save RAM in kdump kernel by using a single queue
authorMichal Schmidt <mschmidt@redhat.com>
Tue, 25 Feb 2014 15:04:25 +0000 (16:04 +0100)
committerDavid S. Miller <davem@davemloft.net>
Wed, 26 Feb 2014 20:27:50 +0000 (15:27 -0500)
When running in a kdump kernel, make sure to use only a single ethernet
queue even if a num_queues option in /etc/modprobe.d/*.conf would specify
otherwise. This saves memory, which tends to be scarce in kdump.

This saves about 40 MB in the kdump environment on a setup with
num_queues=8 in the config file.

Signed-off-by: Michal Schmidt <mschmidt@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c

index 34d124998823da09dd09fcdd2d5278913479ad4e..26bc25bd465dc155bc36b785ae6053505e7e0190 100644 (file)
@@ -62,6 +62,11 @@ static void bnx2x_add_all_napi(struct bnx2x *bp)
 static int bnx2x_calc_num_queues(struct bnx2x *bp)
 {
        int nq = bnx2x_num_queues ? : netif_get_num_default_rss_queues();
+
+       /* Reduce memory usage in kdump environment by using only one queue */
+       if (reset_devices)
+               nq = 1;
+
        nq = clamp(nq, 1, BNX2X_MAX_QUEUES(bp));
        return nq;
 }