From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f44.google.com (mail-ej1-f44.google.com [209.85.218.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id E39E0386422 for ; Sat, 11 Jul 2026 09:23:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.44 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783761786; cv=none; b=sg4NQDXpGivCqzLGWuFbmoCg/9wuWYQ6KQKleQU8KGPGwiq28CkySoOERWG+d7cg/j0mzhUXFJ1Gv61i6Q4ol5fusXkWDBk9cVH62O+dcHyN55988JdvQydYgwGFLx8c2Kex8EZS0Wi0jKIwDMxCq3Qib3EyKUf4oh3/x+j5nlg= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783761786; c=relaxed/simple; bh=w5gP4i8nA4yRX2rouKTaGTuvg441hZXElpGa9JUERWQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UMXYy3gYUetBC8CMwIB1BbGVEY5EgsoDirp+zvj1kvUNEyhhlRqRMW3qhp7RM0xD62y+Sw2KxFMVuCZjSP0aiDX89FV4RMlIVc8An+GndOBralZlmNKhAW6S9JBVgM+xQMqd/k4CUHeqcONwOCZcLFCmlttVcNbB0et61bNAKTs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Zi0+QbBt; arc=none smtp.client-ip=209.85.218.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Zi0+QbBt" Received: by mail-ej1-f44.google.com with SMTP id a640c23a62f3a-c15ee037bc0so247476466b.3 for ; Sat, 11 Jul 2026 02:23:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783761783; x=1784366583; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=BtP7rhvmzwHbUusKt6iPMmMpBZakgxbufeBSajlZBtg=; b=Zi0+QbBtXYchHZJdQ/S2J2Dc+TPZ5fvy8N049QocBs1g3LSH3IlpgkikIrryNbh3HT UIyaPI5vj7B0adz9dHTyZxhkuhFsj+4v2On3dNzo/eAQIwXcmIxy1mRi3/wIjkNyaI8x cDYyUYixu6TeFY4GHRdWUd1us7SfsN01w5Va4Oi5LI6kpWnKIhFiBebDucy31hvy9aRi /CRGsp6demg26Vk/1qLAKdmef2FaktIf5G1NACHg8mkbsBn9tR7W32ImJ53ItLhJuUo5 usbnMA8XJERpAGAxSD+aqA4lxO6RiLmfL4ncepG3gTFeTa8eTDJ3ba4OXeCgK+DrcByx DUGQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783761783; x=1784366583; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=BtP7rhvmzwHbUusKt6iPMmMpBZakgxbufeBSajlZBtg=; b=jgBM2/2klUpdWovsOIFcUY7Z15t6S5saPeLFBGnx+LBgrGz3sICTcqCkhV3NVv/QYI 7PBmILtPQUNEquH9WHoRAq4MGiCnlpPaL4Vp5pPBcyp4ZJ7BSfmfwS6EN7/6cWruuINu CZu0XHlzP3MYHb514NrzuH78u05RQDrquwH3DWQHjmbp/avVV7dKfcPTGR2JDYCI5+Fh SWN9q+ffgZrsIHWhOsSyt1/5cZqbzOBZ3QclNQYpG9p8VSPnqkyIz8304GF9YMx40Oyz tcTDaHPjRCkxVXlfPoRYbbsp8wlX6QsvEZ/g8zrIc2kUVj5+moPU97LU9TXHn3IkEhox ONpg== X-Forwarded-Encrypted: i=1; AHgh+RpjMKesjGKV2/1HSCbgWdQU/L8U61f0G2HJw4uCeFqMgUGZhvu6tsOAbyDocEq/WQ8GqFku3zI=@vger.kernel.org X-Gm-Message-State: AOJu0Ywb8LI3Y95xWCOsxw9Mk7HMS/3AesOpjPwE7vuGFwU1Ldfyn/Pu 5nL+zoHL03hVzO3FKttvoyJpO6RsacjluYdKK99v8lu1MPh7SDb2WK8h X-Gm-Gg: AfdE7cna3VjlR+TH93Llf3O7EMVxyKUrUWMtxzPsTdjIwENFMBU9eykVfL2aY4Dj9eg 7ANNI+cLAh0aZPcNz4ByacFaZwPTypNRhw0CcDBwZAEWj369c/97wDuwKSsCS6ufynvhKiYpXFb fevBIhfXxrTlOnIRiIxgve2bAkbzsdGBNQYDu9bTWzmz5EUwaPDYr3piguRrYgyd5BzPJM9bGdN AM2kH7i6dSUwqS1GQN3Jmj/p7YiID7juNcY0L3rSV7j/rXRqIi3PW3XLqS9uTGZCCFEb30Q0Py5 Hzu6jQNHbTAfE4GyHEgCN2NiElYzyhuP0lHjDV6nVk8qtOihvROS+q8mpMQP9hITcC05vmQpwb7 HYRJ2DA3GKtME6Tdb1EHZTn1qEpnTNZv7m4jtfCwN3CAWAEjt3ipa9cVZ5Qp0pCjJWaJFHamvGL 1Rpluhblpml4lECxzLdBLvfxxorG0gjhUwawbbzINcO+Bt47ebCc759yzSshjQKa1mf/VnhnkPT uw4gEBe0iRTE8Bpo+RWUYburqhC73T/wxr91DZKt8CGDes= X-Received: by 2002:a17:906:f5a1:b0:c16:1579:762b with SMTP id a640c23a62f3a-c161f3b54ecmr79745966b.52.1783761783384; Sat, 11 Jul 2026 02:23:03 -0700 (PDT) Received: from 127.0.0.1localhost (82-132-221-54.dab.02.net. [82.132.221.54]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15d3859f69sm517493566b.27.2026.07.11.02.22.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 11 Jul 2026 02:23:02 -0700 (PDT) From: Pavel Begunkov To: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Simon Horman , netdev@vger.kernel.org Cc: io-uring@vger.kernel.org, asml.silence@gmail.com Subject: [RFC 8/9] io_uring/zcrx: steal niov refs Date: Sat, 11 Jul 2026 10:22:18 +0100 Message-ID: <421a7de8c5ddffd3461e416998f6fb034ffb0282.1783619193.git.asml.silence@gmail.com> X-Mailer: git-send-email 2.54.0 In-Reply-To: References: Precedence: bulk X-Mailing-List: netdev@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit In zcrx_release_skbs(), we reference all niovs of an skb and then immediately put them down. Optimise it by stealing the frags. Signed-off-by: Pavel Begunkov --- io_uring/zcrx.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/io_uring/zcrx.c b/io_uring/zcrx.c index 3d5d5c9fd9a5..23669471a8f0 100644 --- a/io_uring/zcrx.c +++ b/io_uring/zcrx.c @@ -1317,11 +1317,22 @@ static void zcrx_release_skbs(struct io_zcrx_ifq *ifq) { while (1) { struct sk_buff *skb = __ptr_ring_consume(&ifq->skb_ring); + struct skb_shared_info *shi; + unsigned i; if (!skb) break; - zcrx_user_ref_frags(ifq, skb, 0, -1U); + shi = skb_shinfo(skb); + for (i = 0; i < shi->nr_frags; i++) { + const skb_frag_t *frag = &shi->frags[i]; + struct net_iov *niov = netmem_to_net_iov(frag->netmem); + + /* Take niov references the skb holds */ + io_zcrx_get_niov_uref(niov); + } + shi->nr_frags = 0; + if (skb->fclone != SKB_FCLONE_UNAVAILABLE) __kfree_skb(skb); else -- 2.54.0