From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.16]) (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 D469B35D5FC; Thu, 12 Feb 2026 19:03:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=198.175.65.16 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770923014; cv=none; b=kc1aph5SD0JMZkYzRDS/Ln2K0PPbs+S/THGA+6UNIG9P4bm+xVyuXcgq5mZzXHX01YMoqihwt2qa0eWF91mXuVBRzZSgi40Tdjp/PDthly1+pF3mjcDODcrB3Aaymna9m/U9M4kz53gfSIE7EBaTsQdUl44ToMHoivgvQXIUB28= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1770923014; c=relaxed/simple; bh=GFXnOAyxtKR5V8VpPrssQCdBfk+tR0Ts3zMSPvStYnw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pqu2Icdb9fBNaJcEbs2ktMDmMyAoNAq7utLBNrIZ/SoCrn707GgCsQt3y3O6qYxxUm9cpy8f83VdxPbdF14o+lHV9FPUHS459IlA2HQFGQB+jC5fiUSQnOhrkFSdAgUfPFOW0Gpsvph9LAImeGZVIqEdyWD22iKPCJFvaEv/gQw= 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=SbfRkmz+; arc=none smtp.client-ip=198.175.65.16 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="SbfRkmz+" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1770923013; x=1802459013; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=GFXnOAyxtKR5V8VpPrssQCdBfk+tR0Ts3zMSPvStYnw=; b=SbfRkmz+xlTHIK9QdVfBSD5gphvhvkBvfktK7tyc5dRTwGVlvUfuURIs sFli40xoFQWLzQwVO00Wg3u//TRiFaO3IGdzTg89oi3YxSoSrBPrkOTSk tjApWDEP5Tc543qUabVxnWtt27z1KTXuBDPBTMYDb205zzL1MmydUyi88 coRWosOUHtnWGhNPoAndANylQSBaGq5g0n7qOYCeNwLfyshaER6bhUruD +iQpE/nyxxMBNXBTkRoRA3T04T9Rd0CFzpwJw1TNcJX4gg2giZE6FzxsJ bJkuFPNqkwZb2ydaQX8Vd3MOVW8GV3WUNrjBqkNG+EY2LuJ00OMl+/CnZ A==; X-CSE-ConnectionGUID: NFME5MNqQKa1uE3Hp6sBgw== X-CSE-MsgGUID: TJ84vaj8QrSUSsIrwznoDg== X-IronPort-AV: E=McAfee;i="6800,10657,11699"; a="72288686" X-IronPort-AV: E=Sophos;i="6.21,287,1763452800"; d="scan'208";a="72288686" Received: from fmviesa004.fm.intel.com ([10.60.135.144]) by orvoesa108.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Feb 2026 11:03:32 -0800 X-CSE-ConnectionGUID: 8/48eMQHTjK7DjeHHwgYWw== X-CSE-MsgGUID: CVL8VXh6R7m5ZgQDetdyWw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.21,287,1763452800"; d="scan'208";a="216886782" Received: from irvmail002.ir.intel.com ([10.43.11.120]) by fmviesa004.fm.intel.com with ESMTP; 12 Feb 2026 11:03:23 -0800 Received: from lincoln.igk.intel.com (lincoln.igk.intel.com [10.102.21.235]) by irvmail002.ir.intel.com (Postfix) with ESMTP id F143732C91; Thu, 12 Feb 2026 19:03:20 +0000 (GMT) From: Larysa Zaremba To: bpf@vger.kernel.org Cc: Larysa Zaremba , Claudiu Manoil , Vladimir Oltean , Wei Fang , Clark Wang , Andrew Lunn , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Tony Nguyen , Przemek Kitszel , Alexei Starovoitov , Daniel Borkmann , Jesper Dangaard Brouer , John Fastabend , Stanislav Fomichev , Andrii Nakryiko , Martin KaFai Lau , Eduard Zingerman , Song Liu , Yonghong Song , KP Singh , Hao Luo , Jiri Olsa , Simon Horman , Shuah Khan , Alexander Lobakin , Maciej Fijalkowski , "Bastien Curutchet (eBPF Foundation)" , Tushar Vyavahare , Jason Xing , =?UTF-8?q?Ricardo=20B=2E=20Marli=C3=A8re?= , Eelco Chaudron , Lorenzo Bianconi , Toke Hoiland-Jorgensen , imx@lists.linux.dev, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, intel-wired-lan@lists.osuosl.org, linux-kselftest@vger.kernel.org, Aleksandr Loktionov , Dragos Tatulea Subject: [PATCH bpf v2 7/9] idpf: use truesize as XDP RxQ info frag_size Date: Thu, 12 Feb 2026 19:33:22 +0100 Message-ID: <20260212183328.1883148-9-larysa.zaremba@intel.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260212183328.1883148-2-larysa.zaremba@intel.com> References: <20260212183328.1883148-2-larysa.zaremba@intel.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The only user of frag_size field in XDP RxQ info is bpf_xdp_frags_increase_tail(). It clearly expects whole buffer size instead of DMA write size. Different assumptions in idpf driver configuration lead to negative tailroom. To make it worse, buffer sizes are not actually uniform in idpf when splitq is enabled, as there are several buffer queues, so rxq->rx_buf_size is meaningless in this case. Use rxq->truesize as a frag_size for singleq and truesize of the first bufq in AF_XDP ZC, as there is only one. Disable growinf tail for regular splitq. Fixes: ac8a861f632e ("idpf: prepare structures to support XDP") Reviewed-by: Aleksandr Loktionov Signed-off-by: Larysa Zaremba --- drivers/net/ethernet/intel/idpf/xdp.c | 8 +++++++- drivers/net/ethernet/intel/idpf/xsk.c | 1 + 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/intel/idpf/xdp.c b/drivers/net/ethernet/intel/idpf/xdp.c index 958d16f87424..a152c9a26976 100644 --- a/drivers/net/ethernet/intel/idpf/xdp.c +++ b/drivers/net/ethernet/intel/idpf/xdp.c @@ -46,11 +46,17 @@ static int __idpf_xdp_rxq_info_init(struct idpf_rx_queue *rxq, void *arg) { const struct idpf_vport *vport = rxq->q_vector->vport; bool split = idpf_is_queue_model_split(vport->rxq_model); + u32 frag_size = 0; int err; + if (idpf_queue_has(XSK, rxq) && split) + frag_size = rxq->bufq_sets[0].bufq.truesize; + else if (!split) + frag_size = rxq->truesize; + err = __xdp_rxq_info_reg(&rxq->xdp_rxq, vport->netdev, rxq->idx, rxq->q_vector->napi.napi_id, - rxq->rx_buf_size); + frag_size); if (err) return err; diff --git a/drivers/net/ethernet/intel/idpf/xsk.c b/drivers/net/ethernet/intel/idpf/xsk.c index fd2cc43ab43c..febe1073b9b4 100644 --- a/drivers/net/ethernet/intel/idpf/xsk.c +++ b/drivers/net/ethernet/intel/idpf/xsk.c @@ -401,6 +401,7 @@ int idpf_xskfq_init(struct idpf_buf_queue *bufq) bufq->pending = fq.pending; bufq->thresh = fq.thresh; bufq->rx_buf_size = fq.buf_len; + bufq->truesize = xsk_pool_get_rx_frag_step(fq.pool); if (!idpf_xskfq_refill(bufq)) netdev_err(bufq->pool->netdev, -- 2.52.0