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 0E3D6EB64DC for ; Thu, 22 Jun 2023 18:29:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5D33E8D0002; Thu, 22 Jun 2023 14:29:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 583068D0001; Thu, 22 Jun 2023 14:29:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 471CF8D0002; Thu, 22 Jun 2023 14:29:36 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 3A4238D0001 for ; Thu, 22 Jun 2023 14:29:36 -0400 (EDT) Received: from smtpin17.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 01D7340201 for ; Thu, 22 Jun 2023 18:29:35 +0000 (UTC) X-FDA: 80931221952.17.BB1F4E2 Received: from mail-pf1-f177.google.com (mail-pf1-f177.google.com [209.85.210.177]) by imf25.hostedemail.com (Postfix) with ESMTP id 180A8A0006 for ; Thu, 22 Jun 2023 18:29:33 +0000 (UTC) Authentication-Results: imf25.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=f9WJGnOG; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf25.hostedemail.com: domain of alexander.duyck@gmail.com designates 209.85.210.177 as permitted sender) smtp.mailfrom=alexander.duyck@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1687458574; 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=+efte1YTdBvlCQmmBAcoCvTSuRZC5725VwKAKXACJmU=; b=aamOygypXz0CcsltubwU6IInvXEH7blzPC/aYqzonzw9Z4hfvuO91jY/RTlEpdb0HbC3q/ LLBtyKx+00RyjXOrItWIcsJI+AWhUd+sRGl0Mn+CErr4HjyX6eHNSfyJShEsKl+6+pUTCG HqebeWxU9WET1qj5xmyQ47iYKPn2lt8= ARC-Authentication-Results: i=1; imf25.hostedemail.com; dkim=pass header.d=gmail.com header.s=20221208 header.b=f9WJGnOG; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf25.hostedemail.com: domain of alexander.duyck@gmail.com designates 209.85.210.177 as permitted sender) smtp.mailfrom=alexander.duyck@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1687458574; a=rsa-sha256; cv=none; b=PeLCVBGFKFCymN7+CeD/48cNKVw6cGOsKXIB+HPwRAoH+s7CaAxPih3THaeIyieDXB+A6M rXREeB00EzErDLEixzk+YuprFPGQckGILtrtLYmPLO3aoh16Cp5VXrt5UpFX10HFDRKNmH fUy9VFdIvFtqiVC2wI7jMD59JxfK2XI= Received: by mail-pf1-f177.google.com with SMTP id d2e1a72fcca58-666ed230c81so5237535b3a.0 for ; Thu, 22 Jun 2023 11:29:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20221208; t=1687458573; x=1690050573; 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=+efte1YTdBvlCQmmBAcoCvTSuRZC5725VwKAKXACJmU=; b=f9WJGnOG5TWAXhkZnWiFgOETThzXsDSZ0L1DR1cjig1UrNiqbX/YkCFauiL1CfFUNa K/RrPM2m2UaVqArI8ThJ4AM13iq+7RBRqJUVS/OgF8R2daOi+Pk1qrh9stF2eDfhS8sd UXq9W/0ez1aBFtcKfj99q8aAl2RjXiUoV6qLhyU5eF9AxOBeAmEDALdFuDEiVOP7k6ed pe0nxuR3zg+3TSPMAjwRgWNz9f0vo4IRC0ZSUeldL6LPKi0UI3Kpz04qtY/8isTbI82z pj3BAgD/yZkpDGGOc+0ETyP92e+F7OL0i8PDu+lUpABDOMQPw+BKpXPpxnH6spwfzON6 NF+w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1687458573; x=1690050573; 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=+efte1YTdBvlCQmmBAcoCvTSuRZC5725VwKAKXACJmU=; b=Ub65O9CaQ6y80MlqoysJaLd+xOMZjuuUlceZJ6asKNbBcHSP5CQvhf/DB86sjpno9c u38i9R3gdeGydGv5nicQKWb3FC6o0kF1q0DYYHYyparysZxqxDZpwEiZB+a4/gkbo0L7 u8Z5a53OLdPdOzdOn40jbSE45/K763CzhMelhkPNVyzNu6cE5cdWJKy1Ab88WvcsEfd/ X2nAjCOt8QJGDgS7xtvEcfYkEM3oLDxMbJ9+In0luO89dePfYTLqUgrPiCQdUw2Q6chf gYl8mYNZ8NvEfuCqlSU4pqvx5bC1eBL4pXWwkUj26Zj/lAxjB1SEYDctT9BnEg2DlJh/ cIUg== X-Gm-Message-State: AC+VfDznCEdXV923WzZFhzZWX0uHzuu8oc0HV7lIIrqYiX+Byi49yfFK P+zu5ufhYBQo5h+wGKP6qQttspCEUNKduinq808= X-Google-Smtp-Source: ACHHUZ6Jh/3GORtdYloq0XZbEwztSaBRTUjvf9o00KaaibeC/JoMJG2IfYrkit8m2CaLu62e+8ZU02YnIrZtMkSTuo0= X-Received: by 2002:a05:6a00:1950:b0:64f:52c9:ddd5 with SMTP id s16-20020a056a00195000b0064f52c9ddd5mr24639023pfk.34.1687458572689; Thu, 22 Jun 2023 11:29:32 -0700 (PDT) MIME-Version: 1.0 References: <20230620145338.1300897-1-dhowells@redhat.com> <20230620145338.1300897-2-dhowells@redhat.com> <20230622111234.23aadd87@kernel.org> In-Reply-To: <20230622111234.23aadd87@kernel.org> From: Alexander Duyck Date: Thu, 22 Jun 2023 11:28:56 -0700 Message-ID: Subject: Re: [PATCH net-next v3 01/18] net: Copy slab data for sendmsg(MSG_SPLICE_PAGES) To: Jakub Kicinski Cc: David Howells , netdev@vger.kernel.org, "David S. Miller" , Eric Dumazet , Paolo Abeni , Willem de Bruijn , David Ahern , Matthew Wilcox , Jens Axboe , linux-mm@kvack.org, linux-kernel@vger.kernel.org, Menglong Dong Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspam-User: X-Stat-Signature: jqr395xy4ffeg4er4srbmjynns5wo69p X-Rspamd-Server: rspam07 X-Rspamd-Queue-Id: 180A8A0006 X-HE-Tag: 1687458573-411653 X-HE-Meta: U2FsdGVkX19FTbzmGPN9IwROVifzq9hwpWzDkTfAwmtbXA9yEOxYGzK4TIS6RPi/c9NU7SoH/zqSv1drOifTxlNznWF+EwMGvg0iNa7RPzz2CfjAyZbB4I0pp/M5N88+uNYHzo3Q1m4MpU4mlabngxDv7jhvVEzvrO6GPsBer+TZo5jyACQ6sNZDODGywdJAq2zoSGHPILxDQ/D9hope5MUX7iH/5tDUh/Y8uhN9mMH13gbpdLg+QofOEvC7iZaOltBaJ0OjSlTuRdbYrpM3b511shBbMr1bjl/kLM2YV+BKqr/zwGHN1f1lFmUPceE+31B+pXtun0Z+1vhPOLD6AmifY080iNwDqQzC8exXwnrQdjCqi85vp1Pg+5jFzebzZMYq3W/2cWF6QabF6bI3q9a22uqxijdOZ0/Fm6hQGZ4Jde+HYgiQ+Zr6UQeaI9tjMgHcF0vkX/fAODMrTQpuZdA2YZnOzqq2Pl1gzzS4NzZvwVpg0tDaLlsmPsTfLA4lvP9ohCjvg/MXdbgzFT0Bk3i9+TgDW6J8pT4vJ/5yHjldq0OHx04UbaHo5jz7GBva6E93PmxXFrk+EAOIWNPpZQarq7joMSuPiQRtkRSW/coUPH9bMsBDKefMr8rJaBQXM59Ubf3WITwTFV5p+cQ+gE8NuZCdhdFbYSw22VXbDHrnVSHwD9A2JkML5uA9SgQSZqPXZ1S8AKnRlB8rn6W9SYW6f0+P0O5Gv+kzFW/ofZV7fC86aIr/ntcZFFOhR/340kKTw4lSCQ3TbXBU+5Yqm9sz9Dgw2s3YUtmLrkxqTRunpnV1duppIWOvnWJLpcCqQxoETkSOSdBUcnrgIotdfdhatrqxbxOwE7md9lRcvtKcuOudDURzsjOZfYnFEfUf1kCt19inp65Mlb/7NDBIjcHdkKjJT2mlEXCX1hbg/QJutZbO6B6P05Le3YfSQRWyglZ1yP1wPx1oMK3jUsD iWJouyCO b0FFgJSoCyq63SLufjMqMW+ixWQCJv+JPtg+pGZznZ2TxuuFvBW8s7pqdu2D7v6ObCLHEzJ7UzbzUbkvPhkWyzUOKtWjSTjKSYHfdsjkUj542l+bNgbVsg8t+1+9dubBDZRkIyCMoq6ThwITNd83fBHmM0bPkdf5oglg9Qx87RRRPlmai5CL7/f6QQWulcdVmVb5lbL23m/l3uhyjPrKs21auju1b9T9q01D52MJaLv2GyljMQQwPX0HP/VxzONT+ixYhQCA62nsNyHJN8PYXvGJOR1vumct0tbEfW2DJrpMuEOmorOoX5SmoS8xacaLy4unIAhmhqYZ84051Fh1RJU38FuU4tY71U/k4LeWkPGZpK2+dMGSh4IT+qIZd+bPEt9QdviL/XuES7yYJgoFr2Jcy/FqA3lWyLt/+rbg7R728q0c/LKeNmIWfhaGCT1392UwTUScfVvebGnSk0Rb6vpK8sIW+/L8D1UxYg03RU1ZC9J9vajFaX5/3XkL29USZnNuetjkM586m5xA0MTJuPTrl3UpWc/pvPLfnVxFjwuYAAttzsyF8QJI1vQ== 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 Thu, Jun 22, 2023 at 11:12=E2=80=AFAM Jakub Kicinski w= rote: > > On Tue, 20 Jun 2023 15:53:20 +0100 David Howells wrote: > > If sendmsg() is passed MSG_SPLICE_PAGES and is given a buffer that cont= ains > > some data that's resident in the slab, copy it rather than returning EI= O. > > How did that happen? I thought MSG_SPLICE_PAGES comes from former > sendpage users and sendpage can't operate on slab pages. > > > This can be made use of by a number of drivers in the kernel, including= : > > iwarp, ceph/rds, dlm, nvme, ocfs2, drdb. It could also be used by iscs= i, > > rxrpc, sunrpc, cifs and probably others. > > > > skb_splice_from_iter() is given it's own fragment allocator as > > page_frag_alloc_align() can't be used because it does no locking to pre= vent > > parallel callers from racing. > > The locking is to local_bh_disable(). Does the milliont^w new frag > allocator have any additional benefits? Actually I would be concerned about it causing confusion since it is called out as being how we do it for sockets but we already have several different socket based setups using skb_page_frag_refill() and the like.