From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 819663E2740 for ; Fri, 8 May 2026 12:59:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.17 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778245199; cv=none; b=qVznKwX8mDdS2x4iY7T7k+mwgNJxfz4ipE3kNUCkkpAk9LtxqWvOfG8qelPWPOLRvP9dHDJE18EdvQwjlM9baRKckDJ4YcDb+vRLf3ZWLlVz4n5EsWvYCmo7Hr8GwD38c/qSpmWq+c09RNES7tiEhQJG+myIJPOT+aFVzeVdtdM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1778245199; c=relaxed/simple; bh=iklsXo7aHQ+sllwR/PNgAvzIDAObOmJ/ipg8E85aN+M=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References: MIME-Version; b=J8fJ8mYUTz6lzwSGkUyoSd+m1MPq4iTyFjwwkwlHLzdSOOU6pxutUPtGkFx988wmroBDRgm9ThxZiJ7yTh5e1crA1ean7O1wr2QMjKrNZ6AyV4VGMJU2mJvNzk8RO5wLWJ+Yr49CQffsJS+VvcyVqdNCJb1RUUBvHsKWpeSbhoY= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com; spf=pass smtp.mailfrom=intel.com; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b=A8lceazV; arc=none smtp.client-ip=198.175.65.17 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=intel.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=intel.com header.i=@intel.com header.b="A8lceazV" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1778245198; x=1809781198; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=iklsXo7aHQ+sllwR/PNgAvzIDAObOmJ/ipg8E85aN+M=; b=A8lceazVU9o7ZtB7DI6Uk0jK1S384rzD8/H0/NLzxyYoQoTt4YSWKxS6 WCKCQ2OT7SRplWmYvqpFZg769uZ2kl4qGDqkWSl/ByZInf0O4xwcPs50V 3PG6DvfUVGNS+foNRStwI2u1JBOYc4OYaLOAj6AfaDUUz+mNBGaPOYpUg /42CNzuWZEVSnL8+HvZFSgyXdc8sjIroJnRPUx+1FfNb1se0fcD3ERtZr 1yq2NcUSkjTNIB1i7naw/NmmxS742ewe94CtHbd1hgKMykmHCG2gwmx9L WcEGbx33ieprnuRNe/rHWpFtrc/xoiPy+ufq2R/1wRV+kU+6lt3zwTRZI A==; X-CSE-ConnectionGUID: 57wwp0HTTEuIwzaEKJHa4A== X-CSE-MsgGUID: OJUUSDSgRl20EhMqNx3ngw== X-IronPort-AV: E=McAfee;i="6800,10657,11779"; a="79199949" X-IronPort-AV: E=Sophos;i="6.23,223,1770624000"; d="scan'208";a="79199949" Received: from fmviesa005.fm.intel.com ([10.60.135.145]) by orvoesa109.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 08 May 2026 05:59:58 -0700 X-CSE-ConnectionGUID: /ncxvfvSQCCVMr3vgQzT8g== X-CSE-MsgGUID: 3D11X78bQMuOPJCyqTOL9g== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,223,1770624000"; d="scan'208";a="241730147" Received: from irvmail002.ir.intel.com ([10.43.11.120]) by fmviesa005.fm.intel.com with ESMTP; 08 May 2026 05:59:52 -0700 Received: from vecna.igk.intel.com (vecna.igk.intel.com [10.123.220.17]) by irvmail002.ir.intel.com (Postfix) with ESMTP id 9E94C2FC41; Fri, 8 May 2026 13:59:50 +0100 (IST) From: Przemek Kitszel To: intel-wired-lan@lists.osuosl.org, Michal Schmidt , Jakub Kicinski , Jiri Pirko Cc: netdev@vger.kernel.org, Simon Horman , Tony Nguyen , Michal Swiatkowski , bruce.richardson@intel.com, Vladimir Medvedkin , padraig.j.connolly@intel.com, ananth.s@intel.com, timothy.miskell@intel.com, Jacob Keller , Lukasz Czapnik , Aleksandr Loktionov , Andrew Lunn , "David S. Miller" , Eric Dumazet , Paolo Abeni , Saeed Mahameed , Leon Romanovsky , Tariq Toukan , Mark Bloch , Przemek Kitszel , Jedrzej Jagielski Subject: [PATCH iwl-next v1 10/15] iavf: increase max number of queues to 256 Date: Fri, 8 May 2026 14:42:03 +0200 Message-Id: <20260508124208.11622-11-przemyslaw.kitszel@intel.com> X-Mailer: git-send-email 2.39.3 In-Reply-To: <20260508124208.11622-1-przemyslaw.kitszel@intel.com> References: <20260508124208.11622-1-przemyslaw.kitszel@intel.com> Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Increase the max number of queues that driver will handle to 256. Use old legacy limit in the virtchnl handling of iavf_map_queues(). Reviewed-by: Jedrzej Jagielski Signed-off-by: Przemek Kitszel --- drivers/net/ethernet/intel/iavf/iavf.h | 4 +++- drivers/net/ethernet/intel/iavf/iavf_main.c | 4 ++-- drivers/net/ethernet/intel/iavf/iavf_virtchnl.c | 15 ++++++++------- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/drivers/net/ethernet/intel/iavf/iavf.h b/drivers/net/ethernet/intel/iavf/iavf.h index a0c42f2357fb..569686d34ff4 100644 --- a/drivers/net/ethernet/intel/iavf/iavf.h +++ b/drivers/net/ethernet/intel/iavf/iavf.h @@ -87,8 +87,10 @@ struct iavf_vsi { #define IAVF_TX_DESC(R, i) (&(((struct iavf_tx_desc *)((R)->desc))[i])) #define IAVF_TX_CTXTDESC(R, i) \ (&(((struct iavf_tx_context_desc *)((R)->desc))[i])) + /* for "old" virtchnl opcodes that accept up to 16 queues */ #define IAVF_MAX_REQ_QUEUES_VCV1 16 +#define IAVF_MAX_REQ_QUEUES 256 #define IAVF_HKEY_ARRAY_SIZE ((IAVF_VFQF_HKEY_MAX_INDEX + 1) * 4) #define IAVF_HLUT_ARRAY_SIZE ((IAVF_VFQF_HLUT_MAX_INDEX + 1) * 4) @@ -108,7 +110,7 @@ struct iavf_q_vector { struct napi_struct napi; struct iavf_ring_container rx; struct iavf_ring_container tx; - u32 ring_mask; + DECLARE_BITMAP(ring_mask, IAVF_MAX_REQ_QUEUES); u8 itr_countdown; /* when 0 should adjust adaptive ITR */ u8 num_ringpairs; /* total number of ring pairs in vector */ u16 v_idx; /* index in the vsi->q_vector array. */ diff --git a/drivers/net/ethernet/intel/iavf/iavf_main.c b/drivers/net/ethernet/intel/iavf/iavf_main.c index 8149b01ae24a..abc0fe070ee7 100644 --- a/drivers/net/ethernet/intel/iavf/iavf_main.c +++ b/drivers/net/ethernet/intel/iavf/iavf_main.c @@ -439,7 +439,7 @@ iavf_map_vector_to_rxq(struct iavf_adapter *adapter, int v_idx, int r_idx) q_vector->rx.count++; q_vector->rx.next_update = jiffies + 1; q_vector->rx.target_itr = ITR_TO_REG(rx_ring->itr_setting); - q_vector->ring_mask |= BIT(r_idx); + set_bit(r_idx, q_vector->ring_mask); wr32(hw, IAVF_VFINT_ITRN1(IAVF_RX_ITR, q_vector->reg_idx), q_vector->rx.current_itr >> 1); q_vector->rx.current_itr = q_vector->rx.target_itr; @@ -5362,7 +5362,7 @@ static int iavf_probe(struct pci_dev *pdev, const struct pci_device_id *ent) pci_set_master(pdev); netdev = alloc_etherdev_mq(sizeof(struct iavf_adapter), - IAVF_MAX_REQ_QUEUES_VCV1); + IAVF_MAX_REQ_QUEUES); if (!netdev) { err = -ENOMEM; goto err_alloc_etherdev; diff --git a/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c b/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c index d3b5398b6130..9102bc4bddb0 100644 --- a/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c +++ b/drivers/net/ethernet/intel/iavf/iavf_virtchnl.c @@ -260,19 +260,19 @@ int iavf_send_vf_ptp_caps_msg(struct iavf_adapter *adapter) **/ static void iavf_validate_num_queues(struct iavf_adapter *adapter) { - if (adapter->vf_res->num_queue_pairs > IAVF_MAX_REQ_QUEUES_VCV1) { + if (adapter->vf_res->num_queue_pairs > IAVF_MAX_REQ_QUEUES) { struct virtchnl_vsi_resource *vsi_res; int i; dev_info(&adapter->pdev->dev, "Received %d queues, but can only have a max of %d\n", adapter->vf_res->num_queue_pairs, - IAVF_MAX_REQ_QUEUES_VCV1); + IAVF_MAX_REQ_QUEUES); dev_info(&adapter->pdev->dev, "Fixing by reducing queues to %d\n", - IAVF_MAX_REQ_QUEUES_VCV1); - adapter->vf_res->num_queue_pairs = IAVF_MAX_REQ_QUEUES_VCV1; + IAVF_MAX_REQ_QUEUES); + adapter->vf_res->num_queue_pairs = IAVF_MAX_REQ_QUEUES; for (i = 0; i < adapter->vf_res->num_vsis; i++) { vsi_res = &adapter->vf_res->vsi_res[i]; - vsi_res->num_queue_pairs = IAVF_MAX_REQ_QUEUES_VCV1; + vsi_res->num_queue_pairs = IAVF_MAX_REQ_QUEUES; } } } @@ -554,8 +554,9 @@ void iavf_map_queues(struct iavf_adapter *adapter) vecmap->vsi_id = adapter->vsi_res->vsi_id; vecmap->vector_id = v_idx + NONQ_VECS; - vecmap->txq_map = q_vector->ring_mask; - vecmap->rxq_map = q_vector->ring_mask; + vecmap->txq_map = bitmap_read(q_vector->ring_mask, 0, + IAVF_MAX_REQ_QUEUES_VCV1); + vecmap->rxq_map = vecmap->txq_map; vecmap->rxitr_idx = IAVF_RX_ITR; vecmap->txitr_idx = IAVF_TX_ITR; } -- 2.39.3