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 ; 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 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: List-Subscribe: List-Unsubscribe: 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 --- 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: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id 0J+rAvhB+WiXPToAYBR5ng (envelope-from ) for ; Wed, 22 Oct 2025 20:43:36 +0000 Return-path: 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 ) 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 ; 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 , 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 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: List-Subscribe: List-Unsubscribe: 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: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id IDydEPRE+Wiv8joAYBR5ng (envelope-from ) for ; Wed, 22 Oct 2025 20:56:20 +0000 Return-path: 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 ) 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 ; 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 ; 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 ; 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 ; 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 To: , CC: Keith Busch 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: List-Subscribe: List-Unsubscribe: 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 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 --- 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: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id uPH3CFM9+Whc7jEAYBR5ng (envelope-from ) for ; Wed, 22 Oct 2025 20:23:47 +0000 Return-path: 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 ) 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 ; 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 ; 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 ; 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 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: List-Subscribe: List-Unsubscribe: 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: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id uPH3CFM9+Whc7jEAYBR5ng (envelope-from ) for ; Wed, 22 Oct 2025 20:23:47 +0000 Return-path: 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 ) 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 ; 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 ; 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 ; 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 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: List-Subscribe: List-Unsubscribe: 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: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id UHYfOFc9+WjwrDcAYBR5ng (envelope-from ) for ; Wed, 22 Oct 2025 20:23:51 +0000 Return-path: 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 ) 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 ; 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 ; 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 ; 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 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: List-Subscribe: List-Unsubscribe: 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 --- 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: Delivered-To: hi@josie.lol Received: from witcher.mxrouting.net by witcher.mxrouting.net with LMTP id iLWhNDNH+WiDcDwAYBR5ng (envelope-from ) for ; Wed, 22 Oct 2025 21:05:55 +0000 Return-path: 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 ) 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 ; Wed, 22 Oct 2025 21:05:49 +0000 (UTC) Received: from localhost.locald