koSMXRCW0ClJ1COPfR4bekHoVf+imummR7JvyccwajRtVu4AhDHUaLl8MnC0k=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1761164605; c=relaxed/simple;
	bh=ZypwVfsD9JB5v9qFIvX2gVSg0h+5ZBQJi/2UGbalt04=;
	h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:
	 MIME-Version; b=Ox+qQ9iOJ536wY5MvI7C/19vr/rQrM0mVAa1C8V3j5Tg7IL98ylc1FB/2fYoX1ihCE2rEPz2Cnp4/6usLsK+Orz3u7bSxfLvushjox38XpQ7CvlhrrEIUuP8Y5yUOgSzVzM+DYv4qXxpwrX3MnEXg3Db6t8wyjqfbudTtuxSPI0=
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=jm1zGVhm; arc=none smtp.client-ip=209.85.214.175
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
Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-27c369f8986so70378785ad.3
        for <io-uring@vger.kernel.org>; Wed, 22 Oct 2025 13:23:11 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1761164591; x=1761769391; 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;
        bh=VAwPv1ZCGWgqJek2QFv9M4nH8K2JjDsKQB2QpCc4m50=;
        b=jm1zGVhmqBhiMNNZDUfFbXQpqEqrOgG7n1sk7qQzlEpGx5s709OwFPGU/Cu+b8g93c
         cAhEvDSARZW/EVSMlCGZbFu0LjETJL8qQ3p06ikWtDsR4UiFlUs1kmAaiHBIAo1VS84m
         TGosvOgeBhQs8jwQnk4aKRgNl1Dot0wCfD6z5UFJlnsYt7DKWA6XjkuUTj3akF9NoOGk
         8Up2gzNgq3rkBLkkLKnZRuM6lDEMG88jpMvfF4U0N736IUqaAYEQX+S4xRp9ab3ru0mG
         bmL0L/eJiIMe/bTLE7r9CyiYv14Mf7Np04K6TMIFjklugXDrC1EWXDoggVQgiHvCaeTF
         Z/8w==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1761164591; x=1761769391;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=VAwPv1ZCGWgqJek2QFv9M4nH8K2JjDsKQB2QpCc4m50=;
        b=L8ESELdOtCacguNCHH/76+ix/j9pzEPxr/JAk0+l5yo+HI1UwY07Zz2vXYL5+1hq87
         Bg/OofraU3AFTyhHiwyg5wbjZuzwKKzR/UwIOwpB/SBsOO7bty1l/uwBnTZIe/7ftMZX
         EASKt0xO7+hxjTlUI5Ne7K/JW3RCyqTbIbtP3r0LUvhfg71GE+gCmdBDTJfMx0eaLvyE
         /6ZTDPmoeTTJoSMaNkO6DJ98xDEt+5fkzGUC9/XGIRMDJ1J5m0fMGT9my+0MIOcrAJe+
         Q8ADsEmHVr8PB/jQyu2oF/4XxfbqrDFRjpgBzrjvYVXy/xEYt6EgM3cN70nXy1KdxXGq
         d1Mg==
X-Forwarded-Encrypted: i=1; AJvYcCVD1JILJIGPStctrGIcEnCSzTxPFK15O0xS3/jj2N/CCMwy4k/9pDr/stEzQKLV0hXfG56fRF2LPA==@vger.kernel.org
X-Gm-Message-State: AOJu0YyrHRhxjfPtYHHN6s5CH/WME1jtG+GTMh4LdnCzLE5t5l965Hfk
	4koksxiS9p+4c1cELi0Kg0XfGydLf88XDgj1CYqmlgVUIHGsdxprxfqO
X-Gm-Gg: ASbGnctpZ0BPhPdz+zM+hCL+rfbKVCrUUaYZJiX0D/pJdH00pVuhsowiMdoPanF9rm9
	bivq3bHcdLaKx0rfvXBXViJ43srlwz1k+SzxTeCbdPaVLN67Hh592Q98Psvg4+dwzAtnOZAueJo
	G4wKxCIL8NuvEV31WoQerG0NM7XVLSb53xY84F3jIFhMdOhH8NqdUAEVikGxywZ9aJ6Ktjztvyj
	C5E6+MA2VRcBflkwIiAZdFfppokXP73MYEvkgtNwwR+jUg0TUCDyqGTKDE9jfPsrXNuDC2BGYVH
	RaBBSdRyUD3KaUlqS0clSZGRj3nPDeI2jkhtw9dcfSSHVehA49V2DF1e52OuTRa0Tvful2nrtgo
	2HCTJFw8vIrWd/tnf9ndGDWAGvQa0coY2Qz+UnGcCzgMMAmMJsP4+oyTopBcaSItsx7gJWoLovF
	+Q/tL8JxKt3TRiTYpSy6xBerrUbw==
X-Google-Smtp-Source: AGHT+IElT9ynWn45kEF/QTBldN9gne+wXn8PQg4P0IoT5oqSWQd7KwM6rgYjqjp5h3pkYmlZjcPPQg==
X-Received: by 2002:a17:902:c943:b0:290:ac36:2ed6 with SMTP id d9443c01a7336-290c9d1b907mr313186105ad.14.1761164590822;
        Wed, 22 Oct 2025 13:23:10 -0700 (PDT)
Received: from localhost ([2a03:2880:ff:a::])
        by smtp.gmail.com with ESMTPSA id d9443c01a7336-2946dda5771sm66205ad.18.2025.10.22.13.23.10
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Wed, 22 Oct 2025 13:23:10 -0700 (PDT)
From: Joanne Koong <joannelkoong@gmail.com>
To: miklos@szeredi.hu,
	axboe@kernel.dk
Cc: linux-fsdevel@vger.kernel.org,
	bschubert@ddn.com,
	asml.silence@gmail.com,
	io-uring@vger.kernel.org,
	xiaobing.li@samsung.com
Subject: [PATCH v1 2/2] fuse: support io-uring registered buffers
Date: Wed, 22 Oct 2025 13:20:21 -0700
Message-ID: <20251022202021.3649586-3-joannelkoong@gmail.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <20251022202021.3649586-1-joannelkoong@gmail.com>
References: <20251022202021.3649586-1-joannelkoong@gmail.com>
Precedence: bulk
X-Mailing-List: io-uring@vger.kernel.org
List-Id: <io-uring.vger.kernel.org>
List-Subscribe: <mailto:io-uring+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:io-uring+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-DKIM: signer='gmail.com' status='pass' reason=''
DKIMCheck: Server passes DKIM test, 0 Spam score
X-Spam-Score: -1.9 (-)
X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has
 performed the tests listed below against this email.
 Information: https://mxroutedocs.com/directadmin/spamfilters/
 ---
 Content analysis details:   (-1.9 points)
 ---
  pts rule name              description
 ---- ---------------------- -----------------------------------------
 -2.3 RCVD_IN_DNSWL_MED      RBL: Sender listed at https://www.dnswl.org/,
                             medium trust
                             [139.178.88.99 listed in list.dnswl.org]
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider
                             [joannelkoong[at]gmail.com]
  1.5 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level
                             mail domains are different
 -0.1 DKIM_VALID_AU          Message has a valid DKIM or DK signature from
                             author's domain
 -0.1 DKIM_VALID             Message has at least one valid DKIM or DK signature
  0.1 DKIM_SIGNED            Message has a DKIM or DK signature, not necessarily
                             valid
  0.0 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and
                             EnvelopeFrom freemail headers are
                             different
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager
SpamTally: Final spam score: -18

Add support for io-uring registered buffers for fuse daemons
communicating through the io-uring interface. Daemons may register
buffers ahead of time, which will eliminate the overhead of
pinning/unpinning user pages and translating virtual addresses for every
server-kernel interaction.

To support page-aligned payloads, the buffer is structured such that the
payload is at the front of the buffer and the fuse_uring_req_header is
offset from the end of the buffer.

To be backwards compatible, fuse uring still needs to support non-registered
buffers as well.

Signed-off-by: Joanne Koong <joannelkoong@gmail.com>
---
 fs/fuse/dev_uring.c   | 216 ++++++++++++++++++++++++++++++++++++++----
 fs/fuse/dev_uring_i.h |  17 +++-
 2 files changed, 213 insertions(+), 20 deletions(-)

diff --git a/fs/fuse/dev_uring.c b/fs/fuse/dev_uring.c
index f6b12aebb8bb..c4dd4d168b61 100644
--- a/fs/fuse/dev_uring.c
+++ b/fs/fuse/dev_uring.c
@@ -574,6 +574,37 @@ static int fuse_uring_out_header_has_err(struct fuse_out_header *oh,
 	return err;
 }
 
+static int fuse_uring_copy_from_ring_fixed_buf(struct fuse_ring *ring,
+					       struct fuse_req *req,
+					       struct fuse_ring_ent *ent)
+{
+	struct fuse_copy_state cs;
+	struct fuse_args *args = req->args;
+	struct iov_iter payload_iter;
+	struct iov_iter headers_iter;
+	struct fuse_uring_ent_in_out ring_in_out;
+	size_t copied;
+
+	payload_iter = ent->fixed_buffer.payload_iter;
+	payload_iter.data_source = ITER_SOURCE;
+	headers_iter = ent->fixed_buffer.headers_iter;
+	headers_iter.data_source = ITER_SOURCE;
+
+	iov_iter_advance(&headers_iter, offsetof(struct fuse_uring_req_header,
+						 ring_ent_in_out));
+
+	copied = copy_from_iter(&ring_in_out, sizeof(ring_in_out),
+				&headers_iter);
+	if (copied != sizeof(ring_in_out))
+		return -EFAULT;
+
+	fuse_copy_init(&cs, false, &payload_iter);
+	cs.is_uring = true;
+	cs.req = req;
+
+	return fuse_copy_out_args(&cs, args, ring_in_out.payload_sz);
+}
+
 static int fuse_uring_copy_from_ring(struct fuse_ring *ring,
 				     struct fuse_req *req,
 				     struct fuse_ring_ent *ent)
@@ -584,12 +615,12 @@ static int fuse_uring_copy_from_ring(struct fuse_ring *ring,
 	int err;
 	struct fuse_uring_ent_in_out ring_in_out;
 
-	err = copy_from_user(&ring_in_out, &ent->headers->ring_ent_in_out,
+	err = copy_from_user(&ring_in_out, &ent->user.headers->ring_ent_in_out,
 			     sizeof(ring_in_out));
 	if (err)
 		return -EFAULT;
 
-	err = import_ubuf(ITER_SOURCE, ent->payload, ring->max_payload_sz,
+	err = import_ubuf(ITER_SOURCE, ent->user.payload, ring->max_payload_sz,
 			  &iter);
 	if (err)
 		return err;
@@ -601,6 +632,79 @@ static int fuse_uring_copy_from_ring(struct fuse_ring *ring,
 	return fuse_copy_out_args(&cs, args, ring_in_out.payload_sz);
 }
 
+static int fuse_uring_args_to_ring_fixed_buf(struct fuse_ring *ring,
+					     struct fuse_req *req,
+					     struct fuse_ring_ent *ent)
+{
+	struct fuse_copy_state cs;
+	struct fuse_args *args = req->args;
+	struct fuse_in_arg *in_args = args->in_args;
+	int num_args = args->in_numargs;
+	struct iov_iter payload_iter;
+	struct iov_iter headers_iter;
+	struct fuse_uring_ent_in_out ent_in_out = {
+		.flags = 0,
+		.commit_id = req->in.h.unique,
+	};
+	size_t copied;
+	bool advanced_headers = false;
+	int err;
+
+	payload_iter = ent->fixed_buffer.payload_iter;
+	payload_iter.data_source = ITER_DEST;
+
+	headers_iter = ent->fixed_buffer.headers_iter;
+	headers_iter.data_source = ITER_DEST;
+
+	fuse_copy_init(&cs, true, &payload_iter);
+	cs.is_uring = true;
+	cs.req = req;
+
+	if (num_args > 0) {
+		/*
+		 * Expectation is that the first argument is the per op header.
+		 * Some op code have that as zero size.
+		 */
+		if (args->in_args[0].size > 0) {
+			iov_iter_advance(&headers_iter,
+					 offsetof(struct fuse_uring_req_header,
+						  op_in));
+			copied = copy_to_iter(in_args->value, in_args->size,
+					      &headers_iter);
+			if (copied != in_args->size) {
+				pr_info_ratelimited(
+					"Copying the header failed.\n");
+				return -EFAULT;
+			}
+
+			iov_iter_advance(&headers_iter,
+					 FUSE_URING_OP_IN_OUT_SZ - in_args->size);
+			advanced_headers = true;
+		}
+		in_args++;
+		num_args--;
+	}
+	if (!advanced_headers)
+		iov_iter_advance(&headers_iter,
+				 offsetof(struct fuse_uring_req_header,
+					  ring_ent_in_out));
+
+	/* copy the payload */
+	err = fuse_copy_args(&cs, num_args, args->in_pages,
+			     (struct fuse_arg *)in_args, 0);
+	if (err) {
+		pr_info_ratelimited("%s fuse_copy_args failed\n", __func__);
+		return err;
+	}
+
+	ent_in_out.payload_sz = cs.ring.copied_sz;
+	copied = copy_to_iter(&ent_in_out, sizeof(ent_in_out), &headers_iter);
+	if (copied != sizeof(ent_in_out))
+		return -EFAULT;
+
+	return 0;
+}
+
  /*
   * Copy data from the req to the ring buffer
   */
@@ -618,7 +722,7 @@ static int fuse_uring_args_to_ring(struct fuse_ring *ring, struct fuse_req *req,
 		.commit_id = req->in.h.unique,
 	};
 
-	err = import_ubuf(ITER_DEST, ent->payload, ring->max_payload_sz, &iter);
+	err = import_ubuf(ITER_DEST, ent->user.payload, ring->max_payload_sz, &iter);
 	if (err) {
 		pr_info_ratelimited("fuse: Import of user buffer failed\n");
 		return err;
@@ -634,7 +738,7 @@ static int fuse_uring_args_to_ring(struct fuse_ring *ring, struct fuse_req *req,
 		 * Some op code have that as zero size.
 		 */
 		if (args->in_args[0].size > 0) {
-			err = copy_to_user(&ent->headers->op_in, in_args->value,
+			err = copy_to_user(&ent->user.headers->op_in, in_args->value,
 					   in_args->size);
 			if (err) {
 				pr_info_ratelimited(
@@ -655,7 +759,7 @@ static int fuse_uring_args_to_ring(struct fuse_ring *ring, struct fuse_req *req,
 	}
 
 	ent_in_out.payload_sz = cs.ring.copied_sz;
-	err = copy_to_user(&ent->headers->ring_ent_in_out, &ent_in_out,
+	err = copy_to_user(&ent->user.headers->ring_ent_in_out, &ent_in_out,
 			   sizeof(ent_in_out));
 	return err ? -EFAULT : 0;
 }
@@ -679,18 +783,31 @@ static int fuse_uring_copy_to_ring(struct fuse_ring_ent *ent,
 		return err;
 
 	/* copy the request */
-	err = fuse_uring_args_to_ring(ring, req, ent);
+	if (ent->is_fixed_buffer)
+		err = fuse_uring_args_to_ring_fixed_buf(ring, req, ent);
+	else
+		err = fuse_uring_args_to_ring(ring, req, ent);
 	if (unlikely(err)) {
 		pr_info_ratelimited("Copy to ring failed: %d\n", err);
 		return err;
 	}
 
 	/* copy fuse_in_header */
-	err = copy_to_user(&ent->headers->in_out, &req->in.h,
-			   sizeof(req->in.h));
-	if (err) {
-		err = -EFAULT;
-		return err;
+	if (ent->is_fixed_buffer) {
+		struct iov_iter headers_iter = ent->fixed_buffer.headers_iter;
+		size_t copied;
+
+		headers_iter.data_source = ITER_DEST;
+		copied = copy_to_iter(&req->in.h, sizeof(req->in.h),
+				      &headers_iter);
+
+		if (copied != sizeof(req->in.h))
+			return -EFAULT;
+	} else {
+		err = copy_to_user(&ent->user.headers->in_out, &req->in.h,
+				   sizeof(req->in.h));
+		if (err)
+			return -EFAULT;
 	}
 
 	return 0;
@@ -815,8 +932,18 @@ static void fuse_uring_commit(struct fuse_ring_ent *ent, struct fuse_req *req,
 	struct fuse_conn *fc = ring->fc;
 	ssize_t err = 0;
 
-	err = copy_from_user(&req->out.h, &ent->headers->in_out,
-			     sizeof(req->out.h));
+	if (ent->is_fixed_buffer) {
+		struct iov_iter headers_iter = ent->fixed_buffer.headers_iter;
+		size_t copied;
+
+		headers_iter.data_source = ITER_SOURCE;
+		copied = copy_from_iter(&req->out.h, sizeof(req->out.h), &headers_iter);
+		if (copied != sizeof(req->out.h))
+			err = -EFAULT;
+	} else {
+		err = copy_from_user(&req->out.h, &ent->user.headers->in_out,
+				     sizeof(req->out.h));
+	}
 	if (err) {
 		req->out.h.error = -EFAULT;
 		goto out;
@@ -828,7 +955,11 @@ static void fuse_uring_commit(struct fuse_ring_ent *ent, struct fuse_req *req,
 		goto out;
 	}
 
-	err = fuse_uring_copy_from_ring(ring, req, ent);
+	if (ent->is_fixed_buffer)
+		err = fuse_uring_copy_from_ring_fixed_buf(ring, req, ent);
+	else
+		err = fuse_uring_copy_from_ring(ring, req, ent);
+
 out:
 	fuse_uring_req_end(ent, req, err);
 }
@@ -1027,6 +1158,52 @@ static int fuse_uring_get_iovec_from_sqe(const struct io_uring_sqe *sqe,
 	return 0;
 }
 
+static struct fuse_ring_ent *
+fuse_uring_create_ring_ent_fixed_buf(struct io_uring_cmd *cmd,
+				     struct fuse_ring_queue *queue)
+{
+	struct fuse_ring *ring = queue->ring;
+	struct fuse_ring_ent *ent;
+	unsigned payload_size, len;
+	u64 ubuf;
+	int err;
+
+	err = -ENOMEM;
+	ent = kzalloc(sizeof(*ent), GFP_KERNEL_ACCOUNT);
+	if (!ent)
+		return ERR_PTR(err);
+
+	INIT_LIST_HEAD(&ent->list);
+
+	ent->queue = queue;
+	ent->is_fixed_buffer = true;
+
+	err = io_uring_cmd_get_buffer_info(cmd, &ubuf, &len);
+	if (err)
+		goto error;
+
+	payload_size = len - sizeof(struct fuse_uring_req_header);
+	err = io_uring_cmd_import_fixed(ubuf, payload_size, ITER_DEST,
+					&ent->fixed_buffer.payload_iter, cmd, 0);
+	if (err)
+		goto error;
+
+	err = io_uring_cmd_import_fixed(ubuf + payload_size,
+					sizeof(struct fuse_uring_req_header),
+					ITER_DEST,
+					&ent->fixed_buffer.headers_iter, cmd, 0);
+	if (err)
+		goto error;
+
+	atomic_inc(&ring->queue_refs);
+
+	return ent;
+
+error:
+	kfree(ent);
+	return ERR_PTR(err);
+}
+
 static struct fuse_ring_ent *
 fuse_uring_create_ring_ent(struct io_uring_cmd *cmd,
 			   struct fuse_ring_queue *queue)
@@ -1065,8 +1242,8 @@ fuse_uring_create_ring_ent(struct io_uring_cmd *cmd,
 	INIT_LIST_HEAD(&ent->list);
 
 	ent->queue = queue;
-	ent->headers = iov[0].iov_base;
-	ent->payload = iov[1].iov_base;
+	ent->user.headers = iov[0].iov_base;
+	ent->user.payload = iov[1].iov_base;
 
 	atomic_inc(&ring->queue_refs);
 	return ent;
@@ -1085,6 +1262,8 @@ static int fuse_uring_register(struct io_uring_cmd *cmd,
 	struct fuse_ring_ent *ent;
 	int err;
 	unsigned int qid = READ_ONCE(cmd_req->qid);
+	bool is_fixed_buffer =
+		cmd->sqe->uring_cmd_flags & IORING_URING_CMD_FIXED;
 
 	err = -ENOMEM;
 	if (!ring) {
@@ -1110,7 +1289,10 @@ static int fuse_uring_register(struct io_uring_cmd *cmd,
 	 * case of entry errors below, will be done at ring destruction time.
 	 */
 
-	ent = fuse_uring_create_ring_ent(cmd, queue);
+	if (is_fixed_buffer)
+		ent = fuse_uring_create_ring_ent_fixed_buf(cmd, queue);
+	else
+		ent = fuse_uring_create_ring_ent(cmd, queue);
 	if (IS_ERR(ent))
 		return PTR_ERR(ent);
 
diff --git a/fs/fuse/dev_uring_i.h b/fs/fuse/dev_uring_i.h
index 51a563922ce1..748c87e325f5 100644
--- a/fs/fuse/dev_uring_i.h
+++ b/fs/fuse/dev_uring_i.h
@@ -38,9 +38,20 @@ enum fuse_ring_req_state {
 
 /** A fuse ring entry, part of the ring queue */
 struct fuse_ring_ent {
-	/* userspace buffer */
-	struct fuse_uring_req_header __user *headers;
-	void __user *payload;
+	/* True if daemon has registered its buffers ahead of time */
+	bool is_fixed_buffer;
+	union {
+		/* userspace buffer */
+		struct {
+			struct fuse_uring_req_header __user *headers;
+			void __user *payload;
+		} user;
+
+		struct {
+			struct iov_iter payload_iter;
+			struct iov_iter headers_iter;
+		} fixed_buffer;
+	};
 
 	/* the ring queue that owns the request */
 	struct fuse_ring_queue *queue;
-- 
2.47.3



From - Wed Oct 22 21:04:10 2025
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
Return-Path: <io-uring+bounces-10143-hi=josie.lol@vger.kernel.org>
Delivered-To: hi@josie.lol
Received: from witcher.mxrouting.net
	by witcher.mxrouting.net with LMTP
	id 0J+rAvhB+WiXPToAYBR5ng
	(envelope-from <io-uring+bounces-10143-hi=josie.lol@vger.kernel.org>)
	for <hi@josie.lol>; Wed, 22 Oct 2025 20:43:36 +0000
Return-path: <io-uring+bounces-10143-hi=josie.lol@vger.kernel.org>
Envelope-to: hi@josie.lol
Delivery-date: Wed, 22 Oct 2025 20:43:36 +0000
Received: from dfw.mirrors.kernel.org ([142.0.200.124])
	by witcher.mxrouting.net with esmtps  (TLS1.3) tls TLS_AES_256_GCM_SHA384
	(Exim 4.98)
	(envelope-from <io-uring+bounces-10143-hi=josie.lol@vger.kernel.org>)
	id 1vBfgF-0000000G6B4-1deb
	for hi@josie.lol;
	Wed, 22 Oct 2025 20:43:35 +0000
Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140])
	(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))
	(No client certificate requested)
	by dfw.mirrors.kernel.org (Postfix) with ESMTPS id 772174F271E
	for <hi@josie.lol>; Wed, 22 Oct 2025 20:43:34 +0000 (UTC)
Received: from localhost.localdomain (localhost.localdomain [127.0.0.1])
	by smtp.subspace.kernel.org (Postfix) with ESMTP id E350B1DF24F;
	Wed, 22 Oct 2025 20:43:31 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (1024-bit key) header.d=ddn.com header.i=@ddn.com header.b="VHYxZufw"
X-Original-To: io-uring@vger.kernel.org
Received: from outbound-ip191a.ess.barracuda.com (outbound-ip191a.ess.barracuda.com [209.222.82.58])
	(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 D0C412FB617;
	Wed, 22 Oct 2025 20:43:25 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=fail smtp.client-ip=209.222.82.58
ARC-Seal:i=2; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1761165811; cv=fail; b=s0AsRUbUA+E7ArPHQfk+zwbMMdpLsaX10a5eDTnYP4ssPWxdfCZLa/jbny2WGOH8/c9a4j06+aOt3zZpuJIQDSQEjgV+EHamsTR4bl2ZkDTGYUivHUGu+0H12BJGkg44xOtE8DSZm2i3U5XxgPr9EtFVADXktN0JDFNdSkxJqEE=
ARC-Message-Signature:i=2; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1761165811; c=relaxed/simple;
	bh=LL9l7jSj+ESZyfpupqeW7N1ulhKNkK3VlCwDBn0TQh8=;
	h=Message-ID:Date:Subject:To:Cc:References:From:In-Reply-To:
	 Content-Type:MIME-Version; b=OIDOVr2Hswe0EapoUHeYV+sQJYnj9agownoCC5gH1cTZsG99gefwrcim3KlZaxiBCUIWLStweAAdPRAQLZHTdUvZ4RsRWrbC+WItufNPvpKByc97JXQb7Py12JyfC7jRmZy2cYwJ/njSMxWVVcFXI8ASGD0s6txLWbQaRGBIvXo=
ARC-Authentication-Results:i=2; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ddn.com; spf=pass smtp.mailfrom=ddn.com; dkim=pass (1024-bit key) header.d=ddn.com header.i=@ddn.com header.b=VHYxZufw; arc=fail smtp.client-ip=209.222.82.58
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=ddn.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ddn.com
Received: from PH7PR06CU001.outbound.protection.outlook.com (mail-westus3azon11020101.outbound.protection.outlook.com [52.101.201.101]) by mx-outbound12-215.us-east-2a.ess.aws.cudaops.com (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Wed, 22 Oct 2025 20:43:21 +0000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=otGUM6Gt61j9eyVt08F2i2jebOH0mc2pyRpTwVC02Fv9XrGfUekcGrl/EnqYHQ+8cP8gUCFKqdGCBxEOrFOv3gIXWDFpNyP6ld60gG4evdPNbHiBEs7MU2hhdZNhyaMiDeZ3r8GbdVLr2qpMeBnHzZw4gElf874INLHFzLVU5dFR/CJN11Fkchb34IBPzmU/b80w4xGvUI1yysfqcO3Pd1BCprCm6JBY5AplT/d2A1bEA2QaaAc2RXOjxmJ/gMX/dtXQG2UwJQRHNgp3XXDcKbhNIGJ+4SH04SXVI8n4g2KzR1LXmc6E4lODrPtTjbPwO1doR/MP5zOue8x7ss1fjA==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;
 s=arcselector10001;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=Qlxx/FxPb/mg1fTlXbpkN52jHbXsX56iMWGr/4N+kBQ=;
 b=ctR+jGmisCPILSHMAybTfooPS+WrbDGDjL5+QWVPHeN8dEA3y+PcY7W5ctUunhfKDfRUV5twbhoRuoAmt28Y8NJZ6n0Ix9rcVOXFQRzSri8+GJQ024H60nid4fGx9Vir1OFpzkWMihnQq39vwC09P87OUdrZmt5ld5X+2Ly9gGwJs6ff2AxHPqqGo5ppyHAkbNCW0fWOyRtohKofWDimHNG9tn7IcjlIHh7kxQVm8TfwL2d9pTbW/5OsIdCs2okIS1MiQzrSS8mHNU3EqjlO9vHa29HeB3r0Yu6xXYregdmqqRxXiwbu1mrro38bDh70EP/EdkVKttbg0F0YBuH90g==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=ddn.com; dmarc=pass action=none header.from=ddn.com; dkim=pass
 header.d=ddn.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ddn.com; s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=Qlxx/FxPb/mg1fTlXbpkN52jHbXsX56iMWGr/4N+kBQ=;
 b=VHYxZufwS6jQWC8uF4qkMGCyMYV7M4G4H+XkdbcidJzOcWv/EDqEj8IsytWt4OK3PYgSJUQCpPHZDwSZIfqt+JIo3AjhZY96SV+GRcAOY91spzAdKFY6hYPdKLd/p0dV4y5TcmkDl7opITo/ulooCGxZD0QkPJF+s7OxTZguICs=
Authentication-Results: dkim=none (message not signed)
 header.d=none;dmarc=none action=none header.from=ddn.com;
Received: from CH2PR19MB3864.namprd19.prod.outlook.com (2603:10b6:610:93::21)
 by CH2PR19MB3830.namprd19.prod.outlook.com (2603:10b6:610:99::17) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.9253.13; Wed, 22 Oct
 2025 20:43:18 +0000
Received: from CH2PR19MB3864.namprd19.prod.outlook.com
 ([fe80::abe1:8b29:6aaa:8f03]) by CH2PR19MB3864.namprd19.prod.outlook.com
 ([fe80::abe1:8b29:6aaa:8f03%5]) with mapi id 15.20.9253.011; Wed, 22 Oct 2025
 20:43:17 +0000
Message-ID: <539ebaba-e105-4cf3-ade4-4184a4365710@ddn.com>
Date: Wed, 22 Oct 2025 22:43:14 +0200
User-Agent: Mozilla Thunderbird
Subject: Re: [PATCH v1 0/2] fuse io_uring: support registered buffers
To: Joanne Koong <joannelkoong@gmail.com>, miklos@szeredi.hu, axboe@kernel.dk
Cc: linux-fsdevel@vger.kernel.org, asml.silence@gmail.com,
 io-uring@vger.kernel.org, xiaobing.li@samsung.com
References: <20251022202021.3649586-1-joannelkoong@gmail.com>
From: Bernd Schubert <bschubert@ddn.com>
Content-Language: en-US, de-DE, fr
In-Reply-To: <20251022202021.3649586-1-joannelkoong@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit
X-ClientProxiedBy: PR1P264CA0070.FRAP264.PROD.OUTLOOK.COM
 (2603:10a6:102:2cc::10) To CH2PR19MB3864.namprd19.prod.outlook.com
 (2603:10b6:610:93::21)
Precedence: bulk
X-Mailing-List: io-uring@vger.kernel.org
List-Id: <io-uring.vger.kernel.org>
List-Subscribe: <mailto:io-uring+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:io-uring+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
X-MS-PublicTrafficType: Email
X-MS-TrafficTypeDiagnostic: CH2PR19MB3864:EE_|CH2PR19MB3830:EE_
X-MS-Office365-Filtering-Correlation-Id: e06a3c73-15ee-4f3c-9dc1-08de11aba12d
X-MS-Exchange-SenderADCheck: 1
X-MS-Exchange-AntiSpam-Relay: 0
X-Microsoft-Antispam:
	BCL:0;ARA:13230040|10070799003|1800799024|376014|366016|19092799006;
X-Microsoft-Antispam-Message-Info:
	=?utf-8?B?ZG1aZGJCaFN0a2NNcFhFS3JkTXhZYjVEaHRRdC9OU3NZTFNJeDF4dHFFWitT?=
 =?utf-8?B?cldtWjRpNWZ6OGJWcXdYRVNONkpMSGNveEJub1Y2YTg3S2lGQ0hwZUNOMXA2?=
 =?utf-8?B?QzFqVzBBYjREZHBBakVHSUM3ZmJNVnJ5SGI1U2MwekZ4b1JPRi9td3JheXFy?=
 =?utf-8?B?aVhyOVEzV1RIMTBjTnZ5UGk2Z09tUENxaUJCOEJ3b3BJcFNWZ1NtUFlGOExW?=
 =?utf-8?B?eEF4aWlqSnZXVXlGeFFHM3hjbm9hbWpRU3dVVEJnY2RRcnJBWUJsSG9CZzBm?=
 =?utf-8?B?ejhpTXhtcGFXZXlzRmJXMlpYM05GOC9qQkY5bWp2YTFHazlYVk03dkErcTQ1?=
 =?utf-8?B?NlBGWjlRVWQ5WlZiaHBvcytPZEloQSt3SmFvOGF4K2Mzb250WjN0Rm5uQlNV?=
 =?utf-8?B?MEI0NUl2QWxTOFBmbVpZZjZJQURaWER4SG9wNk5NS3dXbEJ5elB5U0pHdWRp?=
 =?utf-8?B?c0p3N1hEVy9ha25zWDFtVVBMWDlSUlQrcGo5SjdoM0VWdnVwbzd1SUIveG5F?=
 =?utf-8?B?Nkg1dWZJVXBLMDNDOU5JbGtTbkVyQ244aDA1OVRTRzdLRzFIbzN5bFFPU1Nl?=
 =?utf-8?B?R3g3cWlmSzhQZWhQV3BaY2JGaWs2SExOZEw0aHVXNHFHNmJrNCs3cWNQcFBx?=
 =?utf-8?B?alY1S1RhUnVNOVU4UjZqei9zN3gySUh0SkQxMC9PMnZndXJZQ0NzMHhlWWl2?=
 =?utf-8?B?QzRZRkw1Vnh2VkpkcFJyM1NzZVoxM1VUektreVgxamlOc2EzbC9NQVk0bnp6?=
 =?utf-8?B?a0N1a0NPQTU2c24vZG9oRTV4NFJrWHNsZXNtNUY1bjhFanlDbElGbnFZM1JM?=
 =?utf-8?B?OS9GV2ZnWlllbXl4R25aNVBzakM3dUZZMVFUU3JQSjB6SndIRy8raEI3K1Av?=
 =?utf-8?B?MHc0T0lPSmhCaWljeE95Rk9sdk9CU0RwY21YMmZEdDhESnRCbzIrUElqblN5?=
 =?utf-8?B?MnF4UzRaSjhNVXd2bS8rR2RFRFo0VzdFQXhHRncwSEExZXBVU29LSlRlbFMr?=
 =?utf-8?B?L0gwaTQvdjU1YkN3MjdYeHZIVTY4VGxpYkw4M2F3YjY2SHdHcWJxdjM0dzdE?=
 =?utf-8?B?ZUdUaTdzeGt6elgvL21tZEptWEwrVWsrMEltZnFJWXl3dXV6VU5rZStJQjF4?=
 =?utf-8?B?TGhhQlB2RmZSbG9JRTdvQjB0TisraHM1VHRDK2NCMExKQk1aWDRReVhzZ216?=
 =?utf-8?B?enEwUWltQ3A1U1FYOER6Y0c4bTJ6NERwQjQ0Mk1BSVJqZjhJa0JwUUY0dVdx?=
 =?utf-8?B?ZzJNaFNoUmFMcFlsSTcveUY3b0tnQ01WczkyV0xSdVRMeUNyYjArQ3ZLWU9G?=
 =?utf-8?B?NWhWM3RKeEQvbmU1bWl6SDR6dkxJdUp4YUlOZDkwZjlsbzJucXlRdXFqZ3p1?=
 =?utf-8?B?YUdTZ002ZTBCTXROWVQ4Tk8rY3p5eFQ4SDBvN2JGTlI0ZDVBTW12K1hJV3c4?=
 =?utf-8?B?N2FaSXozaUlmZHhIekUwQTFpeGFBRzhyaGJlRnhjR0x6czhaVzdTWE1QQjNv?=
 =?utf-8?B?Uk9PWXVOdkF1a3ZMVzZxTmoyZlhydlY4RGdTUDVRTGJPZ2JOQnM0alRueFZS?=
 =?utf-8?B?aTE3eUc4TnljUUgrM0ZlTzNSRUpITnhYZHg2Z00yZEl4UTRHYU9ZYTIyeHZx?=
 =?utf-8?B?Z1JDeU5mZ0hwZVgyRlgwdFdUMlIxdFpaaTJqRzd4dDFpRCtlYnhNemlYOHhr?=
 =?utf-8?B?VFRsTmViS1FQMElxMU84aTdIRklyV3lLU3Jmc0JTdlpidjczTFV2bzFDQnpl?=
 =?utf-8?B?MGFGbTJITUIrUHl4OXNFS3Z5RE9zUitsZ0ZuR1J6dWZhdHFGbDZVVExoaC8v?=
 =?utf-8?B?ZExUczZjUDMrS2R4bDRpZWVIb1dRVjdTS2wxdU5FclFvZEw4VnR0UHIweTE3?=
 =?utf-8?B?YmdzK2xYU21nNmJLbVNKaGlrck9OZUVJUSt1eUFTU2tWUWhtOUtCb0YxUFJj?=
 =?utf-8?Q?9jGBDPDtPF0vE165x/K1rroVLyYDqr1Q?=
X-Forefront-Antispam-Report:
	CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:CH2PR19MB3864.namprd19.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230040)(10070799003)(1800799024)(376014)(366016)(19092799006);DIR:OUT;SFP:1102;
X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-MessageData-0:
	=?utf-8?B?UzhuSDZ3eUtqa3gwMGhRT0k4eGs0d3R2ZGc0Q3VUK01EVkNxME9vRml6VUZn?=
 =?utf-8?B?Y3pSQ2F0V0NRU3dCZUQvRVdoQllmUTBBUm9ybFN1RHRrbFlIcXBYSHRwaWkx?=
 =?utf-8?B?WFFqNGJ5Y0QxVUhiZ2ZVUm5MTnZjVkFPbWxRM1c1YXJ2WjU5WUpvQ3NKWGVM?=
 =?utf-8?B?L0dmcG10eTc3MWNURENPNWVRa3FFNTdwYlA4N2FMbHBrVHVVR1B1LzBXaG16?=
 =?utf-8?B?dWFrcVQ0NWdtdzRqL2lPcGN6ZnE0Z3VoUm56MjdVZmVTVU8xV1RSRmxyVWxQ?=
 =?utf-8?B?dEFva1JXK01BNFc1WGxtdDJ0M2hzcjRrVGdQWmRTWmh1amdVRzNMUFJaQTl4?=
 =?utf-8?B?Vkw0VWR2TXBZR0lQTHdCUU9jUzgyL2U4OFBEVkw5NDNIYWE3WG4wVnhFYkNw?=
 =?utf-8?B?ZzJHTTM5c2hoV1hPM1lLQ2FQMnVhQ1AzZi8zQmpyeXdDWElWSERhZnh1dkps?=
 =?utf-8?B?Rk5NQzcwNUZrMEkwaU1ueFhHVmRuN3B1UTQxejNTVDJDaWpZVWhmNnhmYWV1?=
 =?utf-8?B?cjdsZkZpWXN0WUNWcVVoUUhyVUtWWlVVd1hiZlVrZUlBc21EUGt0UXUxTlBW?=
 =?utf-8?B?VnZFaDFIMGt4SmlQMzc5MDI0WTVkbWtoTmc2NEkyL2htQUIxYVdWcTBMWGtx?=
 =?utf-8?B?eUROYjVhVkJndjNqZDZ0a25UNFUyQUh3bk53a0VBa0Z6TU11ZitDQUU2Zk9m?=
 =?utf-8?B?NjVSdXFOTFRhcEE3VUcwdTJHbWxnR3orOFE0NGt1R21yVGFROStnSVBZNmdn?=
 =?utf-8?B?eTVSQkN5NHljRWkrRGRlQ3Q2NE5DTTYvd3JTQUdYbXNQUnFlZU0xV0Y5K3hq?=
 =?utf-8?B?TlB6Z25XWVdJL3oxVFlZL0JYWCt1d3VObExMbDV4QVNnVi9TUzJHUjRBOEZw?=
 =?utf-8?B?Mnk1cHhYQitEYVMyMEFqUkppRjVSc2Rxc0Z5Z09ta3ZqTFArYWcrUGwxM00x?=
 =?utf-8?B?QmVXQUFaaGZzNlVXT3BleEhPdWpxTHk5VWdwVWp6M1VTVndLTnI5dVo3a3B2?=
 =?utf-8?B?cjZJeFd5d2dudkYvR3FIelI4YXpObDhpRDEwYWlDcm5vMEUzM1BucDJSVlZq?=
 =?utf-8?B?eWtVeTFzbzEvc011MzJQMmFQaHhoNEMrajVIOThxWTZXWW9WTm85eFV4Smxx?=
 =?utf-8?B?SmphNTVUa2p3bnZJVUxiWFdhdTh6SUxIaUVVUG1JQ3prMDYvbG9jN1p5aHl4?=
 =?utf-8?B?K3IxQzE2WUtvZ3ZnM1pTVWM1VGczdDVnYXFRTXRIK0JRcEVSQ0FaSEtPajd1?=
 =?utf-8?B?UzRlSmczc2ExRnJtcmdHMU1MUS9xYVFyUjdsRWFyQWtQSE9Zclpnbm5KRCtU?=
 =?utf-8?B?V2s4VWZWWXBVcWlEcnJLL0ZsRkFvR2lla0RhY3lVYkZOMTdJb3ZVWUFhNmNs?=
 =?utf-8?B?M1lUdHNKdmRZeG1JcWxldU4yZ3ZTVTRCWVpDdmx1YnFjajRRTmNMNTlqVGcz?=
 =?utf-8?B?UUI5TEg5ZHV4VkJDRTlkMWdCMURQN2hMMEFVVGRnSzZ2bXRkMjlDZXVvMCt2?=
 =?utf-8?B?c2JNYmFIY2ZNTm1ONnZIaENycVgrcnlMbW1RV1lOeVgzdWJ6TzJXME9zT0dZ?=
 =?utf-8?B?OHN3b0tXc0ZwS0RvMGszR1dOQUFIU2hzMUNiRVZuZHJTdGtQaHcvNVU4bTRx?=
 =?utf-8?B?MXFod2c4TDlHai9MekFibGFjNG1YSVljdTU2cGtXNTN6SEN0bmhVSkEwS2l4?=
 =?utf-8?B?eHBhRmtFVmd5eXRVbVNtOEJ0bEp3bnRNWnhFaCtVM0NLN21XTHJsTVRjVEtZ?=
 =?utf-8?B?R2VPR29wbEtYYnZ3MWYrbmJ5SFJtUk5YTkhLN0R2bUxBTU5RRmNqYUp5eHZ1?=
 =?utf-8?B?QVFCdmFrd0NIUjFYV05Sb0FPM0kzREJmeWFwOTRFVmQvZ1M3MEVZL3VYRHd2?=
 =?utf-8?B?bTJiSmlwWStSaWNkOGJLbmZuVlJKYktDM0w5K291TCthOWdKWEV3dFhFQmRx?=
 =?utf-8?B?SDlsbWNQeEZiQ2lZMGdlcUdPSmYweVFmRHM1NjNaL3B1T3cwWE5nYmd2eStE?=
 =?utf-8?B?cloxSHVpOVR4Rzg1RkVTN1FMS0lMWTBsVldlRERCRWZqL3ZjdVM1QTk5VVg2?=
 =?utf-8?B?MmJSOGZSZlhRdXM2UWRuTHhsNGN5MDZpMjcwanVFaitZbk9NMzdLUEdPZDRM?=
 =?utf-8?B?VklMRjU1ZkY3YWFOQU00VGFtSjArWWc5R0JBTTZvMWZKbGxKQzN1L0ZYTFdH?=
 =?utf-8?Q?YsBTMWozYVKskmTMC8dvWMkTR9fC0mSECN3AcGFxxRxJ?=
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0:
	Htf4tAMj4W3vQLWJZSGsrKhvCGEdwmL0xRsdiERrV4/cmiqoaMKsF5N32dUTCicZEtKW/coIaKMwAFt1DHijXj5dj9tF8G9wpk7ypC31FIPPGZe9QuhcoUo8j/278UYZEP3FzeGiog30Vid4MxTZpplqxKaVT2Thrc88G3J9QfkAYWmVJbl2yUm8JUJcSSHvDBRDHjC4FIKRzZPvB0oQkNzVQuPWIjFjjX279j3rTThFZcKiGY7YKjnau/VG/NH46ZkZ+deR+pBbMwaomWJjXrsa3ZWd+9M3U0EEHzslJyOLE94oPyxp1/knV4Ex9ug0bQQdYbu4kOPNSSlnakCbM/eZ+u9UMM+LqfT8cT7Cwc7qAG2z3cjPfUMvWAj5dybxsOurOiui/PL52uhxj4krnPQ702zod6O91YFX/EgowyX85hviN0aSVE1RBMIXXVrrjegp4+jGwEev4PGOxKaG30LspZ4/5EyLzlBvZzHUiipYCWY/8EVasbXgLVHBzOH1s/MdSNsBVZh+V+sw3bdJyLOD8G89GbJ4qHPof/x3FKvME/NVieZfPRTOda27XISz4RP3DFriJEzLc/iFboUBia7TGm8SYDl24OaP9U0+aSyeQm6O3jvmwXyDeokUiy74e/kDGa+A4Thp/EYCUm5Idw==
X-OriginatorOrg: ddn.com
X-MS-Exchange-CrossTenant-Network-Message-Id: e06a3c73-15ee-4f3c-9dc1-08de11aba12d
X-MS-Exchange-CrossTenant-AuthSource: CH2PR19MB3864.namprd19.prod.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 22 Oct 2025 20:43:17.6590
 (UTC)
X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted
X-MS-Exchange-CrossTenant-Id: 753b6e26-6fd3-43e6-8248-3f1735d59bb4
X-MS-Exchange-CrossTenant-MailboxType: HOSTED
X-MS-Exchange-CrossTenant-UserPrincipalName: KvgHtR1WcMtUmNELSCLwQPNk9j32+gTjQENtoBxKBwJceZ+r3BUi5EcTiTZx4bEe0r5VD1B/Hf1vYlSd1loCzQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH2PR19MB3830
X-BESS-ID: 1761165801-103287-26825-9494-1
X-BESS-VER: 2019.1_20251001.1803
X-BESS-Apparent-Source-IP: 52.101.201.101
X-BESS-Parts: H4sIAAAAAAACA4uuVkqtKFGyUioBkjpK+cVKVpaGRkBGBlDMKDXJ1NTA0MwiKc
	XC3DgpzSI5LTXFzCDF3CLZ0MLE1FSpNhYA1YR46kAAAAA=
X-BESS-Outbound-Spam-Score: 0.00
X-BESS-Outbound-Spam-Report: Code version 3.2, rules version 3.2.2.268400 [from 
	cloudscan14-14.us-east-2a.ess.aws.cudaops.com]
	Rule breakdown below
	 pts rule name              description
	---- ---------------------- --------------------------------
	0.00 BSF_BESS_OUTBOUND      META: BESS Outbound 
X-BESS-Outbound-Spam-Status: SCORE=0.00 using account:ESS124931 scores of KILL_LEVEL=7.0 tests=BSF_BESS_OUTBOUND
X-BESS-BRTS-Status:1
X-DKIM: signer='ddn.com' status='pass' reason=''
DKIMCheck: Server passes DKIM test, 0 Spam score
X-Spam-Score: 0.4 (/)
X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has
 performed the tests listed below against this email.
 Information: https://mxroutedocs.com/directadmin/spamfilters/
 ---
 Content analysis details:   (0.4 points)
 ---
  pts rule name              description
 ---- ---------------------- -----------------------------------------
  0.0 RCVD_IN_DNSWL_BLOCKED  RBL: ADMINISTRATOR NOTICE: The query to
                             DNSWL was blocked.  See
                             http://wiki.apache.org/spamassassin/DnsBlocklists#DnsBlocklists-dnsbl-block
                              for more information.
                             [142.0.200.124 listed in list.dnswl.org]
  1.5 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level
                             mail domains are different
  0.1 DKIM_SIGNED            Message has a DKIM or DK signature, not necessarily
                             valid
 -0.1 DKIM_VALID_AU          Message has a valid DKIM or DK signature from
                             author's domain
 -0.1 DKIM_VALID             Message has at least one valid DKIM or DK signature
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager
SpamTally: Final spam score: 4



On 10/22/25 22:20, Joanne Koong wrote:
> This adds support for daemons who preregister buffers to minimize the overhead
> of pinning/unpinning user pages and translating virtual addresses. Registered
> buffers pay the cost once during registration then reuse the pre-pinned pages,
> which helps reduce the per-op overhead.
> 
> This is on top of commit 211ddde0823f in the iouring tree.

Interesting, on a first glance this looks like an alternative
implementation of page pinning

https://lore.kernel.org/all/20240901-b4-fuse-uring-rfcv3-without-mmap-v3-17-9207f7391444@ddn.com/

At DDN we are running with that patch (changed commit message) and another
one that avoids io_uring_cmd_complete_in_task() - with pinned pages
the IO submitting application can directly write into header and payload
(note that the latter also required pinned headers)

Going to look into your approach tomorrow.



Thanks,
Bernd


From - Wed Oct 22 21:04:10 2025
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
Return-Path: <io-uring+bounces-10144-hi=josie.lol@vger.kernel.org>
Delivered-To: hi@josie.lol
Received: from witcher.mxrouting.net
	by witcher.mxrouting.net with LMTP
	id IDydEPRE+Wiv8joAYBR5ng
	(envelope-from <io-uring+bounces-10144-hi=josie.lol@vger.kernel.org>)
	for <hi@josie.lol>; Wed, 22 Oct 2025 20:56:20 +0000
Return-path: <io-uring+bounces-10144-hi=josie.lol@vger.kernel.org>
Envelope-to: hi@josie.lol
Delivery-date: Wed, 22 Oct 2025 20:56:20 +0000
Received: from dfw.mirrors.kernel.org ([142.0.200.124])
	by witcher.mxrouting.net with esmtps  (TLS1.3) tls TLS_AES_256_GCM_SHA384
	(Exim 4.98)
	(envelope-from <io-uring+bounces-10144-hi=josie.lol@vger.kernel.org>)
	id 1vBfsa-0000000GZ2Q-01ql
	for hi@josie.lol;
	Wed, 22 Oct 2025 20:56:20 +0000
Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140])
	(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))
	(No client certificate requested)
	by dfw.mirrors.kernel.org (Postfix) with ESMTPS id 06A8E4E23EF
	for <hi@josie.lol>; Wed, 22 Oct 2025 20:56:19 +0000 (UTC)
Received: from localhost.localdomain (localhost.localdomain [127.0.0.1])
	by smtp.subspace.kernel.org (Postfix) with ESMTP id 52D532FFDD8;
	Wed, 22 Oct 2025 20:56:17 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=meta.com header.i=@meta.com header.b="NJf4sEkb"
X-Original-To: io-uring@vger.kernel.org
Received: from mx0a-00082601.pphosted.com (mx0b-00082601.pphosted.com [67.231.153.30])
	(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 E68942F619C
	for <io-uring@vger.kernel.org>; Wed, 22 Oct 2025 20:56:14 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=67.231.153.30
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1761166577; cv=none; b=YSAccpFBu8OAixzFhdxjxNGG5BO7h86N0MXY3WnXoQZU+hbFvXvkvABqHGJGJ7u5ZfDIsVuf/2Swy1cSRqSNkH9VvuK6GlFEYzsaOLo/Vrx9zlmkes+YeGW44JNJdElYPmjB7k32RTp4gqcVvkNBCNsvMLGceOD5iCSsN3fBcv4=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1761166577; c=relaxed/simple;
	bh=hh7k3pAn55Mq0KrC4z+09nJOkzhr7ce+bTm8aTFaFEI=;
	h=From:To:CC:Subject:Date:Message-ID:MIME-Version:Content-Type; b=Xm7l9GMV90dU2IhT7YKm1mMdO8Fg9dEJ1T15sjzQFRfVzoGWkOqIAvhxsjVyHd9z9J14vO53rQyPeT5X4TTQI2dNtMvTWMAOuSJ9152uVbhsYOCBbKLxeQXYJrYqD1RBCmg6LATG/sMkF9Oq5FApAnk7McVupZ5UPVFgp10XDJM=
ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=meta.com; spf=pass smtp.mailfrom=meta.com; dkim=pass (2048-bit key) header.d=meta.com header.i=@meta.com header.b=NJf4sEkb; arc=none smtp.client-ip=67.231.153.30
Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=meta.com
Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=meta.com
Received: from pps.filterd (m0001303.ppops.net [127.0.0.1])
	by m0001303.ppops.net (8.18.1.11/8.18.1.11) with ESMTP id 59MGYeoE2150923
	for <io-uring@vger.kernel.org>; Wed, 22 Oct 2025 13:56:13 -0700
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=meta.com; h=cc
	:content-transfer-encoding:content-type:date:from:message-id
	:mime-version:subject:to; s=s2048-2025-q2; bh=bixJNST93seoEOEZA8
	s49JOAqqA5k3CAxU1D6QY/bfY=; b=NJf4sEkbe8d/y5iT9BgFT4IjPfdKx6FCgY
	sOWDW054B09Rt3UXOPpUCYIsssEIMqX1e+q0dnEURnL7TVzhDi9ndoPk52EOMYEH
	H4S/RxAev57Gq+yuRHndacAKx4OEhULV9gUbjYSVqg0nt78PvUpFiojkmDVchzyq
	RV+YvIo9BELdbi6c5IH7eATnzDFfrgHzww1ePgpKISgaun3ItkKClj9YIP7trmuG
	phs+w8DE60RfioFCkp782AMTp2q5RxzguKuukfqxXv5C8tgJ8DA5yhBo/e755fZE
	13PvG+eclTvYQDBgy6/DGySbeYbJpkOFPD4ZrZAoC9uGbtZgKe0Q==
Received: from maileast.thefacebook.com ([163.114.135.16])
	by m0001303.ppops.net (PPS) with ESMTPS id 49y2wqj79h-3
	(version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT)
	for <io-uring@vger.kernel.org>; Wed, 22 Oct 2025 13:56:13 -0700 (PDT)
Received: from twshared28390.17.frc2.facebook.com (2620:10d:c0a8:1b::2d) by
 mail.thefacebook.com (2620:10d:c0a9:6f::8fd4) with Microsoft SMTP Server
 (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id
 15.2.2562.20; Wed, 22 Oct 2025 20:56:12 +0000
Received: by devbig197.nha3.facebook.com (Postfix, from userid 544533)
	id BA0E92FAA7D5; Wed, 22 Oct 2025 13:56:07 -0700 (PDT)
From: Keith Busch <kbusch@meta.com>
To: <axboe@kernel.dk>, <io-uring@vger.kernel.org>
CC: Keith Busch <kbusch@kernel.org>
Subject: [PATCH] io_uring/fdinfo: show SQEs for no array setup
Date: Wed, 22 Oct 2025 13:56:07 -0700
Message-ID: <20251022205607.4035359-1-kbusch@meta.com>
X-Mailer: git-send-email 2.47.3
Precedence: bulk
X-Mailing-List: io-uring@vger.kernel.org
List-Id: <io-uring.vger.kernel.org>
List-Subscribe: <mailto:io-uring+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:io-uring+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
X-FB-Internal: Safe
Content-Type: text/plain
X-Proofpoint-GUID: ywp2oF74gM80gJ5vdnpePd-mNbmm2Uex
X-Proofpoint-ORIG-GUID: ywp2oF74gM80gJ5vdnpePd-mNbmm2Uex
X-Authority-Analysis: v=2.4 cv=JOY2csKb c=1 sm=1 tr=0 ts=68f944ed cx=c_pps
 a=MfjaFnPeirRr97d5FC5oHw==:117 a=MfjaFnPeirRr97d5FC5oHw==:17
 a=x6icFKpwvdMA:10 a=VkNPw1HP01LnGYTKEx00:22 a=VwQbUJbxAAAA:8
 a=yrzCLZB7q3RD1rw1K8oA:9
X-Proofpoint-Spam-Details-Enc: AW1haW4tMjUxMDIyMDE3MyBTYWx0ZWRfX7bjIV7+X/Jpk
 AQVFsiYB5szfPQHe5NfPoWbUd0izvvFrDqSS4YZSoOB2cDR7JG/DLFnzbjGi7DZUhJ3JvojdlwY
 SzDIesLj0YvDum4+i5eKN40CB4iDydA6L+W/DXyAIg/3kgiaroCxjUAeNgcTMuJayr8hqUV2sQx
 vkhtvMvAUXRjlamlo9rVGZ8USjIMQ7VlOnx/aMOqaPtUv906lrmHXqbNHO8Vr70doUTp28zXVxV
 C/3BBOTkpz6OY8pPTBW+8+195pBgTcPvrOvKsDGIq+DaUxdFicVZ3kccIx6ueVDfaEUM4CFypsu
 3r8EDTBnVd5nxDw7Za1lsithwTWTWqKNERkuK7d3SqvQK8jvt5imCSAPrl7/DOABOhGX1nrVebk
 QJDidohio+T8Pj204zcdk2SCdNMHlw==
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.293,Aquarius:18.0.1121,Hydra:6.1.9,FMLib:17.12.80.40
 definitions=2025-10-22_08,2025-10-22_01,2025-03-28_01
X-DKIM: signer='meta.com' status='pass' reason=''
DKIMCheck: Server passes DKIM test, 0 Spam score
X-Spam-Score: 0.4 (/)
X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has
 performed the tests listed below against this email.
 Information: https://mxroutedocs.com/directadmin/spamfilters/
 ---
 Content analysis details:   (0.4 points)
 ---
  pts rule name              description
 ---- ---------------------- -----------------------------------------
  1.5 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level
                             mail domains are different
  0.0 RCVD_IN_DNSWL_BLOCKED  RBL: ADMINISTRATOR NOTICE: The query to
                             DNSWL was blocked.  See
                             http://wiki.apache.org/spamassassin/DnsBlocklists#DnsBlocklists-dnsbl-block
                              for more information.
                             [142.0.200.124 listed in list.dnswl.org]
  0.1 DKIM_SIGNED            Message has a DKIM or DK signature, not necessarily
                             valid
 -0.1 DKIM_VALID_AU          Message has a valid DKIM or DK signature from
                             author's domain
 -0.1 DKIM_VALID             Message has at least one valid DKIM or DK signature
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager
SpamTally: Final spam score: 4

From: Keith Busch <kbusch@kernel.org>

The sq_head indicates the index directly in the submission queue when
the IORING_SETUP_NO_SQARRAY option is used, so use that instead of
skipping showing the entries.

Signed-off-by: Keith Busch <kbusch@kernel.org>
---
 io_uring/fdinfo.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/io_uring/fdinfo.c b/io_uring/fdinfo.c
index 5b26b2a97e1b9..f034786030105 100644
--- a/io_uring/fdinfo.c
+++ b/io_uring/fdinfo.c
@@ -95,8 +95,10 @@ static void __io_uring_show_fdinfo(struct io_ring_ctx =
*ctx, struct seq_file *m)
 		u8 opcode;
=20
 		if (ctx->flags & IORING_SETUP_NO_SQARRAY)
-			break;
-		sq_idx =3D READ_ONCE(ctx->sq_array[sq_head & sq_mask]);
+			sq_idx =3D sq_head & sq_mask;
+		else
+			sq_idx =3D READ_ONCE(ctx->sq_array[sq_head & sq_mask]);
+
 		if (sq_idx > sq_mask)
 			continue;
=20
--=20
2.47.3



From - Wed Oct 22 21:04:10 2025
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
Return-Path: <io-uring+bounces-10140-hi=josie.lol@vger.kernel.org>
Delivered-To: hi@josie.lol
Received: from witcher.mxrouting.net
	by witcher.mxrouting.net with LMTP
	id uPH3CFM9+Whc7jEAYBR5ng
	(envelope-from <io-uring+bounces-10140-hi=josie.lol@vger.kernel.org>)
	for <hi@josie.lol>; Wed, 22 Oct 2025 20:23:47 +0000
Return-path: <io-uring+bounces-10140-hi=josie.lol@vger.kernel.org>
Envelope-to: hi@josie.lol
Delivery-date: Wed, 22 Oct 2025 20:23:47 +0000
Received: from sv.mirrors.kernel.org ([139.178.88.99])
	by witcher.mxrouting.net with esmtps  (TLS1.3) tls TLS_AES_256_GCM_SHA384
	(Exim 4.98)
	(envelope-from <io-uring+bounces-10140-hi=josie.lol@vger.kernel.org>)
	id 1vBfN4-0000000FQ5P-2iLz
	for hi@josie.lol;
	Wed, 22 Oct 2025 20:23:46 +0000
Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140])
	(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))
	(No client certificate requested)
	by sv.mirrors.kernel.org (Postfix) with ESMTPS id DF2263A7D28
	for <hi@josie.lol>; Wed, 22 Oct 2025 20:23:45 +0000 (UTC)
Received: from localhost.localdomain (localhost.localdomain [127.0.0.1])
	by smtp.subspace.kernel.org (Postfix) with ESMTP id 192512FAC16;
	Wed, 22 Oct 2025 20:23:14 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="JeeiKJZ7"
X-Original-To: io-uring@vger.kernel.org
Received: from mail-pf1-f175.google.com (mail-pf1-f175.google.com [209.85.210.175])
	(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 94D2B26F46C
	for <io-uring@vger.kernel.org>; Wed, 22 Oct 2025 20:23:08 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.175
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1761164594; cv=none; b=MNtaqTv43qlDq79T0FqffdvmMEVjaiR7KAixqDmAYncXdV9to6coe6s+G6pBj2vn2iPNbn0XHAEx8gOatG16chVbk4GEQyZ+YpTA5KWFkb8kU1khs0NucsnGwhvL14NciMW+5ME3deTZ2mc2pgbAaL/L15wgu6NmxPcEfumE7yc=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1761164594; c=relaxed/simple;
	bh=cp5ty5nbE5cmwdf7e+GOM7vNP/yCBdewq52VexwfjUE=;
	h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=sejOI86Krl/2fs+iE4ogdwXkRin35h+s6FZp8aVxNn0SntSUBkvdwvXzAMVPXgeFseUZGQLmt1wNqrRkjHEsR/5K0ZIspenlnCUJhFe0lVSx07aeSIBN7Q7nTNdv0+85JXPX9rFTPY8dK5r4ywUZYIb7Kv6C3Um/HG0CYR8ZbQs=
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=JeeiKJZ7; arc=none smtp.client-ip=209.85.210.175
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
Received: by mail-pf1-f175.google.com with SMTP id d2e1a72fcca58-7835321bc98so39401b3a.2
        for <io-uring@vger.kernel.org>; Wed, 22 Oct 2025 13:23:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1761164588; x=1761769388; darn=vger.kernel.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=owh6411Khvjod0u0PmuG4C6qfWHhdBSTnJs4puqC3Kg=;
        b=JeeiKJZ7KlHyBHQ9E0rl6br2ZF0p1Ii2ouAGhMjJm6NK+dNTZQsRt5UIfeosCbbxFa
         ZFJYNRjwlHbu0JrK1pN6Q51k2LTge0/rYJwku/s5Cf39QQEBAdnO0Q7Pian1YIDZwqUJ
         L/kcVPiymblXP4LithiKaE/RAFQ3qV8/4zE35vKIcH6uAWpfgyQcrYsLlxS2LhHR6468
         4fdeRmGvF91YmpKY3JLO+u+nXfsK8vUIg8Aifeqgn4PfPloTg3xJhDi/4pBVcPdUgSbP
         me49fg7GxaKmrG4vGXtLPfYUhSbYULnMEwWkRn1IUPUNqmKvmTWn2JFMpV5ZnsMPMaF5
         hdLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1761164588; x=1761769388;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=owh6411Khvjod0u0PmuG4C6qfWHhdBSTnJs4puqC3Kg=;
        b=AEU5na/OmE24JmNsd2t1+UQpPncdbEe1ZN4JXvDRxWu8FGVr9z1xXGU35R18E4MHwo
         5uy62ClB38S51kRIrBidYTU7tO4zoDzYx8cQ/1PA/07/D8UiFCF0yLoAj9V/cX5jV51X
         UXRum9ILRQC6UDZTLxKth59LC2br3xHki2rrq//JhInkakrasmHVv3upLo0daUyCC1eI
         uUktavxu44qf+oM3orDzqevNptun1hCZwL5xTsItdaKaQd/HQmyF/qCzcIx3ks3qtSEN
         sQNi4Vy1Vj1eTPMUAEBobbU9+P6KbUJKut7vVCWbuM1lLYptoTjILB/Eb34wEqLzWr04
         VKEg==
X-Forwarded-Encrypted: i=1; AJvYcCVQdCdqPGGRzI0PuptN/rsYgoVCgGqO1FTi+B2wjfJgugeJg+FNILRYTfjaNgMKbwuvlQNlN+b4ag==@vger.kernel.org
X-Gm-Message-State: AOJu0YwasUNmqdXeRchFai53nHgcylSze2Miwthk2++Ozju9Tg1Ww0J7
	NO2iuWfyyt9Qb1n19/6SpfH9kZh17pUtb3H6c+vLpRmWGQSGyCdLP+tp
X-Gm-Gg: ASbGncvJ1aCuBEtddrn29kELyeNHhN6hTvuvbh0ftGR4gPAP+ZOXeYegtm3jyGaN8Jr
	jBjPKiO669FO2HMWt1oJJRBsvX7EXhYlEyktnyi3R8Y5lubEllrv5TlPI7e9TjH7tH9l4qkU8rm
	oGrKc5w00rLZrF0rGZCYlpmgqL64CjT1UcU1wIQg3lkhny2cavg/lgfpOlIodddBX7VSMsH9Pgu
	C8kSrNBvTfdU7aw62B3h+KwOSFPp5Vjy2erGK5uwvDuGTBbHGXGGLBidRdP7ClIrtqqd2Ub61oT
	RLtTv6IURC8hPr7FZXA+zY0IDJLi6/l1CmdF9dD/PC2TO0O1d2O3+ClufZF7vHYAOeLzcKb9lra
	TMkotNxEqLiaU45DTIIcRxDuYm96QoXXG5Eq9Z5QhGm9mmH/eyzlWKXxIpmGQORiA6+f234w6mw
	6AYVMkmMQvXdqTzlpQhiMzEMGKOwP27AmqBhupQQ==
X-Google-Smtp-Source: AGHT+IGuB/VB6sKdsdIJLryUCnbDbDEr5ucYqlOAO+Rxg4lhkaXlPLYt7lOInmpiv3ym/DzPYwaUVA==
X-Received: by 2002:a05:6a21:6d94:b0:249:3006:7567 with SMTP id adf61e73a8af0-334a8607433mr30211682637.35.1761164587609;
        Wed, 22 Oct 2025 13:23:07 -0700 (PDT)
Received: from localhost ([2a03:2880:ff:40::])
        by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7a274b8b82dsm99075b3a.50.2025.10.22.13.23.07
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Wed, 22 Oct 2025 13:23:07 -0700 (PDT)
From: Joanne Koong <joannelkoong@gmail.com>
To: miklos@szeredi.hu,
	axboe@kernel.dk
Cc: linux-fsdevel@vger.kernel.org,
	bschubert@ddn.com,
	asml.silence@gmail.com,
	io-uring@vger.kernel.org,
	xiaobing.li@samsung.com
Subject: [PATCH v1 0/2] fuse io_uring: support registered buffers
Date: Wed, 22 Oct 2025 13:20:19 -0700
Message-ID: <20251022202021.3649586-1-joannelkoong@gmail.com>
X-Mailer: git-send-email 2.47.3
Precedence: bulk
X-Mailing-List: io-uring@vger.kernel.org
List-Id: <io-uring.vger.kernel.org>
List-Subscribe: <mailto:io-uring+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:io-uring+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-DKIM: signer='gmail.com' status='pass' reason=''
DKIMCheck: Server passes DKIM test, 0 Spam score
X-Spam-Score: 0.4 (/)
X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has
 performed the tests listed below against this email.
 Information: https://mxroutedocs.com/directadmin/spamfilters/
 ---
 Content analysis details:   (0.4 points)
 ---
  pts rule name              description
 ---- ---------------------- -----------------------------------------
  0.0 RCVD_IN_DNSWL_BLOCKED  RBL: ADMINISTRATOR NOTICE: The query to
                             DNSWL was blocked.  See
                             http://wiki.apache.org/spamassassin/DnsBlocklists#DnsBlocklists-dnsbl-block
                              for more information.
                             [139.178.88.99 listed in list.dnswl.org]
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider
                             [joannelkoong[at]gmail.com]
  1.5 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level
                             mail domains are different
 -0.1 DKIM_VALID_AU          Message has a valid DKIM or DK signature from
                             author's domain
 -0.1 DKIM_VALID             Message has at least one valid DKIM or DK signature
  0.1 DKIM_SIGNED            Message has a DKIM or DK signature, not necessarily
                             valid
  0.0 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and
                             EnvelopeFrom freemail headers are
                             different
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager
SpamTally: Final spam score: 4

This adds support for daemons who preregister buffers to minimize the overhead
of pinning/unpinning user pages and translating virtual addresses. Registered
buffers pay the cost once during registration then reuse the pre-pinned pages,
which helps reduce the per-op overhead.

This is on top of commit 211ddde0823f in the iouring tree.

Joanne Koong (2):
  io-uring: add io_uring_cmd_get_buffer_info()
  fuse: support io-uring registered buffers

 fs/fuse/dev_uring.c          | 216 ++++++++++++++++++++++++++++++++---
 fs/fuse/dev_uring_i.h        |  17 ++-
 include/linux/io_uring/cmd.h |   2 +
 io_uring/rsrc.c              |  21 ++++
 4 files changed, 236 insertions(+), 20 deletions(-)

-- 
2.47.3



From - Wed Oct 22 21:04:10 2025
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
Return-Path: <io-uring+bounces-10140-hi=josie.lol@vger.kernel.org>
Delivered-To: hi@josie.lol
Received: from witcher.mxrouting.net
	by witcher.mxrouting.net with LMTP
	id uPH3CFM9+Whc7jEAYBR5ng
	(envelope-from <io-uring+bounces-10140-hi=josie.lol@vger.kernel.org>)
	for <hi@josie.lol>; Wed, 22 Oct 2025 20:23:47 +0000
Return-path: <io-uring+bounces-10140-hi=josie.lol@vger.kernel.org>
Envelope-to: hi@josie.lol
Delivery-date: Wed, 22 Oct 2025 20:23:47 +0000
Received: from sv.mirrors.kernel.org ([139.178.88.99])
	by witcher.mxrouting.net with esmtps  (TLS1.3) tls TLS_AES_256_GCM_SHA384
	(Exim 4.98)
	(envelope-from <io-uring+bounces-10140-hi=josie.lol@vger.kernel.org>)
	id 1vBfN4-0000000FQ5P-2iLz
	for hi@josie.lol;
	Wed, 22 Oct 2025 20:23:46 +0000
Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140])
	(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))
	(No client certificate requested)
	by sv.mirrors.kernel.org (Postfix) with ESMTPS id DF2263A7D28
	for <hi@josie.lol>; Wed, 22 Oct 2025 20:23:45 +0000 (UTC)
Received: from localhost.localdomain (localhost.localdomain [127.0.0.1])
	by smtp.subspace.kernel.org (Postfix) with ESMTP id 192512FAC16;
	Wed, 22 Oct 2025 20:23:14 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="JeeiKJZ7"
X-Original-To: io-uring@vger.kernel.org
Received: from mail-pf1-f175.google.com (mail-pf1-f175.google.com [209.85.210.175])
	(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 94D2B26F46C
	for <io-uring@vger.kernel.org>; Wed, 22 Oct 2025 20:23:08 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.175
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1761164594; cv=none; b=MNtaqTv43qlDq79T0FqffdvmMEVjaiR7KAixqDmAYncXdV9to6coe6s+G6pBj2vn2iPNbn0XHAEx8gOatG16chVbk4GEQyZ+YpTA5KWFkb8kU1khs0NucsnGwhvL14NciMW+5ME3deTZ2mc2pgbAaL/L15wgu6NmxPcEfumE7yc=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1761164594; c=relaxed/simple;
	bh=cp5ty5nbE5cmwdf7e+GOM7vNP/yCBdewq52VexwfjUE=;
	h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=sejOI86Krl/2fs+iE4ogdwXkRin35h+s6FZp8aVxNn0SntSUBkvdwvXzAMVPXgeFseUZGQLmt1wNqrRkjHEsR/5K0ZIspenlnCUJhFe0lVSx07aeSIBN7Q7nTNdv0+85JXPX9rFTPY8dK5r4ywUZYIb7Kv6C3Um/HG0CYR8ZbQs=
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=JeeiKJZ7; arc=none smtp.client-ip=209.85.210.175
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
Received: by mail-pf1-f175.google.com with SMTP id d2e1a72fcca58-7835321bc98so39401b3a.2
        for <io-uring@vger.kernel.org>; Wed, 22 Oct 2025 13:23:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1761164588; x=1761769388; darn=vger.kernel.org;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:from:to:cc:subject:date:message-id:reply-to;
        bh=owh6411Khvjod0u0PmuG4C6qfWHhdBSTnJs4puqC3Kg=;
        b=JeeiKJZ7KlHyBHQ9E0rl6br2ZF0p1Ii2ouAGhMjJm6NK+dNTZQsRt5UIfeosCbbxFa
         ZFJYNRjwlHbu0JrK1pN6Q51k2LTge0/rYJwku/s5Cf39QQEBAdnO0Q7Pian1YIDZwqUJ
         L/kcVPiymblXP4LithiKaE/RAFQ3qV8/4zE35vKIcH6uAWpfgyQcrYsLlxS2LhHR6468
         4fdeRmGvF91YmpKY3JLO+u+nXfsK8vUIg8Aifeqgn4PfPloTg3xJhDi/4pBVcPdUgSbP
         me49fg7GxaKmrG4vGXtLPfYUhSbYULnMEwWkRn1IUPUNqmKvmTWn2JFMpV5ZnsMPMaF5
         hdLQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1761164588; x=1761769388;
        h=content-transfer-encoding:mime-version:message-id:date:subject:cc
         :to:from:x-gm-message-state:from:to:cc:subject:date:message-id
         :reply-to;
        bh=owh6411Khvjod0u0PmuG4C6qfWHhdBSTnJs4puqC3Kg=;
        b=AEU5na/OmE24JmNsd2t1+UQpPncdbEe1ZN4JXvDRxWu8FGVr9z1xXGU35R18E4MHwo
         5uy62ClB38S51kRIrBidYTU7tO4zoDzYx8cQ/1PA/07/D8UiFCF0yLoAj9V/cX5jV51X
         UXRum9ILRQC6UDZTLxKth59LC2br3xHki2rrq//JhInkakrasmHVv3upLo0daUyCC1eI
         uUktavxu44qf+oM3orDzqevNptun1hCZwL5xTsItdaKaQd/HQmyF/qCzcIx3ks3qtSEN
         sQNi4Vy1Vj1eTPMUAEBobbU9+P6KbUJKut7vVCWbuM1lLYptoTjILB/Eb34wEqLzWr04
         VKEg==
X-Forwarded-Encrypted: i=1; AJvYcCVQdCdqPGGRzI0PuptN/rsYgoVCgGqO1FTi+B2wjfJgugeJg+FNILRYTfjaNgMKbwuvlQNlN+b4ag==@vger.kernel.org
X-Gm-Message-State: AOJu0YwasUNmqdXeRchFai53nHgcylSze2Miwthk2++Ozju9Tg1Ww0J7
	NO2iuWfyyt9Qb1n19/6SpfH9kZh17pUtb3H6c+vLpRmWGQSGyCdLP+tp
X-Gm-Gg: ASbGncvJ1aCuBEtddrn29kELyeNHhN6hTvuvbh0ftGR4gPAP+ZOXeYegtm3jyGaN8Jr
	jBjPKiO669FO2HMWt1oJJRBsvX7EXhYlEyktnyi3R8Y5lubEllrv5TlPI7e9TjH7tH9l4qkU8rm
	oGrKc5w00rLZrF0rGZCYlpmgqL64CjT1UcU1wIQg3lkhny2cavg/lgfpOlIodddBX7VSMsH9Pgu
	C8kSrNBvTfdU7aw62B3h+KwOSFPp5Vjy2erGK5uwvDuGTBbHGXGGLBidRdP7ClIrtqqd2Ub61oT
	RLtTv6IURC8hPr7FZXA+zY0IDJLi6/l1CmdF9dD/PC2TO0O1d2O3+ClufZF7vHYAOeLzcKb9lra
	TMkotNxEqLiaU45DTIIcRxDuYm96QoXXG5Eq9Z5QhGm9mmH/eyzlWKXxIpmGQORiA6+f234w6mw
	6AYVMkmMQvXdqTzlpQhiMzEMGKOwP27AmqBhupQQ==
X-Google-Smtp-Source: AGHT+IGuB/VB6sKdsdIJLryUCnbDbDEr5ucYqlOAO+Rxg4lhkaXlPLYt7lOInmpiv3ym/DzPYwaUVA==
X-Received: by 2002:a05:6a21:6d94:b0:249:3006:7567 with SMTP id adf61e73a8af0-334a8607433mr30211682637.35.1761164587609;
        Wed, 22 Oct 2025 13:23:07 -0700 (PDT)
Received: from localhost ([2a03:2880:ff:40::])
        by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7a274b8b82dsm99075b3a.50.2025.10.22.13.23.07
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Wed, 22 Oct 2025 13:23:07 -0700 (PDT)
From: Joanne Koong <joannelkoong@gmail.com>
To: miklos@szeredi.hu,
	axboe@kernel.dk
Cc: linux-fsdevel@vger.kernel.org,
	bschubert@ddn.com,
	asml.silence@gmail.com,
	io-uring@vger.kernel.org,
	xiaobing.li@samsung.com
Subject: [PATCH v1 0/2] fuse io_uring: support registered buffers
Date: Wed, 22 Oct 2025 13:20:19 -0700
Message-ID: <20251022202021.3649586-1-joannelkoong@gmail.com>
X-Mailer: git-send-email 2.47.3
Precedence: bulk
X-Mailing-List: io-uring@vger.kernel.org
List-Id: <io-uring.vger.kernel.org>
List-Subscribe: <mailto:io-uring+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:io-uring+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-DKIM: signer='gmail.com' status='pass' reason=''
DKIMCheck: Server passes DKIM test, 0 Spam score
X-Spam-Score: 0.4 (/)
X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has
 performed the tests listed below against this email.
 Information: https://mxroutedocs.com/directadmin/spamfilters/
 ---
 Content analysis details:   (0.4 points)
 ---
  pts rule name              description
 ---- ---------------------- -----------------------------------------
  0.0 RCVD_IN_DNSWL_BLOCKED  RBL: ADMINISTRATOR NOTICE: The query to
                             DNSWL was blocked.  See
                             http://wiki.apache.org/spamassassin/DnsBlocklists#DnsBlocklists-dnsbl-block
                              for more information.
                             [139.178.88.99 listed in list.dnswl.org]
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider
                             [joannelkoong[at]gmail.com]
  1.5 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level
                             mail domains are different
 -0.1 DKIM_VALID_AU          Message has a valid DKIM or DK signature from
                             author's domain
 -0.1 DKIM_VALID             Message has at least one valid DKIM or DK signature
  0.1 DKIM_SIGNED            Message has a DKIM or DK signature, not necessarily
                             valid
  0.0 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and
                             EnvelopeFrom freemail headers are
                             different
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager
SpamTally: Final spam score: 4

This adds support for daemons who preregister buffers to minimize the overhead
of pinning/unpinning user pages and translating virtual addresses. Registered
buffers pay the cost once during registration then reuse the pre-pinned pages,
which helps reduce the per-op overhead.

This is on top of commit 211ddde0823f in the iouring tree.

Joanne Koong (2):
  io-uring: add io_uring_cmd_get_buffer_info()
  fuse: support io-uring registered buffers

 fs/fuse/dev_uring.c          | 216 ++++++++++++++++++++++++++++++++---
 fs/fuse/dev_uring_i.h        |  17 ++-
 include/linux/io_uring/cmd.h |   2 +
 io_uring/rsrc.c              |  21 ++++
 4 files changed, 236 insertions(+), 20 deletions(-)

-- 
2.47.3



From - Wed Oct 22 21:04:10 2025
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
Return-Path: <io-uring+bounces-10141-hi=josie.lol@vger.kernel.org>
Delivered-To: hi@josie.lol
Received: from witcher.mxrouting.net
	by witcher.mxrouting.net with LMTP
	id UHYfOFc9+WjwrDcAYBR5ng
	(envelope-from <io-uring+bounces-10141-hi=josie.lol@vger.kernel.org>)
	for <hi@josie.lol>; Wed, 22 Oct 2025 20:23:51 +0000
Return-path: <io-uring+bounces-10141-hi=josie.lol@vger.kernel.org>
Envelope-to: hi@josie.lol
Delivery-date: Wed, 22 Oct 2025 20:23:52 +0000
Received: from sv.mirrors.kernel.org ([139.178.88.99])
	by witcher.mxrouting.net with esmtps  (TLS1.3) tls TLS_AES_256_GCM_SHA384
	(Exim 4.98)
	(envelope-from <io-uring+bounces-10141-hi=josie.lol@vger.kernel.org>)
	id 1vBfN9-0000000FQES-2lXc
	for hi@josie.lol;
	Wed, 22 Oct 2025 20:23:51 +0000
Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140])
	(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))
	(No client certificate requested)
	by sv.mirrors.kernel.org (Postfix) with ESMTPS id D3F323A7CBB
	for <hi@josie.lol>; Wed, 22 Oct 2025 20:23:50 +0000 (UTC)
Received: from localhost.localdomain (localhost.localdomain [127.0.0.1])
	by smtp.subspace.kernel.org (Postfix) with ESMTP id 8073F2F9D83;
	Wed, 22 Oct 2025 20:23:19 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org;
	dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="hgiTv4H1"
X-Original-To: io-uring@vger.kernel.org
Received: from mail-pf1-f174.google.com (mail-pf1-f174.google.com [209.85.210.174])
	(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 3BC782FB085
	for <io-uring@vger.kernel.org>; Wed, 22 Oct 2025 20:23:09 +0000 (UTC)
Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.174
ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116;
	t=1761164599; cv=none; b=jObyVAUgNDZZAjw+zI9HiyH1JdOkueBUQ0W75UxoSRovQk0f7OmJreJ4yUvEltCKVfybYb7uE6wuVzxtcJMXyXq7DbsShZf3YazWdcDdJ2f8lsOcvWG0DIfjw7Rtc+RMz1Lqaz7so57ZnfFdP4QAZ275W6o2ShocpKv5IbBmJdc=
ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org;
	s=arc-20240116; t=1761164599; c=relaxed/simple;
	bh=5mGTHKsXQv408pm5SoqLD5GoewsNp5Bjs5WKt6tWBYg=;
	h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References:
	 MIME-Version; b=Rc9/er8K7ssNocTudQkFHc8h/ec5bPDwv/luhVLg5HHLPB6CVRFI2AlYWuqaL3RVp7+jX2M1WCL4wTjYOwG/bt/oIE5FPTn9d01FQF7+8SAuqGFrsRhehojDDWWm8NhzJ7/WENuHselJ/LDGU90Va20vs+VAQBRxne+B3KlquPg=
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=hgiTv4H1; arc=none smtp.client-ip=209.85.210.174
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
Received: by mail-pf1-f174.google.com with SMTP id d2e1a72fcca58-7a23208a0c2so60517b3a.0
        for <io-uring@vger.kernel.org>; Wed, 22 Oct 2025 13:23:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=gmail.com; s=20230601; t=1761164589; x=1761769389; 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;
        bh=FMrDgkreuMkwxyjlwV8UKQbwsl/RgFlAftkbtcC6Jgk=;
        b=hgiTv4H1D6AjTUnuGSqK6jb4jzg2ToW4SNNG81472A2HgVKWOTsEfN976GSjE7ZNxV
         tbUZMD7QQNNzaIIeOjhrqMJFsAvrWVbJsuI4ySd8B9NEtosETYV6oITKAfZsA6IFOr7g
         /DfoSd85phMw7PlxpURFPpcj++hRQqzLO9iPleCbr2i0k/JdIYSDur4TW5Tk8SxdA5Z3
         DKo8apxwSp+2W74YgQa8tH9xixwVpMBx+NGb8LM0eJIHZE5To2CAXqzKDIDvNEB9SI8C
         sf6RNjfgyJKd2zAyXvCojIcYmvy0K0EzsLXMUKKOXF2WhSf4p/hvT6oFWd0bcjGwD+J5
         tkzA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
        d=1e100.net; s=20230601; t=1761164589; x=1761769389;
        h=content-transfer-encoding:mime-version:references:in-reply-to
         :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
         :subject:date:message-id:reply-to;
        bh=FMrDgkreuMkwxyjlwV8UKQbwsl/RgFlAftkbtcC6Jgk=;
        b=GoRh0MD9qrKxdHbTp4R97cuEvzAD4/w+uooHpD8/P+XpMutjHtlJBvJ+JeEInfmzZ7
         kJQ9BrzAM7OK268ZBxyELUL8BPj/dSRe/DstO7Xa1MpOuojqmWCQYY5Hrb95e2joHStG
         ce4Knndr4K9B+5X7nnzS0vmYn0ZCdUqgnl2bsdoWGG17kCdDmYGSCB/mpk/cUqzE2tu/
         p1yUA1Rxb0GkoxzyqiywH8Yl7FCSFWpkQDdam5su/VE8NF5i1r29BT1nR37Y/6W5BpOU
         rJ9CB89yoHurtY5H7gWEnK1V+m+TWpbp2zIhDMg+qkCXwz+JDgN5TdYmXvmO5kdLecM7
         zaaQ==
X-Forwarded-Encrypted: i=1; AJvYcCVWMGUGR85gKuprbA9r0nCTEvK34bI5pg80AxK9BtM/ydq7MkOML37gVGjvdeiLcVxIqRVZayYl4Q==@vger.kernel.org
X-Gm-Message-State: AOJu0Yw5wgNga5unPxr1bH5befe2f2AkcIUFTYnoA71KrpaYUH4TgAlu
	uTfftZBayOu2sOemZcJ5t8SKBgsIfP8gC4JJ1FVG0jmCp39qDNtjUQfu
X-Gm-Gg: ASbGncuRJ/Hp0juYKhDfvQ1k6QrC6R6Z1QMroceLahiGiRmobr7rGfUAcGgwG8UNVts
	7t9LrFSYgMr4IxggevGAIlkTb5U+fAvvemRK4DAWCZWIFhw3tiyNSZ7MfYkYzLx3oPt64rWs+LI
	8UD7SrTc3XG25AnyyQCqWYYg0qccPV9Tk86XizteBhJXR3cEZKzEprM9dlK+KfQTjUG+B0NujVw
	MLkr6sPMWwCU3sg2FUsJFpPnHKqax704Xud9Suenlg1T4RLBuydY+bPeN0QRpbF/wOD5fN0gWrZ
	nMVJeo5eYcYKBzmjdphSlh1MI4xYQU0ZnnBxOgq3aMEB3Y9xhPgwWQO65kXi9BReFM2KxckFzY5
	xs81FsQso2SY0A8CD8SdBkkCeeLeDvZ+ELBWz1ABLvh3jxRE09jw4CaunQBmcHPxqhGJdGLC7nh
	PYTDMOAqe5OILvwjahEW6mkKILjKQ=
X-Google-Smtp-Source: AGHT+IFqN567FI5QsK8lZuMHHcMGHghKlmdWXCLA05arSr2M91d3jOjl5DkbcgOAUFVUVgzE3GNY8A==
X-Received: by 2002:a17:902:f64a:b0:269:9e4d:4c8b with SMTP id d9443c01a7336-290ca403110mr272080675ad.21.1761164589389;
        Wed, 22 Oct 2025 13:23:09 -0700 (PDT)
Received: from localhost ([2a03:2880:ff:43::])
        by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-33e2247a34esm3444453a91.15.2025.10.22.13.23.08
        (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
        Wed, 22 Oct 2025 13:23:09 -0700 (PDT)
From: Joanne Koong <joannelkoong@gmail.com>
To: miklos@szeredi.hu,
	axboe@kernel.dk
Cc: linux-fsdevel@vger.kernel.org,
	bschubert@ddn.com,
	asml.silence@gmail.com,
	io-uring@vger.kernel.org,
	xiaobing.li@samsung.com
Subject: [PATCH v1 1/2] io-uring: add io_uring_cmd_get_buffer_info()
Date: Wed, 22 Oct 2025 13:20:20 -0700
Message-ID: <20251022202021.3649586-2-joannelkoong@gmail.com>
X-Mailer: git-send-email 2.47.3
In-Reply-To: <20251022202021.3649586-1-joannelkoong@gmail.com>
References: <20251022202021.3649586-1-joannelkoong@gmail.com>
Precedence: bulk
X-Mailing-List: io-uring@vger.kernel.org
List-Id: <io-uring.vger.kernel.org>
List-Subscribe: <mailto:io-uring+subscribe@vger.kernel.org>
List-Unsubscribe: <mailto:io-uring+unsubscribe@vger.kernel.org>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-DKIM: signer='gmail.com' status='pass' reason=''
DKIMCheck: Server passes DKIM test, 0 Spam score
X-Spam-Score: -1.9 (-)
X-Spam-Report: Spam detection software, running on the system "witcher.mxrouting.net", has
 performed the tests listed below against this email.
 Information: https://mxroutedocs.com/directadmin/spamfilters/
 ---
 Content analysis details:   (-1.9 points)
 ---
  pts rule name              description
 ---- ---------------------- -----------------------------------------
 -2.3 RCVD_IN_DNSWL_MED      RBL: Sender listed at https://www.dnswl.org/,
                             medium trust
                             [139.178.88.99 listed in list.dnswl.org]
  0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
                             provider
                             [joannelkoong[at]gmail.com]
  1.5 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level
                             mail domains are different
 -0.1 DKIM_VALID_AU          Message has a valid DKIM or DK signature from
                             author's domain
 -0.1 DKIM_VALID             Message has at least one valid DKIM or DK signature
  0.1 DKIM_SIGNED            Message has a DKIM or DK signature, not necessarily
                             valid
  0.0 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and
                             EnvelopeFrom freemail headers are
                             different
 -1.0 MAILING_LIST_MULTI     Multiple indicators imply a widely-seen list
                             manager
SpamTally: Final spam score: -18

Add io_uring_cmd_get_buffer_info() to fetch buffer information that will
be necessary for constructing an iov iter for it.

Signed-off-by: Joanne Koong <joannelkoong@gmail.com>
---
 include/linux/io_uring/cmd.h |  2 ++
 io_uring/rsrc.c              | 21 +++++++++++++++++++++
 2 files changed, 23 insertions(+)

diff --git a/include/linux/io_uring/cmd.h b/include/linux/io_uring/cmd.h
index 7509025b4071..a92e810f37f9 100644
--- a/include/linux/io_uring/cmd.h
+++ b/include/linux/io_uring/cmd.h
@@ -177,4 +177,6 @@ int io_buffer_register_bvec(struct io_uring_cmd *cmd, struct request *rq,
 int io_buffer_unregister_bvec(struct io_uring_cmd *cmd, unsigned int index,
 			      unsigned int issue_flags);
 
+int io_uring_cmd_get_buffer_info(struct io_uring_cmd *cmd, u64 *ubuf,
+				 unsigned int *len);
 #endif /* _LINUX_IO_URING_CMD_H */
diff --git a/io_uring/rsrc.c b/io_uring/rsrc.c
index d787c16dc1c3..8554cdad8abc 100644
--- a/io_uring/rsrc.c
+++ b/io_uring/rsrc.c
@@ -1569,3 +1569,24 @@ int io_prep_reg_iovec(struct io_kiocb *req, struct iou_vec *iv,
 	req->flags |= REQ_F_IMPORT_BUFFER;
 	return 0;
 }
+
+int io_uring_cmd_get_buffer_info(struct io_uring_cmd *cmd, u64 *ubuf,
+				 unsigned int *len)
+{
+	struct io_ring_ctx *ctx = cmd_to_io_kiocb(cmd)->ctx;
+	struct io_rsrc_data *data = &ctx->buf_table;
+	struct io_mapped_ubuf *imu;
+	unsigned int buf_index;
+
+	if (!data->nr)
+		return -EINVAL;
+
+	buf_index = cmd->sqe->buf_index;
+	imu = data->nodes[buf_index]->buf;
+
+	*ubuf = imu->ubuf;
+	*len = imu->len;
+
+	return 0;
+}
+EXPORT_SYMBOL_GPL(io_uring_cmd_get_buffer_info);
-- 
2.47.3



From - Wed Oct 22 21:05:58 2025
X-Mozilla-Status: 0001
X-Mozilla-Status2: 00000000
Return-Path: <stable+bounces-189039-hi=josie.lol@vger.kernel.org>
Delivered-To: hi@josie.lol
Received: from witcher.mxrouting.net
	by witcher.mxrouting.net with LMTP
	id iLWhNDNH+WiDcDwAYBR5ng
	(envelope-from <stable+bounces-189039-hi=josie.lol@vger.kernel.org>)
	for <hi@josie.lol>; Wed, 22 Oct 2025 21:05:55 +0000
Return-path: <stable+bounces-189039-hi=josie.lol@vger.kernel.org>
Envelope-to: hi@josie.lol
Delivery-date: Wed, 22 Oct 2025 21:05:55 +0000
Received: from dfw.mirrors.kernel.org ([142.0.200.124])
	by witcher.mxrouting.net with esmtps  (TLS1.3) tls TLS_AES_256_GCM_SHA384
	(Exim 4.98)
	(envelope-from <stable+bounces-189039-hi=josie.lol@vger.kernel.org>)
	id 1vBg1r-0000000GqRl-1zii
	for hi@josie.lol;
	Wed, 22 Oct 2025 21:05:55 +0000
Received: from smtp.subspace.kernel.org (relay.kernel.org [52.25.139.140])
	(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))
	(No client certificate requested)
	by dfw.mirrors.kernel.org (Postfix) with ESMTPS id 41C874E3796
	for <hi@josie.lol>; Wed, 22 Oct 2025 21:05:49 +0000 (UTC)
Received: from localhost.locald