From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.11]) (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 9CB6E397692; Thu, 5 Mar 2026 11:44:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=192.198.163.11 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772711099; cv=none; b=nP88OcEqbJfrQ4JLYDk40DxzXuMteBNcZF0MPDXbZr20XFtINEKViK6fypcVsQaxadadYpmKwOJbdbiKhJ1lv27PNu1cS0sGbkdXeLqf1crkg5l+rReB0Olnd+8xxMGy605xYiDDPCM2FjQWwwWmHizs3nn1qrGIyYrBj3611mM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772711099; c=relaxed/simple; bh=8YYa4oSKEYm0ROUncJM++ZnK2B1R2RGS0jojQfA5clM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UdNEigd4xPi6TKiZqTm88NOvXq+HTrgDCIfJvF5zffJ3f5PzqSVcfYvl2bTtypuNbgiOQXmKAlvhJOXIpFrrN8qRB/5uLDZhv+TPsCTreY1WhiDo9R46twyXu/wUEtJNwEQ+C6/ho6rQhglkBIh5Kv7KZb+Oirb8kDUh5PXtqds= 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=Uci16P++; arc=none smtp.client-ip=192.198.163.11 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="Uci16P++" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1772711098; x=1804247098; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=8YYa4oSKEYm0ROUncJM++ZnK2B1R2RGS0jojQfA5clM=; b=Uci16P++N+j/FqE2IU4dRYGfBKtNFOax63/tcLY9PqhSH5rLfIQc2YDp nkHZEeWpR+raUyvPZI3jXICpSmFZrAAVrouDE8C5VVPUDdZXO8XQvuSE5 aWPrpO3mm1WaWdKQZ3d4rjfsx1q60d6V/aVXN2Fdl2oiHIgfA0FnWYqXm xCw8Ni95cjRziIyC9iSu6apPfAKGgKlVlWMfkNnSoEzjyAP+GmOl4rBpb LT0Y9dh4GOdMOrUl2uA39VDIIDuJujpT0t7QIJtiiKhh1O1M1XKMYSKxq owC/X5EOZTDhPEtbfbM/U6PAj2D6aHzaGgCCcQN4ZuUQwfD0OiuZiTFg8 w==; X-CSE-ConnectionGUID: cI6gT5LRSAOfj1lX4MKR8Q== X-CSE-MsgGUID: aZSxjmtiRK+Lud/tndkcOw== X-IronPort-AV: E=McAfee;i="6800,10657,11719"; a="84428632" X-IronPort-AV: E=Sophos;i="6.23,102,1770624000"; d="scan'208";a="84428632" Received: from fmviesa005.fm.intel.com ([10.60.135.145]) by fmvoesa105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Mar 2026 03:44:57 -0800 X-CSE-ConnectionGUID: mbQVAOLNT1Wklc95JC1r/w== X-CSE-MsgGUID: Ke2MErpaSNOTg2om/Bd6OA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.23,102,1770624000"; d="scan'208";a="223345258" Received: from irvmail002.ir.intel.com ([10.43.11.120]) by fmviesa005.fm.intel.com with ESMTP; 05 Mar 2026 03:44:49 -0800 Received: from lincoln.igk.intel.com (lincoln.igk.intel.com [10.102.21.235]) by irvmail002.ir.intel.com (Postfix) with ESMTP id 2BCD628772; Thu, 5 Mar 2026 11:44:46 +0000 (GMT) From: Larysa Zaremba To: netdev@vger.kernel.org, bpf@vger.kernel.org, Jakub Kicinski Cc: Larysa Zaremba , Claudiu Manoil , Vladimir Oltean , Wei Fang , Clark Wang , Andrew Lunn , "David S. Miller" , Eric Dumazet , 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, linux-kernel@vger.kernel.org, intel-wired-lan@lists.osuosl.org, linux-kselftest@vger.kernel.org, Aleksandr Loktionov , Dragos Tatulea , Magnus Karlsson Subject: [PATCH net v5 2/9] xsk: introduce helper to determine rxq->frag_size Date: Thu, 5 Mar 2026 12:12:43 +0100 Message-ID: <20260305111253.2317394-3-larysa.zaremba@intel.com> X-Mailer: git-send-email 2.52.0 In-Reply-To: <20260305111253.2317394-1-larysa.zaremba@intel.com> References: <20260305111253.2317394-1-larysa.zaremba@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 rxq->frag_size is basically a step between consecutive strictly aligned frames. In ZC mode, chunk size fits exactly, but if chunks are unaligned, there is no safe way to determine accessible space to grow tailroom. Report frag_size to be zero, if chunks are unaligned, chunk_size otherwise. Fixes: 24ea50127ecf ("xsk: support mbuf on ZC RX") Reviewed-by: Aleksandr Loktionov Signed-off-by: Larysa Zaremba --- include/net/xdp_sock_drv.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/include/net/xdp_sock_drv.h b/include/net/xdp_sock_drv.h index aefc368449d5..6b9ebae2dc95 100644 --- a/include/net/xdp_sock_drv.h +++ b/include/net/xdp_sock_drv.h @@ -51,6 +51,11 @@ static inline u32 xsk_pool_get_rx_frame_size(struct xsk_buff_pool *pool) return xsk_pool_get_chunk_size(pool) - xsk_pool_get_headroom(pool); } +static inline u32 xsk_pool_get_rx_frag_step(struct xsk_buff_pool *pool) +{ + return pool->unaligned ? 0 : xsk_pool_get_chunk_size(pool); +} + static inline void xsk_pool_set_rxq_info(struct xsk_buff_pool *pool, struct xdp_rxq_info *rxq) { @@ -337,6 +342,11 @@ static inline u32 xsk_pool_get_rx_frame_size(struct xsk_buff_pool *pool) return 0; } +static inline u32 xsk_pool_get_rx_frag_step(struct xsk_buff_pool *pool) +{ + return 0; +} + static inline void xsk_pool_set_rxq_info(struct xsk_buff_pool *pool, struct xdp_rxq_info *rxq) { -- 2.52.0