[PATCH 3/8] net/sfc: use non-static queue span limit in flow action RSS
Ivan Malov
ivan.malov at oktetlabs.ru
Tue Feb 1 09:49:57 CET 2022
On EF10 boards, the limit on how many queues an RSS context
can address is 64. On EF100 boards, this parameter may vary.
Signed-off-by: Ivan Malov <ivan.malov at oktetlabs.ru>
Reviewed-by: Andrew Rybchenko <andrew.rybchenko at oktetlabs.ru>
Reviewed-by: Andy Moreton <amoreton at xilinx.com>
---
drivers/net/sfc/sfc_flow_rss.c | 8 ++++++--
drivers/net/sfc/sfc_flow_rss.h | 2 ++
2 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/net/sfc/sfc_flow_rss.c b/drivers/net/sfc/sfc_flow_rss.c
index 17876f11c1..1c94333b62 100644
--- a/drivers/net/sfc/sfc_flow_rss.c
+++ b/drivers/net/sfc/sfc_flow_rss.c
@@ -21,10 +21,13 @@
int
sfc_flow_rss_attach(struct sfc_adapter *sa)
{
+ const efx_nic_cfg_t *encp = efx_nic_cfg_get(sa->nic);
struct sfc_flow_rss *flow_rss = &sa->flow_rss;
sfc_log_init(sa, "entry");
+ flow_rss->qid_span_max = encp->enc_rx_scale_indirection_max_nqueues;
+
TAILQ_INIT(&flow_rss->ctx_list);
sfc_log_init(sa, "done");
@@ -46,6 +49,7 @@ sfc_flow_rss_parse_conf(struct sfc_adapter *sa,
struct sfc_flow_rss_conf *out, uint16_t *sw_qid_minp)
{
struct sfc_adapter_shared * const sas = sfc_sa2shared(sa);
+ const struct sfc_flow_rss *flow_rss = &sa->flow_rss;
const struct sfc_rss *ethdev_rss = &sas->rss;
uint16_t sw_qid_min;
uint16_t sw_qid_max;
@@ -156,9 +160,9 @@ sfc_flow_rss_parse_conf(struct sfc_adapter *sa,
out->qid_span = sw_qid_max - sw_qid_min + 1;
- if (out->qid_span > EFX_MAXRSS) {
+ if (out->qid_span > flow_rss->qid_span_max) {
sfc_err(sa, "flow-rss: parse: queue ID span %u is too large; MAX=%u",
- out->qid_span, EFX_MAXRSS);
+ out->qid_span, flow_rss->qid_span_max);
return EINVAL;
}
diff --git a/drivers/net/sfc/sfc_flow_rss.h b/drivers/net/sfc/sfc_flow_rss.h
index cb2355ab67..e9f798a8f3 100644
--- a/drivers/net/sfc/sfc_flow_rss.h
+++ b/drivers/net/sfc/sfc_flow_rss.h
@@ -42,6 +42,8 @@ struct sfc_flow_rss_ctx {
TAILQ_HEAD(sfc_flow_rss_ctx_list, sfc_flow_rss_ctx);
struct sfc_flow_rss {
+ unsigned int qid_span_max;
+
unsigned int bounce_tbl[EFX_RSS_TBL_SIZE];
struct sfc_flow_rss_ctx_list ctx_list;
--
2.30.2
More information about the dev
mailing list