lkml.org 
[lkml]   [2019]   [Jun]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.0 28/36] bnxt_en: Reduce memory usage when running in kdump kernel.
    Date
    From: Michael Chan <michael.chan@broadcom.com>

    [ Upstream commit d629522e1d66561f38e5c8d4f52bb6d254ec0707 ]

    Skip RDMA context memory allocations, reduce to 1 ring, and disable
    TPA when running in the kdump kernel. Without this patch, the driver
    fails to initialize with memory allocation errors when running in a
    typical kdump kernel.

    Fixes: cf6daed098d1 ("bnxt_en: Increase context memory allocations on 57500 chips for RDMA.")
    Signed-off-by: Michael Chan <michael.chan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    ---
    drivers/net/ethernet/broadcom/bnxt/bnxt.c | 4 ++--
    drivers/net/ethernet/broadcom/bnxt/bnxt.h | 4 +++-
    2 files changed, 5 insertions(+), 3 deletions(-)

    --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
    +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
    @@ -6338,7 +6338,7 @@ static int bnxt_alloc_ctx_mem(struct bnx
    if (!ctx || (ctx->flags & BNXT_CTX_FLAG_INITED))
    return 0;

    - if (bp->flags & BNXT_FLAG_ROCE_CAP) {
    + if ((bp->flags & BNXT_FLAG_ROCE_CAP) && !is_kdump_kernel()) {
    pg_lvl = 2;
    extra_qps = 65536;
    extra_srqs = 8192;
    @@ -10279,7 +10279,7 @@ static int bnxt_set_dflt_rings(struct bn

    if (sh)
    bp->flags |= BNXT_FLAG_SHARED_RINGS;
    - dflt_rings = netif_get_num_default_rss_queues();
    + dflt_rings = is_kdump_kernel() ? 1 : netif_get_num_default_rss_queues();
    /* Reduce default rings on multi-port cards so that total default
    * rings do not exceed CPU count.
    */
    --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.h
    +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.h
    @@ -20,6 +20,7 @@

    #include <linux/interrupt.h>
    #include <linux/rhashtable.h>
    +#include <linux/crash_dump.h>
    #include <net/devlink.h>
    #include <net/dst_metadata.h>
    #include <net/switchdev.h>
    @@ -1367,7 +1368,8 @@ struct bnxt {
    #define BNXT_CHIP_TYPE_NITRO_A0(bp) ((bp)->flags & BNXT_FLAG_CHIP_NITRO_A0)
    #define BNXT_RX_PAGE_MODE(bp) ((bp)->flags & BNXT_FLAG_RX_PAGE_MODE)
    #define BNXT_SUPPORTS_TPA(bp) (!BNXT_CHIP_TYPE_NITRO_A0(bp) && \
    - !(bp->flags & BNXT_FLAG_CHIP_P5))
    + !(bp->flags & BNXT_FLAG_CHIP_P5) && \
    + !is_kdump_kernel())

    /* Chip class phase 5 */
    #define BNXT_CHIP_P5(bp) \

    \
     
     \ /
      Last update: 2019-06-03 11:13    [W:2.952 / U:0.256 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site