Commit 8784ac02 authored by Harish Chegondi's avatar Harish Chegondi Committed by Doug Ledford

IB/hfi1: Modify the default number of kernel receive conexts

Currently, the default number of kernel receive contexts is set to the
number of NUMA nodes on the system plus one for control context. However,
the systems that have a single socket and/or have NUMA disabled in the BIOS
will have only one receive context by default. This patch would ensure that
by default there will be at least two kernel receive contexts plus one for
control context regardless of the number of NUMA nodes on the system. The
user can override the default number of kernel receive contexts with the
krcvqs module parameter.
Reviewed-by: default avatarDean Luick <dean.luick@intel.com>
Reviewed-by: default avatarMike Marciniszyn <mike.marciniszyn@intel.com>
Signed-off-by: default avatarHarish Chegondi <harish.chegondi@intel.com>
Signed-off-by: default avatarDennis Dalessandro <dennis.dalessandro@intel.com>
Signed-off-by: default avatarDoug Ledford <dledford@redhat.com>
parent c72cfe3e
...@@ -122,6 +122,7 @@ struct flag_table { ...@@ -122,6 +122,7 @@ struct flag_table {
#define SEC_SC_HALTED 0x4 /* per-context only */ #define SEC_SC_HALTED 0x4 /* per-context only */
#define SEC_SPC_FREEZE 0x8 /* per-HFI only */ #define SEC_SPC_FREEZE 0x8 /* per-HFI only */
#define DEFAULT_KRCVQS 2
#define MIN_KERNEL_KCTXTS 2 #define MIN_KERNEL_KCTXTS 2
#define FIRST_KERNEL_KCTXT 1 #define FIRST_KERNEL_KCTXT 1
/* sizes for both the QP and RSM map tables */ /* sizes for both the QP and RSM map tables */
...@@ -12773,7 +12774,6 @@ static int set_up_context_variables(struct hfi1_devdata *dd) ...@@ -12773,7 +12774,6 @@ static int set_up_context_variables(struct hfi1_devdata *dd)
/* /*
* Kernel receive contexts: * Kernel receive contexts:
* - min of 2 or 1 context/numa (excluding control context)
* - Context 0 - control context (VL15/multicast/error) * - Context 0 - control context (VL15/multicast/error)
* - Context 1 - first kernel context * - Context 1 - first kernel context
* - Context 2 - second kernel context * - Context 2 - second kernel context
...@@ -12787,9 +12787,7 @@ static int set_up_context_variables(struct hfi1_devdata *dd) ...@@ -12787,9 +12787,7 @@ static int set_up_context_variables(struct hfi1_devdata *dd)
*/ */
num_kernel_contexts = n_krcvqs + 1; num_kernel_contexts = n_krcvqs + 1;
else else
num_kernel_contexts = num_online_nodes() + 1; num_kernel_contexts = DEFAULT_KRCVQS + 1;
num_kernel_contexts =
max_t(int, MIN_KERNEL_KCTXTS, num_kernel_contexts);
/* /*
* Every kernel receive context needs an ACK send context. * Every kernel receive context needs an ACK send context.
* one send context is allocated for each VL{0-7} and VL15 * one send context is allocated for each VL{0-7} and VL15
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment