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 BF7F2EB64D7 for ; Mon, 26 Jun 2023 16:08:05 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 587A58D0002; Mon, 26 Jun 2023 12:08:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 537E88D0001; Mon, 26 Jun 2023 12:08:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3FF9C8D0002; Mon, 26 Jun 2023 12:08:05 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0017.hostedemail.com [216.40.44.17]) by kanga.kvack.org (Postfix) with ESMTP id 30D6E8D0001 for ; Mon, 26 Jun 2023 12:08:05 -0400 (EDT) Received: from smtpin10.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id C1EDB16075B for ; Mon, 26 Jun 2023 16:08:04 +0000 (UTC) X-FDA: 80945380488.10.BA1AA0D Received: from mail-lj1-f177.google.com (mail-lj1-f177.google.com [209.85.208.177]) by imf29.hostedemail.com (Postfix) with ESMTP id 38C07120193 for ; Mon, 26 Jun 2023 16:07:31 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=RlnK3OZo; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf29.hostedemail.com: domain of idryomov@gmail.com designates 209.85.208.177 as permitted sender) smtp.mailfrom=idryomov@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1687795652; 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=+4iSzTg8EChOOzM4BxDcM+RvFk02kmVmbliMB8mfUCk=; b=X2Ot6ffrYx+IVCo4CHm3agnyoJOTSw7WbpPqzl4W1q8TZajDQxhbTzwDrAMJfLIdNfGTQC kKgreLc32sMWr6bOoRbxVu+j/K3V37+HwFk2d9LWz55BI/+dDmOlqXTJqyfa1a2K0+nXOf mPFLsr9CGihlwckCa9EGC+3P9t//KZY= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=RlnK3OZo; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf29.hostedemail.com: domain of idryomov@gmail.com designates 209.85.208.177 as permitted sender) smtp.mailfrom=idryomov@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1687795652; a=rsa-sha256; cv=none; b=N0o8G15qA3PWeUKiCDYJaMP7MbdijcI6Cc0N6iVFG+wt0KZoQJ0g0QgsZ0wjidJBK3gJbx 4fBvaxkgkyZlbs4pWccpXwH+EiDYpFrTSWR7t6j79Fqv26PfTX99nHoVNOesG926eK7uZJ xh1zS7wHhqOiYZHlMhe7eMkN8cskWA4= Received: by mail-lj1-f177.google.com with SMTP id 38308e7fff4ca-2b69e6d324aso21827381fa.0 for ; Mon, 26 Jun 2023 09:07:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687795650; x=1690387650; 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=+4iSzTg8EChOOzM4BxDcM+RvFk02kmVmbliMB8mfUCk=; b=RlnK3OZoaEKxJnom2X8CXl92pbWx7OOPW4z0jpKaCHbGXroW0iQAsSISlIaV4C8G8x gK1MOooiRRWfenFnvdfXiSVEVcMWb8LVrk+kNPSJIiB4OthW+XopAMs0ohxXFBO6MZzx xSS+fZp9IO2IqrTy2iaKTdrItk2cvv2xVSz2QF7kcl2N3PQsgFWom2cZkSD7OlepUhRh QeyFDcM0MFp5+izZO5CpgbepvcNdsGpIMb9zj2O9x3o9Wz383Fh4CGG6pOxAOoVXe+26 Ud/6Sl6lcVCtQjx7rER0jxpx+HyFIEctGfvtCyVSt1QRfo4NaN7sZ6JzkmyeXZNdV+mw 6o5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687795650; x=1690387650; 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=+4iSzTg8EChOOzM4BxDcM+RvFk02kmVmbliMB8mfUCk=; b=GZ1JOT7NIECcHGQCizwcWfgTbHJud8S9tjDt5tD9qIdzpqzf7bjdicnnoLDxe4NSAI B9fBAz0DnFdDAuOS45hWg0TWJzQq6vPEJeBTgWWb3iyiyFIjvA2jYXN1xGrmoJFNLzri QI7EomPZK+idVbhR48sTMcz6Iufyi3eB88G82fwMmr+K1SAkOPrM04kRs+tCh/QQKsP8 wotg0p3URXUMzApKF5Gk47FcQiTzao8OAvvuq/I58+oNmpOgBuISsXPKDhz9+X8psiNO pS2sWRKG7wCO0LtyK+5CGlsD+fb7q3u9NJXsy2061sBiZDrfTY0i8tKDt2amqmW1N2AU lc3g== X-Gm-Message-State: AC+VfDzBWSssdfzIbGxVYX6YTCK8EcZHoyXp+uGE1kv1zk3GbMs1hFNL brgiHpDBZMmRouCyyI1hd2TRQKpVIji4K/eFzl8= X-Google-Smtp-Source: ACHHUZ4lqZ0HZVO22tySvTRMn9GTWb4kquzbA2i7q+jgXEC8Llv50w26JmRWX6NR8AVm/Q3ttM2tntum2WpC3Qy2R/A= X-Received: by 2002:a2e:a401:0:b0:2b6:a186:52ac with SMTP id p1-20020a2ea401000000b002b6a18652acmr1820365ljn.47.1687795649926; Mon, 26 Jun 2023 09:07:29 -0700 (PDT) MIME-Version: 1.0 References: <20230623225513.2732256-1-dhowells@redhat.com> <20230623225513.2732256-5-dhowells@redhat.com> <3070989.1687793422@warthog.procyon.org.uk> In-Reply-To: <3070989.1687793422@warthog.procyon.org.uk> From: Ilya Dryomov Date: Mon, 26 Jun 2023 18:07:18 +0200 Message-ID: Subject: Re: [PATCH net-next v5 04/16] ceph: Use sendmsg(MSG_SPLICE_PAGES) rather than sendpage() To: David Howells Cc: netdev@vger.kernel.org, Alexander Duyck , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Willem de Bruijn , David Ahern , Matthew Wilcox , Jens Axboe , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Xiubo Li , Jeff Layton , ceph-devel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Queue-Id: 38C07120193 X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: oufswff6tiwb59hdri79uhae396t9dym X-HE-Tag: 1687795651-296684 X-HE-Meta: U2FsdGVkX19R+jQC1K/34BLLkhKwJT3mHk9Ji/e12E4ue6t3xNOTE2W3PVOg/hgqN3O9qvGHqTPe43rjx1IpMG9ir6iaOP8/UB84EiQBBUuDOIgOIjXBl0HOlqyaNGmbze+jHg4wOqk7yI2sUKnmUlltdbKNFKoaq/KEghuJ/SbyaqKlh0yFfxESyfedjUdCLfU4rpDEZg53ACebpZlg+gvL20lgrgahRXuAQjG0JD/7xbMv42ff/LD/fPktbx+VTIArgpcbp/TBlTBcEEHVVka19I3quoyt32Nswd16DtaqDIYgQ0dJPm55l/lxGIbHCHychuMK1NkzRq6Rnh3ec2kfjCZes9YgnFCuAYvycdi9ZpLeHEBGyRVKCuc48dkA/l4hQptw+5/Ev1uwLsDVAPnBS5sIenftSYhxyLdRsTJUXoDEnIT4lnWQLAMExnzN6iEu7ytPqTvvwLpeMykkP2L0QirfP3DphZKDBfz0CWEgxmmZD04CXJhMz1ugdqrpiKMJqgtzdrEdCxA1n0yQFko+8bhvjASlffQqdxds22eg9ruGYbweTMuuWdMH+oRa+NbM0peq1QfYZwLAuMATRvOFRGgZOVehQi6SXaZ/LN/pwsMmDa+6JgPLATWUJr3Gw/cql/IRYhXBj5S9jaJSO+1A/txZd0TCRtvgoJqX5O5Msxxena1zVeKyIUCXihz5lf6Wol9Pr1JD/vhEHVZ/6bsj1Wv12tGLmf6PvQ60DvkSVzXOXgw0d22hUmHxZnIVxGwUv4z9kU6y7npRESCCxCaDGge2CdlLT60RPc3OasJctzG3jnd2xCzhaY5tbu93lMm/+uCtG57QaPmmKQ6HJy0CAEbsfPmCo4nXSP1c8NR4fTwQ7PY/SvdduodffF3azw4+CxEE9jDgEW4heVUxklacd0OoLwOHyg4ghu2hMRG1jff8cY+dw6hJl/ZOeu9/5TZjJOzTV6y4HJlRZ5P 6w2S1eYk Fi14IQrQEGkjEjjtVUQzAE0cCqyUWJsEO1JnDJW8GjY6lTpCb8xxerF5sbo6gHdWb8mNWcRiqb1CfDkw6o3KJDStzfMXHYX46IpA/4q1lzVXOzVgcu+/UYeu7zkF3lB08lWoykCNjm6Jdor9jaGLXhjOFEVMxP3fDX/QVOLpTMFWNQ9FBwlrUQ3gIVASVLXT/9yYfTtM+UJ4R1hfNPGoKI9V3VSjCLT37tqTsvde8OvxlL41zqpJGvhBNodjRzEhlvHhbMeFQL/zlkkPTp/6DkpFyb5J2ojh/NJehta7Bqb5n6qOW9X2OaLF4afKesi6319VAYCKAwkszst3Swx7MndgAcbws6u3Ganu/+y9RIDyulXxhfxtOyVp51qSb9r8Qh1V/xHTtM/WxbXIc4ys1EUBhlyt86P8k9HC7TKkIZlt+/EI91jqt2jxgTYh9mbcH1N+TWXDGZsO614NDfHL91BcPl/3da/JURPNQ/5PpYJx7IjhrZoWZI3j+S9gwqX0kQ68cZrw9TNSHBP4= 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, Jun 26, 2023 at 5:30=E2=80=AFPM David Howells = wrote: > > Ilya Dryomov wrote: > > > write_partial_message_data() is net/ceph/messenger_v1.c specific, so it > > doesn't apply here. I would suggest squashing the two net/ceph patches > > into one since even the titles are the same. > > I would, but they're now applied to net-next, so we need to patch that. I don't see a problem with that given that the patches themselves have major issues (i.e. it's not just a commit message/title nit). > > > > * Write as much as possible. The socket is expected to be corked, > > > - * so we don't bother with MSG_MORE/MSG_SENDPAGE_NOTLAST here. > > > + * so we don't bother with MSG_MORE here. > > > * > > > * Return: > > > - * 1 - done, nothing (else) to write > > > + * >0 - done, nothing (else) to write > > > > It would be nice to avoid making tweaks like this to the outer > > interface as part of switching to a new internal API. > > Ok. I'll change that and wrap the sendmsg in a loop. Though, as I asked= in > an earlier reply, why is MSG_DONTWAIT used here? See my reply there. > > > > + if (WARN_ON(!iov_iter_is_bvec(&con->v2.out_iter))) > > > + return -EINVAL; > > > > Previously, this WARN_ON + error applied only to the "try sendpage" > > path. There is a ton of kvec usage in net/ceph/messenger_v2.c, so I'm > > pretty sure that placing it here breaks everything. > > This should have been removed as MSG_SPLICE_PAGES now accepts KVEC and XA= RRAY > iterators also. > > Btw, is it feasible to use con->v2.out_iter_sendpage to apply MSG_SPLICE_= PAGES > to the iterator to be transmitted as a whole? It seems to be set dependi= ng on > iterator type. I'm not sure I understand what you mean by "transmitted as a whole". con->v2.out_iter_sendpage is set only when zerocopy is desired. If the underlying data is not guaranteed to remain stable, zerocopy behavior is not safe. Thanks, Ilya