]> git.droids-corp.org - dpdk.git/commitdiff
net/sfc: use non-static queue span limit in flow action RSS
authorIvan Malov <ivan.malov@oktetlabs.ru>
Tue, 1 Feb 2022 08:49:57 +0000 (11:49 +0300)
committerFerruh Yigit <ferruh.yigit@intel.com>
Wed, 2 Feb 2022 17:37:31 +0000 (18:37 +0100)
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@oktetlabs.ru>
Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
Reviewed-by: Andy Moreton <amoreton@xilinx.com>
drivers/net/sfc/sfc_flow_rss.c
drivers/net/sfc/sfc_flow_rss.h

index 17876f11c1b9c61535a4ac4ad07363ebd6479e60..1c94333b627bebf33fe9d06265da8bfa0eae72cc 100644 (file)
 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;
        }
 
index cb2355ab6717a9ad7f9eebf26e264da1da9b053b..e9f798a8f35ea02e6bb0983faf57ee467404976d 100644 (file)
@@ -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;