From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com [209.85.208.53]) (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 7A0BB38423A for ; Sat, 11 Jul 2026 09:12:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783761152; cv=none; b=imkVOP8sCymt9g74cloxy2HqPlSYQcwMghy4cmDueBG2vEfDgzzCLMrTlD2wGkQJbBv4Vd77FSRnQ1N5JMsRJZ4CUL2jmTOColuX8lBOCuPwSkgjwrOGhKHlxAHaPIEwWhY5YsCfiQ1OAs5T7fG7xUpZ01vJ7Y251Q66ktzCweM= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783761152; c=relaxed/simple; bh=y6yQSGnAR5XQ47wvKONskzfyKnoHkUX2B4v2Pz6YZH4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Sd6BB/yMxhMiKj2fKGzxqcU1gP7E+g4dUWpQoOF5Dlm3YpEI2X9ak77rAknu4s7NE9e5enf/2OIn1dbtcLCv8OkgsSGGashSbbjjmUnA+X2GS5ME2oOVStrKq04LhnoStx8TB0Y0bW0hW1tUz2GMs8XuWWnTZJEzOnmGvhXdWxg= 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=eude5mWc; arc=none smtp.client-ip=209.85.208.53 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="eude5mWc" Received: by mail-ed1-f53.google.com with SMTP id 4fb4d7f45d1cf-69a5ecbbfb2so2616486a12.2 for ; Sat, 11 Jul 2026 02:12:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783761149; x=1784365949; 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=usGHobRrb/n60uWolYcRXowPvM2AUlugjjkqCBNhRKI=; b=eude5mWcNyyus8asPYhEfH9d7sxcvBeCtJBCFjL3keMZM9eMn0yO6ssrJp3WbXGZDG /+cp7NdblLhg7iJpQfJH2iksvq0wTkP9CwtBePlsZtraYDS368To7QcSlste/K5EYYsf Fr6XEpK0g4PNJ8NjYRS2wY5MDvn6wqU4xAvyBaVQQZWJ4Iy0ffd7elvuIPu6Zap/Qq21 wO4bqu5Ai0JXXcrcq4E/j3afeDVhXxEX0BZLZQswcZNTiL7pNNtx3uZ8uLXcD069imMN sMIS1XjiR3TrF422RZV9ZBuesgqPvHU+NBZUoR/yMllQp8SOQ9x0MgXEIZh6DNR1y4U4 qo3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783761149; x=1784365949; 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=usGHobRrb/n60uWolYcRXowPvM2AUlugjjkqCBNhRKI=; b=mWrT1UyYE55QlkSrJudxX6F5FeMglYLysubKLNNgYNCYeDWDbo1O4AtGbL8gVQ1kFd wdvw06kRHGSe4vIi7roax3ufFpiBeLx/quT86Ovmm1gGA26RZIyPtpZgmrSTHJq/OMYi zb1MerUg+GboBjAySDd0FMJOoQidreHfcjOVPPbC8KKUGodJy1UxLEBuzqp7KeWwUNEX /60IVYOwLqBo5C8f98b+2ljxQc0T24eGyBNeRu5pcBhrLqTOXF6vh5YNHZtonEeimQo4 oDXQemWcAvRMa6dqXnHWncds4aTIsoTr81Yjdtwb+XStxqE/gZkH3wfTRxbuwDSiP39G eubA== X-Forwarded-Encrypted: i=1; AHgh+RqBkbbdoPC0TjKn0JpOxNMLGZW26vFjTbj88XFeY+cmhsPhAz0ooMRAOeb4fnA4i6Srlqhqo/Q=@vger.kernel.org X-Gm-Message-State: AOJu0YwA1ycwjm+eOg5X1/9BXPkoIG47N4LZ5TwxCcARl5EU5G2Sn6xV lUutRXFwIhHQoYUFsTqWOMim3aKHMYkUowzgWP2DYZ1Rd2M6uq0EZRzc X-Gm-Gg: AfdE7cnDnx5QOIRPEUYFKsN0kvXI1y32Nv4Yg7+ez9/RfG6nz/tVsolT2B2+8hpLjx3 CpYLl0j/WdkGqTfMhrr8rmbO92NTZcx4FZsHUChFRgTTQHK6aiMHUDIMM76G07bTdc/PdHbcf1S om0lHZfxaUF5xeTrLNHKydrw7eVOGK91D2e2zUa8Vi/v3LUZW4T2uX1p1zNYFo6HsDCMWDtMU6Z o+mAlfg85Apsx3hZ/s2YJHvIlVFnfxBlfqdXE7lawSOyAgrysfk6I3CsaNEd7HOaYhFJOcJiD6a G84s5uWFdpoCavNisdPQjtz/ekNxPmcTsMhHgPT/K6kCqvdCp0XKUBdE09/4mJhfXeQX9rUdAtD 79r3aYti+PdC9J+pbhwR745BVGEjx48CkJ5S45oeUnUPLGvABTQVg4xzhfzhPr+DrsuuQQ9pdfu r78AgtJnZn657i3DB0Ry5acJTiG9gdZFotZVh1MiOfUMQaSn1mQoknxqKEcTllEnwrsLI1Mh+ae kutlBzEG2EhJJu3ZH+Z89koWkD3kzVLFCLF1zgo69XeFW9X2NH6HbWcVg== X-Received: by 2002:a05:6402:158d:b0:69a:af38:2fc0 with SMTP id 4fb4d7f45d1cf-69c5f1212cbmr1028448a12.20.1783761148913; Sat, 11 Jul 2026 02:12:28 -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 4fb4d7f45d1cf-69c60d47188sm681191a12.27.2026.07.11.02.12.25 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 11 Jul 2026 02:12:27 -0700 (PDT) From: Pavel Begunkov To: io-uring@vger.kernel.org Cc: asml.silence@gmail.com, netdev@vger.kernel.org Subject: [PATCH review-only 07/17] io_uring/zcrx: add helper for deriving area token Date: Sat, 11 Jul 2026 10:11:30 +0100 Message-ID: <1805d75d8f37c1fa412d67394e2c7805bbfa15a9.1783616211.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 Add zcrx_area_id_to_token() to deduplicate the way the area token is calculated out of the area index. Signed-off-by: Pavel Begunkov --- io_uring/zcrx.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/io_uring/zcrx.c b/io_uring/zcrx.c index 9f21ae61b862..cfbfbd262f90 100644 --- a/io_uring/zcrx.c +++ b/io_uring/zcrx.c @@ -39,6 +39,11 @@ #define IO_DMA_ATTR (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_WEAK_ORDERING) +static inline u64 zcrx_area_id_to_token(u32 area_id) +{ + return (u64)area_id << IORING_ZCRX_AREA_SHIFT; +} + static inline struct io_zcrx_ifq *io_pp_to_ifq(struct page_pool *pp) { return pp->mp_priv; @@ -527,7 +532,7 @@ static int io_zcrx_create_area(struct io_zcrx_ifq *ifq, area->free_count = nr_iovs; /* we're only supporting one area per ifq for now */ area->area_id = 0; - area_reg->rq_area_token = (u64)area->area_id << IORING_ZCRX_AREA_SHIFT; + area_reg->rq_area_token = zcrx_area_id_to_token(area->area_id); spin_lock_init(&area->freelist_lock); ret = io_zcrx_append_area(ifq, area); @@ -1525,7 +1530,7 @@ static bool io_zcrx_queue_cqe(struct io_kiocb *req, struct net_iov *niov, area = io_zcrx_iov_to_area(niov); offset = off + (net_iov_idx(niov) << ifq->niov_shift); rcqe = (struct io_uring_zcrx_cqe *)(cqe + 1); - rcqe->off = offset + ((u64)area->area_id << IORING_ZCRX_AREA_SHIFT); + rcqe->off = offset + zcrx_area_id_to_token(area->area_id); rcqe->__pad = 0; return true; } -- 2.54.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com [209.85.218.41]) (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 D1E4C3BB13A for ; Sat, 11 Jul 2026 10:40:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.41 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783766451; cv=none; b=M/NVlTTZOh5yZf643m3qZrEw6A/BKATsWORx81nNMNYqlhl3riB5XOq9qJP42JxMKSsiffzOCZ5o00X/ggu/hkbL/V3GH2yDNL+cFKUDj6typF/04443KCA29ooOfJDh7xbaqsnj+D6ykX8eewDCKfanL5cODy1orAbym4OWIGA= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1783766451; c=relaxed/simple; bh=y6yQSGnAR5XQ47wvKONskzfyKnoHkUX2B4v2Pz6YZH4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pC3D1pgScvtuJlOvzj4mJtr7Adf1UXxU56O0fz7U0gIcMKyL59SnxZ9VsHA6t3UCVlTEjHWTZ8bA9gfJWOLMcqnSFOOBscKQiFCIBlWFS8FOQ9RrBHBJ7JbC+b+TRJK+iR4rr/4J+BdH5j54bciagU0kD7Pk8pCFEZ0GkJlVtGs= 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=mY6WFpQ+; arc=none smtp.client-ip=209.85.218.41 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="mY6WFpQ+" Received: by mail-ej1-f41.google.com with SMTP id a640c23a62f3a-c15f47e6297so212944766b.0 for ; Sat, 11 Jul 2026 03:40:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1783766448; x=1784371248; 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=usGHobRrb/n60uWolYcRXowPvM2AUlugjjkqCBNhRKI=; b=mY6WFpQ+MPb1Lw04zw6LlT5891KSNwhd+JI7y/yKTbz92mu1sGYQsyhxag0133Sr4Y mjpJFKC3SF0p+PUcFGxeRxEmFFqPjAmDF/HWBjF4cFHoqAzjwgjM3kUcshVHnGUqu4aR Ivbif0oLjH8rZ54fVV2CAjxVzakHGYSYEvDGK7+5rzIEDFW8Q2DsarNpb9XDw/oCmceh l0gMZL7aTjaH131I7RlHbsAUyPhtiLf9vTYzyIzMCi78aR6mdJGcMvgd9b2HUp4UxVA0 KdBLtyEOsKVmuV9OjwIPsBZ07i/L4DxObt+hLOwUwZIWvIKp744+/mA0rPZZsxS1eRZc 0d/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783766448; x=1784371248; 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=usGHobRrb/n60uWolYcRXowPvM2AUlugjjkqCBNhRKI=; b=BxYy+E/bKJ6SreKnfHEnZHwdSa1kmKxg+MPZ8Wv7oGxjjn8xfYYOF2mFKATGKdXcXI TcPidEKmHGigtZMEMbYdZUAB1LK+crhYGLsIyf0Ul2YK6vKj7aWVdlp2YN1Zbd8Mr1jx xKLEFLU1oDOfY5AGc/Bjke87MCULWJSh3TOVP9BjTdDnnG9yfXE6dRmnl3Alc2EoXTvu l0Ntjpn8eizF3h0QxkdmQclaimpYddDJp6PKAna9if4fKWWqMwfjQ6jG73oA5Uw5JCcf mIBkfUFtJ427jp4sXukKf+cFWQ+oCZQHNBBTLE05muURYQ2kZfJDjaRmdit5iAy+L7z0 P4fQ== X-Forwarded-Encrypted: i=1; AHgh+RrtYr0UVlUwSODJzKTTnko1dwSIDY/T7kbgdFRd51kkSMfcNvdA8+sH5rfJKEZ3ijCFyC6yUA4=@vger.kernel.org X-Gm-Message-State: AOJu0Yw3SkF3eFpHaeG0esdvW7Dx7reTw7lav4GRGfAvFgANb8qpPHxH 9OA2NCkJY/KG4iIRuW8xLZdADGbJBGKn4fkzBqm9bKrzHdapHj+zjHRDg36LrA== X-Gm-Gg: AfdE7cnn+Rm+QGb1Ycdz4iZNWzAFqnzZC/P4b3wKYxVPRfPKuMPhE9aJHZYH/xXbvNG cw/Un+DubPCoVqxZepzSTIJgPSh6Q6g4Pw3T0uO+PFhpfjrNo8l/FPPR6+5M5V097njvxFzt9Yp PrX2AeFLmkvFFmViMzQjBkXao7BuABsanu/JxsvxZuY/nz82cPRLvUrQmo7li9eODEJkQIXJWlP QLbWFa0McclWUAlZ4jnVnD9B+3sSar4604AOWFloqHyoScS4jwuX5S9nckSSS4bNmcoyCfGrfo3 7QAroGT4zLDOQyMXbhxgKddhuT5h3D+DblS25Ag6InaEonzlp1dTIWK5Cz9BhYz4e6NXtG+G9/V FK7ofjZO/OztvQZ4NN5m2BCqO3DaZx1q1l+apDllOxIUnTsuCU+48EmrzA1Ty7supXqK8mFanVl tpwt7GWznECjo+q63dkFF0J0MTJgG1RuJc9tvnPCI4Tl2p7Dq5Zqd5VWoqwxOeUCMhqSPbOWxYe cV9XZR+4IIvjlfbocYcXJVuHdeppSscN3bn8WJbuujXs2D2w1JrJhk3ekZ4 X-Received: by 2002:a17:907:cf87:b0:bff:738c:7a64 with SMTP id a640c23a62f3a-c161e9fbea3mr101054366b.49.1783766448241; Sat, 11 Jul 2026 03:40:48 -0700 (PDT) Received: from 127.0.0.1localhost (82-132-222-132.dab.02.net. [82.132.222.132]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-c15d5de95e6sm483041566b.39.2026.07.11.03.40.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 11 Jul 2026 03:40:47 -0700 (PDT) From: Pavel Begunkov To: io-uring@vger.kernel.org Cc: asml.silence@gmail.com, netdev@vger.kernel.org Subject: [PATCH review-only 07/17] io_uring/zcrx: add helper for deriving area token Date: Sat, 11 Jul 2026 11:40:00 +0100 Message-ID: <1805d75d8f37c1fa412d67394e2c7805bbfa15a9.1783616211.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 Message-ID: <20260711104000.kopffk4FzKglUibFdDdzG9DqxZWYoRtYN3FLzODFLFE@z> Add zcrx_area_id_to_token() to deduplicate the way the area token is calculated out of the area index. Signed-off-by: Pavel Begunkov --- io_uring/zcrx.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/io_uring/zcrx.c b/io_uring/zcrx.c index 9f21ae61b862..cfbfbd262f90 100644 --- a/io_uring/zcrx.c +++ b/io_uring/zcrx.c @@ -39,6 +39,11 @@ #define IO_DMA_ATTR (DMA_ATTR_SKIP_CPU_SYNC | DMA_ATTR_WEAK_ORDERING) +static inline u64 zcrx_area_id_to_token(u32 area_id) +{ + return (u64)area_id << IORING_ZCRX_AREA_SHIFT; +} + static inline struct io_zcrx_ifq *io_pp_to_ifq(struct page_pool *pp) { return pp->mp_priv; @@ -527,7 +532,7 @@ static int io_zcrx_create_area(struct io_zcrx_ifq *ifq, area->free_count = nr_iovs; /* we're only supporting one area per ifq for now */ area->area_id = 0; - area_reg->rq_area_token = (u64)area->area_id << IORING_ZCRX_AREA_SHIFT; + area_reg->rq_area_token = zcrx_area_id_to_token(area->area_id); spin_lock_init(&area->freelist_lock); ret = io_zcrx_append_area(ifq, area); @@ -1525,7 +1530,7 @@ static bool io_zcrx_queue_cqe(struct io_kiocb *req, struct net_iov *niov, area = io_zcrx_iov_to_area(niov); offset = off + (net_iov_idx(niov) << ifq->niov_shift); rcqe = (struct io_uring_zcrx_cqe *)(cqe + 1); - rcqe->off = offset + ((u64)area->area_id << IORING_ZCRX_AREA_SHIFT); + rcqe->off = offset + zcrx_area_id_to_token(area->area_id); rcqe->__pad = 0; return true; } -- 2.54.0