From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6FFAEC27C53 for ; Wed, 12 Jun 2024 14:08:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B7C356B008C; Wed, 12 Jun 2024 10:08:09 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B04686B0095; Wed, 12 Jun 2024 10:08:09 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 97D146B0098; Wed, 12 Jun 2024 10:08:09 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 757A56B008C for ; Wed, 12 Jun 2024 10:08:09 -0400 (EDT) Received: from smtpin11.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id D8F23A175C for ; Wed, 12 Jun 2024 14:08:08 +0000 (UTC) X-FDA: 82222415856.11.E786AE4 Received: from mail-ej1-f48.google.com (mail-ej1-f48.google.com [209.85.218.48]) by imf30.hostedemail.com (Postfix) with ESMTP id 9086180008 for ; Wed, 12 Jun 2024 14:08:06 +0000 (UTC) Authentication-Results: imf30.hostedemail.com; dkim=pass header.d=szeredi.hu header.s=google header.b=S6jgD7NC; spf=pass (imf30.hostedemail.com: domain of miklos@szeredi.hu designates 209.85.218.48 as permitted sender) smtp.mailfrom=miklos@szeredi.hu; dmarc=pass (policy=quarantine) header.from=szeredi.hu ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1718201287; a=rsa-sha256; cv=none; b=V5FVS1tOmDlALERPfKh/phnCpfp59sZcadz3qN+3P7f9DGEJn6h46M9I6qbMDO1TYDQ3RW cLHl+j97ncyxXg4qy5bJM2xSu3Dd09KrWf+Hp6EZ02mqGh4d28iuAnMznRfe8w1EvHEmD2 I0loSlCm0rkOPqkuf3vMpeiLW0UWEuk= ARC-Authentication-Results: i=1; imf30.hostedemail.com; dkim=pass header.d=szeredi.hu header.s=google header.b=S6jgD7NC; spf=pass (imf30.hostedemail.com: domain of miklos@szeredi.hu designates 209.85.218.48 as permitted sender) smtp.mailfrom=miklos@szeredi.hu; dmarc=pass (policy=quarantine) header.from=szeredi.hu ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1718201287; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=OAEju+oU4oJS914s12UkkuOt+Kxik+e/JCB3W7SXu9I=; b=N9gSusHjQTxeixykkAX3DQALTY/2Dd/tZHF+DA9R1AlosiMLmE5UEN/qDH3q+vUsXcUP9E RPhIhj3E3HFcT+y05E4gNrvG4nAFSJ9G+VXj9G/CQAu6iGlwA87rpzmeV7MLZLgYnm55ds mdCizeXapgn3AgLjCfhUDs90rYuUbV8= Received: by mail-ej1-f48.google.com with SMTP id a640c23a62f3a-a63359aaaa6so982655466b.2 for ; Wed, 12 Jun 2024 07:08:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=szeredi.hu; s=google; t=1718201284; x=1718806084; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=OAEju+oU4oJS914s12UkkuOt+Kxik+e/JCB3W7SXu9I=; b=S6jgD7NCDvi5kC0474jW3Vhm4qCPSbcoPQBKk5zEu4lrnjoD1RtnOJdfKzKOy61kz3 wxeZpa/ZYQ2USiYbBnkY6obgnWoyHNUTTFYrgxZZODAO1UqtwEw63q/d/LEkN6EemNXz rxtPTHL2kJ4ALNJVhH9P8h2/A7+I3KEZPkAIY= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1718201284; x=1718806084; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=OAEju+oU4oJS914s12UkkuOt+Kxik+e/JCB3W7SXu9I=; b=NFktZJ4Rw2cvCpWsgum3MsX+GyMuzSbw4rIjYDyD39dZ6VkjoFdhUgvCh5LooepfRN MnKlm69bvYSysqTFIH0yWFQj136zAlThMTCCw9eZPzuE3OvFRLU3oDhRjKHONqim6St7 WZt2vHcSMAKCK3Kc/eEcAgUMc9607URbvD6KmmQCeeao4ykgz3G2208pVpC7+MhYlk2K fau8OtWN/ryQNDHyPzIqCRLV+7FSEy1sNEMrYhwgzx4pC4EAEik3rAAR+fTQdTnexdKu LyIiKCqeWFnsH4+nOtMUQ4LYRW40U9HG2kbeBdRe7mpS7mL4J6foz09tt17OFViHQa1p ZnvQ== X-Forwarded-Encrypted: i=1; AJvYcCU2axdXKMEQsLFemEobaE+A7MLQ4bj+ooCFiMg/7vbsvUdYEXpfcCNMtvkEJ7wuxJWrFxskr5RQrVv62qB67WZ61WI= X-Gm-Message-State: AOJu0YwwOK5J3+RsDYH1nBpf68Mhv5U1mT/QrHxIckgrbN28hqCYqk7l XANdUcsg/IpEVcP3LGZPR7lHciRTpQQ5hk0OOEtr41SsmiadGHdO0d83AKphtRnlrcgt+YPMWsq LrXDOqgsh+Ra2twP/1ZOTX+blJuL9wAgUmq40Xw== X-Google-Smtp-Source: AGHT+IGqsCZ9bqtgdaDlwUjOi0Qif148/T68bKEYe319TQA//L+jBiTtEEq73ZO2bn/yzaH50ALZThEfEoy90yAxV0w= X-Received: by 2002:a17:906:2745:b0:a6f:33d6:2d4b with SMTP id a640c23a62f3a-a6f47ff3b97mr104559266b.75.1718201284331; Wed, 12 Jun 2024 07:08:04 -0700 (PDT) MIME-Version: 1.0 References: <20240529-fuse-uring-for-6-9-rfc2-out-v1-0-d149476b1d65@ddn.com> <99d13ae4-8250-4308-b86d-14abd1de2867@fastmail.fm> <62ecc4cf-97c8-43e6-84a1-72feddf07d29@fastmail.fm> <0615e79d-9397-48eb-b89e-f0be1d814baf@ddn.com> In-Reply-To: <0615e79d-9397-48eb-b89e-f0be1d814baf@ddn.com> From: Miklos Szeredi Date: Wed, 12 Jun 2024 16:07:52 +0200 Message-ID: Subject: Re: [PATCH RFC v2 00/19] fuse: fuse-over-io-uring To: Bernd Schubert Cc: Bernd Schubert , Amir Goldstein , "linux-fsdevel@vger.kernel.org" , Andrew Morton , "linux-mm@kvack.org" , Ingo Molnar , Peter Zijlstra , Andrei Vagin , "io-uring@vger.kernel.org" , Kent Overstreet Content-Type: text/plain; charset="UTF-8" X-Rspamd-Queue-Id: 9086180008 X-Rspam-User: X-Rspamd-Server: rspam12 X-Stat-Signature: j91869qtjd1nhqs9rwghq8hpnbf8q834 X-HE-Tag: 1718201286-869100 X-HE-Meta: U2FsdGVkX19OvFvrj7gvqMABQJAkg1SKge3a3bOQyFCCDU66q++VSdfnX+r5kz4TGxtdWyMg6D5xzcJKtgnel1RfA9Rojz6Ytb0NUtLDxfEnWt9bGk1HGLyWSbqtyf5YftVg+d1d82Vt8qqm5Nh6tLb4G5wDP+JgXQ5fDlgYWQA04ejPXFvC2TWctOPR3xA5W8V7WHT8NIHZ1b67G0E34B/PQY8ClJhmsD07ATG0JgFpXlyv8glJvNXhVO/1xa7kvdMxwM9cUd3daAny52zSf6KaXVnC8LKN1CktO9p3xDZTDjfC06SON+dNX8oJg4/h6P6BIq/dtUnbIfe0qO1UyPAXYc9e3I9Dbj9MqK94nz3TJfC2axO8UvTDr+tu1ZnMeRBuLE9ncU3PW44e9UMpZ6dDeQkf0iipHRodAnWit/83jnX9YxruoaMW35r6FBApBWPNxQF3dYqTiGPk45n4alo9blID6afbsKD6Ae/8BCUA3LgiC0oMao0c5H/oZXx4vNggRWO/xzbzI9mC+gn8SetiH57Z1nU56vhVpFQtk0XTcxL2Xtb61E+OAbkWfgATf7bW8+DoonHHHgEVVxQ42OYqz5fQebyYF51K01vEFWIjG6ivsjIv6p7D+3JH5Uk72MLqPJMJUCpST5YiAdQfszhOlnrsiHIY8uzC9XrSi6tqEPNRdSHRVXy66XzsVQH9CsM+Kga1Pv8zWJl1NFdugmWJ/ZzzbtwdgPowT/+vr5dWLgNiIDlR0Q5VoPr/UhJFrmPXRnCV7AtOiKO9RC2zvCOXWFqsQlSPVXoHj87jAUN/gPLoc8g26Sy8ZicGaHaOXX9zj4VrzI/XOoivJgebVvMHcUTsZ1bfPhVrT1M8sLAg7hxfUElcXIe97QSVlKUshTTNKXxDpoBHICqHGnhHp3HTb8Es9HJGTyXPHJEIeKzOA3v9HoERLJU2jnhh8t6Q7MHFULm73NGfzmea+Tz jDBjlnNE kj/Fhptj/9qG9BpIyd+CXjR3jBkTkeDpwWmQmVhhsKq2sPh0SXGHX7TiculGo/cL5n5h60JtzROf5KgaduuzjAxF9opV01nqUGeTKNImARps0i2Mr/um0yHPxW3qt+pAlf5zrWKK+vVmCrH9zHjJXBU6kwHffJjcIyZne08ojDcclfjDzepcCRrLSx5RYgNUIPpuzEOLxJS/CTt9/WSdQfe+5hHvGJ4mjQ8ed9CU8vR0IJgCbLZZoCbbqhgfCLkCheqMnVNUt1bl0Xb2L4voV1NheoDtWnRzZQHoZ0xHUNj8QFDpAS4nd2reLfxxxf1xXDHtKwrUh4/o15ng= X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Wed, 12 Jun 2024 at 15:33, Bernd Schubert wrote: > I didn't do that yet, as we are going to use the ring buffer for requests, > i.e. the ring buffer immediately gets all the data from network, there is > no copy. Even if the ring buffer would get data from local disk - there > is no need to use a separate application buffer anymore. And with that > there is just no extra copy Let's just tackle this shared request buffer, as it seems to be a central part of your design. You say the shared buffer is used to immediately get the data from the network (or various other sources), which is completely viable. And then the kernel will do the copy from the shared buffer. Single copy, fine. But if the buffer wasn't shared? What would be the difference? Single copy also. Why is the shared buffer better? I mean it may even be worse due to cache aliasing issues on certain architectures. copy_to_user() / copy_from_user() are pretty darn efficient. Why is it better to have that buffer managed by kernel? Being locked in memory (being unswappable) is probably a disadvantage as well. And if locking is required, it can be done on the user buffer. And there are all the setup and teardown complexities... Note: the ring buffer used by io_uring is different. It literally allows communication without invoking any system calls in certain cases. That shared buffer doesn't add anything like that. At least I don't see what it actually adds. Hmm? Thanks, Miklos