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 AF921C77B73 for ; Mon, 22 May 2023 17:42:37 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D9979900002; Mon, 22 May 2023 13:42:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id D49916B0075; Mon, 22 May 2023 13:42:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C38B8900002; Mon, 22 May 2023 13:42:36 -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 B40B76B0074 for ; Mon, 22 May 2023 13:42:36 -0400 (EDT) Received: from smtpin24.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay09.hostedemail.com (Postfix) with ESMTP id 756748030A for ; Mon, 22 May 2023 17:42:36 +0000 (UTC) X-FDA: 80818610712.24.3846075 Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) by imf22.hostedemail.com (Postfix) with ESMTP id 67DCCC0010 for ; Mon, 22 May 2023 17:42:32 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=TXiT4G41; spf=pass (imf22.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.218.53 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1684777353; a=rsa-sha256; cv=none; b=YG5GoDMHo3PwgeFcO6ErRVhzb2tr/wDuMvjeR/JP1B0OZsjDcRrT0GTCX5PHv8yK1RuX/E dIpA71PFsczNml+JXDdbjhjo/LsAJR5W7K9jL4dMmtynD7U+/hacytuymy0UC1QKow2/Qp d9OgB4Rp0ANi995Y7ecbSN1tKpnahg0= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=linux-foundation.org header.s=google header.b=TXiT4G41; spf=pass (imf22.hostedemail.com: domain of torvalds@linuxfoundation.org designates 209.85.218.53 as permitted sender) smtp.mailfrom=torvalds@linuxfoundation.org; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1684777353; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=v0vGfy2nsZav2HY5i+tp/Nl3rfKXvicFLnxzClJPsL0=; b=dHMCiNAyX+5RZLyOMsF2fWfHOxjn0XNcIGi+uLQAOS0Wb6yQ/oPMXIjn0HsKsUJu1VFvf3 9TUxczW010nmYFlQaATNrFWmfSvnOfoI1iwHd2IuHmKuYsnaH4HCO/JKyZiD5J4Gf0vQAq Mdb+lTFKi1FAGklbasiQIr0pzV86Glg= Received: by mail-ej1-f53.google.com with SMTP id a640c23a62f3a-95fde138693so792004966b.0 for ; Mon, 22 May 2023 10:42:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux-foundation.org; s=google; t=1684777351; x=1687369351; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=v0vGfy2nsZav2HY5i+tp/Nl3rfKXvicFLnxzClJPsL0=; b=TXiT4G41d+/QacX49+njbr4cngiQQjIe0I3U0q+googMR1+xhIyTmHA95E77iZJ8w8 rfiAnF/wDTn8b1pFdobvBOIDmt8Dt39vxkrgawgKQ7IiL7ON4cw3gDofK+aS5XMbKZuD ar7Px3z7dtoYcC3dG/8itMjQ8eRLrv6Cb07Oo= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684777351; x=1687369351; h=content-transfer-encoding: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=v0vGfy2nsZav2HY5i+tp/Nl3rfKXvicFLnxzClJPsL0=; b=WzQMWk8zkM39+OHlue69YNPOq7e7BQGSQmiFgenxvwggOAWmuKHuGt+qfYxDM3hAcv HzIF9a5gIiaeN1lOT/diHutATncBEHRcB+IG/bkHtxiJ2nmAnSPOEGxhMaEk5VTe/nB7 yCFBQeUJFAejRs81NtHxaFQo79pUfRVlgxunqlnWcPFxST7E6Vb4Ks/ucYn723JeK18I 52aXxMfRHbeLyu5FznFte6zgBQ6E5hZGE2OPwVGs70s+iDHuXoTbzesoTzFkXmkfEibM Qo3qVuKWFv0akT8WhODA8Rj4ba+fo7OM7tqO0VDY6u1B78RKJ6wW//NlB6gUI1Wbr/uX Su9Q== X-Gm-Message-State: AC+VfDz3niB3ecd+Vy4ZpOy6ylSddQj1rweEfcAXpO9+p/oJzSnhEoed wPMSzKG8MtTZPH2zjRSPqCuLShfO7aoGzU3mQCixKw== X-Google-Smtp-Source: ACHHUZ56uiSASXUYSaFdP8aJ16PPgUGyeu/rNChMnc/O6DCTHv91sVUQbtPJsSXagbUIZtQh8SB9kw== X-Received: by 2002:a17:907:96a0:b0:94e:bf3e:638 with SMTP id hd32-20020a17090796a000b0094ebf3e0638mr8869888ejc.11.1684777350999; Mon, 22 May 2023 10:42:30 -0700 (PDT) Received: from mail-ej1-f41.google.com (mail-ej1-f41.google.com. [209.85.218.41]) by smtp.gmail.com with ESMTPSA id rv25-20020a17090710d900b00965f6ad266bsm3346479ejb.119.2023.05.22.10.42.29 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 22 May 2023 10:42:30 -0700 (PDT) Received: by mail-ej1-f41.google.com with SMTP id a640c23a62f3a-96f5d651170so789880266b.1 for ; Mon, 22 May 2023 10:42:29 -0700 (PDT) X-Received: by 2002:a17:907:1688:b0:965:d7c7:24db with SMTP id hc8-20020a170907168800b00965d7c724dbmr9757222ejc.32.1684777349281; Mon, 22 May 2023 10:42:29 -0700 (PDT) MIME-Version: 1.0 References: <20230519074047.1739879-1-dhowells@redhat.com> <20230519074047.1739879-24-dhowells@redhat.com> <20230522102920.0528d821@rorschach.local.home> <2812412.1684767005@warthog.procyon.org.uk> In-Reply-To: <2812412.1684767005@warthog.procyon.org.uk> From: Linus Torvalds Date: Mon, 22 May 2023 10:42:12 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: [PATCH v20 23/32] splice: Convert trace/seq to use direct_splice_read() To: David Howells Cc: Steven Rostedt , Jens Axboe , Al Viro , Christoph Hellwig , Matthew Wilcox , Jan Kara , Jeff Layton , David Hildenbrand , Jason Gunthorpe , Logan Gunthorpe , Hillf Danton , Christian Brauner , linux-fsdevel@vger.kernel.org, linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, Christoph Hellwig , Masami Hiramatsu , linux-trace-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 67DCCC0010 X-Stat-Signature: 4szcfywhxhcatxm1mf643e7rttzwiqo6 X-Rspam-User: X-HE-Tag: 1684777352-855472 X-HE-Meta: U2FsdGVkX195CLqsd12pVLtaeif4tJrnv8ElQrQeRiCXd8vF7oV76bJjHz220eDerQnDrArW63t2ptYsATx8TpeMEPiwiNISm88Vb0zcQX5AkmF/9PKo9Ni5PwtiYCVzZGGCOZP0qbv57u/RghouFp4qbfrt3dQUfeRLqJvewDw88Dw7PO3Ahc92fAJUNCHko3bnTXNWUTu1ROzKh87pFSoVOlHzUqq2ImaP642B3gKQpKen8Rg7ycvy0USZGzPRdqvyfx8K4RzxCSCDKel4jE9HibsENgAR8e26Z9Neh9DmUOBiDHVpN+jzJhnBKX0uDN3FWCPPzrktH+p7t/10JOpKwB2/gE6py9Vow3G4Mz9HmAAyE+otCBlOaBLiEdW6ehxNueCQ068YIRejI1gTDYFc2TZa4KsYdKtqDm79cwDuAcsdGQUD3XhHr0Ij/k5VwVS4MLvnyu/2/8R9N7RM/yDlDctPqzqIGDrWUYUMtkOTCiQH97I2OcdIokjuDVfmXOXVdZ8PcIVRkIO5uv+4ebp39ijPA4SiT17SoLUaE0bPnRubmrm9vkdE9YDYZQJNc4ZuSOSkKHXdn4T1NYoFpL7f1Lic+zBYyUUuLmcFh6otpP40ohXAl09jeeTVJ99IRL1E8rGhe2WFFHP8gqKGKIpZX5GtsvHJAK3LsxyWbZybo1insDA2LVnXOM5V4U3UWfMUqyEPiHjWCJX7ZmkF5CK/jL4Ej4OktYz3V8Ye3aOUfQFPDcOE/2d7xVQ7Cv+Ok7mZOHCfnmkmD0qh1QblqPv7Cx9LqyqJ5fXYGaD0vx9iGTFVXtzqN0Sxowhoox56LOeXP6uQCmvLD1GoenoKfzWk+02va4f//88Amy1HQ8EBNSFmbkivgba1AxpkG3nbnoqDbwXYnvf91LJehEF9+sS4W2e4Dd/iwioAvcLDviiWUvAHjjTaAdtpX71thYVmEqjQGAkEDICRUohqURs 1d/nlehZ wo8ki+DHCqAMITiF/GaKVxCwDdId4+PNcFuhuP9/5T37XH3r+6whwMOxcEaZAFmSwZTv3ygUX7mtFIeDuMK/QO9HqmrH8MHedSsKcijIJ3gqxwZgB0m4s3bHWZK1dLZcp7+WChojek2q5KXGFKhJwqfuICOfBqKICtkABbZ3jPHESxhtGDtNDL4QiZ91BSoyJnOCoNzOy+q8RL4YTRf1SBiJU/Nv2ZMYQzYQc6ABJqIRhGaPnpaGvXo0yBfUqxWxhA67JwBr442E7u5Rm0ctAjPU0QPtVSSp6fTonFVgtgILL3lu2nRn8lYK9fqDFwwYNYJBekYrGhbYd6Uh3ymhNJuQpCaabl/xj7cdJ+EyJZFTjX9ZVEzgkdyv1U4TWJjmd42/SLR5O20Svy/u5N49Jx8qA7TMX5iqb2RraXhVhr9Yqm16UL5m9pUbOAXHGMQXjMKXHsxDgbTaekp9eDu6+wvTkTDaL93WbugdZuBm7oY+kH7VnGuhpE/aDNe/+MY+n35l70QNRUng/+Q82tFaA1XeJc0zoTK+TZePZyd14JrhcviuzDd6IwhIwjFEYWFiSJ5MFqYqlknH8tALY8/lTebyXRKVTxBvwP2lK 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: On Mon, May 22, 2023 at 7:50=E2=80=AFAM David Howells = wrote: > > We could implement seq_splice_read(). What we would need to do is to cha= nge > how the seq buffer is allocated: bulk allocate a bunch of arbitrary pages > which we then vmap(). When we need to splice, we read into the buffer, d= o a > vunmap() and then splice the pages holding the data we used into the pipe= . Please don't use vmap as a way to do zero-copy. The virtual mapping games are more expensive than a small copy from some random seq file. Yes, yes, seq_file currently uses "kvmalloc()", which does fall back to vmalloc too. But the keyword there is "falls back". Most of the time it's just a regular boring kmalloc, and most of the time a seq-file is tiny. Linus