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 B1B3DC6FD1D for ; Tue, 21 Mar 2023 14:22:36 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 396126B0078; Tue, 21 Mar 2023 10:22:36 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 31F7D6B007B; Tue, 21 Mar 2023 10:22:36 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 19AD66B007D; Tue, 21 Mar 2023 10:22:36 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 037F06B0078 for ; Tue, 21 Mar 2023 10:22:36 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id D1473A16EE for ; Tue, 21 Mar 2023 14:22:35 +0000 (UTC) X-FDA: 80593121070.12.027E7FE Received: from mail-qt1-f170.google.com (mail-qt1-f170.google.com [209.85.160.170]) by imf05.hostedemail.com (Postfix) with ESMTP id BD095100003 for ; Tue, 21 Mar 2023 14:22:33 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=fSCtNQpT; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf05.hostedemail.com: domain of willemdebruijn.kernel@gmail.com designates 209.85.160.170 as permitted sender) smtp.mailfrom=willemdebruijn.kernel@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1679408553; 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=Wz3BNwM3t347dW9MrDDlDaF/UKc2l3vuI9j2nicbfoc=; b=HGJlbzJN94xiDDyEbbl62DrZI642YmMhKJZdUUXGiDKNLbVb/gV9/0ovCcCNz8cXZF8TaH 14nkFcFFsjujVBu+To+CmtMnIHXgqwcrMioHRTZgA0wQgKutsQchyCaoFQS3qyLhewvTV1 7klyvmb9ZP3JwW+3qMGYFGmsC1Q9LWw= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=gmail.com header.s=20210112 header.b=fSCtNQpT; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf05.hostedemail.com: domain of willemdebruijn.kernel@gmail.com designates 209.85.160.170 as permitted sender) smtp.mailfrom=willemdebruijn.kernel@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1679408553; a=rsa-sha256; cv=none; b=dOjptIrBIB4kW5P5csvCENJjZNXCHAwmOU9wcZDxS2ImNyD7vx2yL+JHanoTUU+QtwyZO6 397fy8fLI81OBKVqde1mdinu2syaezIevIj7QyrqewfhwFRKIhg9vQItKnr2rWq2jqJw93 tFMd5vN2hyP5nYUzfw0KuIJbIhVtq4I= Received: by mail-qt1-f170.google.com with SMTP id t19so3908494qta.12 for ; Tue, 21 Mar 2023 07:22:33 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; t=1679408552; h=content-transfer-encoding:mime-version:subject:references :in-reply-to:message-id:cc:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=Wz3BNwM3t347dW9MrDDlDaF/UKc2l3vuI9j2nicbfoc=; b=fSCtNQpTzD0m2A2W2OKX3pfAubzbWRnb2RAUBIq8PYZPjT8FVSHXe8J8ypoxE6eVN4 goqJwEyk21Zz10AmCEwuYOZOzHuWt4N0K2WZuzSv0+paEAV6IpxMkfoK7AGDYVHmhbJN FCtS12QypMqOM4EggWhcZ/feYU9VGQe3xgAUkgU+KWibhU21cC619pruLNBYJRO+vDm4 kYLDWKwB5K3SmlGWfG+ejKQLHzW7qD1S7N0lQvfjIHSI5jAybIa3PlHlaoLflY/f13Ep vYx4ltn12qB5DvYf7NsnBHqypri5XIV3VI37Mk6rV9uZf1uuLNi22giLPgPVeQe+7zr0 x4Vg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1679408552; h=content-transfer-encoding:mime-version:subject:references :in-reply-to:message-id:cc:to:from:date:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Wz3BNwM3t347dW9MrDDlDaF/UKc2l3vuI9j2nicbfoc=; b=s9ALENu9aRTFBXvdaxTN0KHV/PKp7GAd8cJtNG+LbGFVdcDlW+7fMMKYRf3rUD96rN sjUZn7jNEs3WnBxCT3ZOs+M54+OEFtQwUg8QIQ3vWjec1Ddr4VJarrUwxyVytbTXlnhq mq9GYFlnHu3ARNNnBl26G93WO8KhqI4oLZcOAOi8bhNschDUIEC3x6+igHdYVpdx4CQ3 OZtEotrneC9fBirz6dqhuCfO5aijrqoovfA9akLWB9mB9dBzwz6UgHB0ekt/53ryIL7z 36YdxPlzWHhOXDkVLDKNH9NlkOawfDY1yUqP8IEvJ/YibZGOP6X0iUGqQTc4WuPH8oyi M4iw== X-Gm-Message-State: AO0yUKV0FRvygZJ9Ibw5WgLMy16GbDyhe3tgowgJFlE4k4xcEPjBUjoC WoDTrSV4iIF444nKssy++s8= X-Google-Smtp-Source: AK7set8Cy/DQI/DUDlA+l6xElzRo7iUEHmfLTC4HEXDOFP/qOoOXhpEF+Xwo/iqIonTKdBodRD0/Jg== X-Received: by 2002:a05:622a:18e:b0:3b8:6930:ee6 with SMTP id s14-20020a05622a018e00b003b869300ee6mr60125qtw.21.1679408552766; Tue, 21 Mar 2023 07:22:32 -0700 (PDT) Received: from localhost (240.157.150.34.bc.googleusercontent.com. [34.150.157.240]) by smtp.gmail.com with ESMTPSA id dp10-20020a05620a2b4a00b00745af48838bsm9460372qkb.5.2023.03.21.07.22.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 21 Mar 2023 07:22:30 -0700 (PDT) Date: Tue, 21 Mar 2023 10:22:29 -0400 From: Willem de Bruijn To: David Howells , Willem de Bruijn Cc: dhowells@redhat.com, Matthew Wilcox , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Al Viro , Christoph Hellwig , Jens Axboe , Jeff Layton , Christian Brauner , Linus Torvalds , netdev@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org Message-ID: <6419bda5a2b4d_59e87208ca@willemb.c.googlers.com.notmuch> In-Reply-To: <2040079.1679359126@warthog.procyon.org.uk> References: <6413675eedcfa_33bc9d208e9@willemb.c.googlers.com.notmuch> <641361cd8d704_33b0cc20823@willemb.c.googlers.com.notmuch> <20230316152618.711970-1-dhowells@redhat.com> <20230316152618.711970-4-dhowells@redhat.com> <811534.1678992280@warthog.procyon.org.uk> <2040079.1679359126@warthog.procyon.org.uk> Subject: Re: [RFC PATCH 03/28] tcp: Support MSG_SPLICE_PAGES Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: BD095100003 X-Stat-Signature: xwtchfo8d1h8sj195ugm7asucymrf1s8 X-HE-Tag: 1679408553-871121 X-HE-Meta: U2FsdGVkX18V4h/4NEMVKJ3bJPoTRRPeccmKVehrx46SCMRtZJYSG+ph4z27gLIqPZ5EYlEqlgH9xyTCBnlAAn0JwBf6vBpUXl+7AFsPIOCFCGlaB50NJTajkwbvswsJIemA6rYFL1Ow9zbtV3wQv3TXwZf93cAt6hkSmWITAOBkVOZXGsTrl0uFIz+yqZw1Mu2yrIHAYrxJvnhDLH48r9Q0hLL+Swzbne7233myuE52ApQ47ULVkFh5G8n1oZNcQnlTaT2nIpOgpT5DYyoaQ9scwvgX8YRbE4Wi+YcFaGhQYhz4ZArS70dETAEu0Ych/x2mxWMASR7mvINn9TuqeTPE8XBVm6SuEDqk8GwZJVwz2CdPrAgIVIG6g+s4MA66hGHIYkCopOrGuhB52fn05ImDoJk/Gsp6fQ6T5AZg2p6dh91QcHDXy2TKjxo6DHItnGG6nM5lhs6d3IzckHjsZq4yPbttK0HA+7lzgdTSHKt/V4CQTMrWMzSF+TUokkdgrFHDRy4DhCcmpXKJQa1T31TRWTCas0pxPlgM0p2Avni6zQSo6jwRYVHfpBocKyV++XcVVedf5wkaT0Ki3/39POonkhEId7Skg1EBizGrxM30uyWFA9Xj/AkjraZs8c3T90UoSdRw7M6YfvJb+5KkWUlek8+9Wb4eeVDdRd9G4t19FwZ3N7s07dLBduQ3FtGx+/HoGZgrRA/A3Z+ZnW2/Mg3xYIIXBjm/c/nvfdh6h9+mdQSiJkdWctDgbupT1QmBZjuP2Oj4wSR5qPC3BnoDL+MyAOyFWEazc34+OxjbXTk7qIFwsES1AkUYIOjOkvl/GWqmCuwLSCZhKCq4YrktwdJn4dhv+9NoiJaLZu11OXGrMrKfwyP5w6Vk5ogpRs6aTPg82ul/l+Ky9moh5JUJurk8VbEgktoWgtzPwQ74wOBK+Cnm0Dzdyu2b5OqYrgCbzHYFGPbqE/ybx73kuke ySSFokJr hHoqYnCrtA8ql37KKGrOGWLGNspgII/4WFyo4TSgg5l/bOoQb2RQ4FhFGPdgIISaFgg5q5xY/Qkjix1lKQJ36U0+eSpM9a51X1wzuaNhZFb3EcUAdjm6zvX+n5HFtPqdgDEPFOobz+OMaNZI5aGt7ot3bEyo3RYmXTva1NvGY18SKHMZBNRQLN+4qByNI+i/0rywsbRygJu5Q0ybPJd4r6rJVC+qVOmNU12Ii3hW+kAc23WXB0uHgVRwI8Ep0FnPz4inqa9KHN6ezYTFnkPlA/9ZPzyNm7BIx25QfkHaTzPFHl20TJ0XxyKDAm1VqoQswFqrCCiEbvhcizNQwKvNL7fA4n/1o9zPv+IoTpeiglJqBti6bHCVZ9inupXu64/OyPD3uAmC6d5Zxn1xoz5q4FnxEgNJYdtHi4Ev5nc71I2FvtZWP3i7QSBbcGlpwwxx3busc2oOqkwquGLPdmHRE/gOkGgDJEhBI+DxC53NuLQOzFdOyO+AqPp4s0h7h7pea8XkqsF1jVsbyEv4uIppoxvuadBYfYOSimgoUo1gzJczhfAong/aSxqnGbiomr6qK+MzSKd29X+wz7jFCIBt33fb4tKt5iDB427YhVD+B2xp5+KA= 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: David Howells wrote: > Willem de Bruijn wrote: > > > David Howells wrote: > > > Willem de Bruijn wrote: > > > > > > > The commit message mentions MSG_SPLICE_PAGES as an internal flag. > > > > > > > > It can be passed from userspace. The code anticipates that and checks > > > > preconditions. > > > > > > Should I add a separate field in the in-kernel msghdr struct for such internal > > > flags? That would also avoid putting an internal flag in the same space as > > > the uapi flags. > > > > That would work, if no cost to common paths that don't need it. > > Actually, it might be tricky. __ip_append_data() doesn't take a msghdr struct > pointer per se. The "void *from" argument *might* point to one - but it > depends on seeing a MSG_SPLICE_PAGES or MSG_ZEROCOPY flag, otherwise we don't > know. > > Possibly this changes if sendpage goes away. Is it sufficient to mask out this bit in tcp_sendmsg_locked and udp_sendmsg if passed from userspace (and should be ignored), and pass it through flags to callees like ip_append_data? > > > A not very pretty alternative would be to add an an extra arg to each > > sendmsg handler that is used only when called from sendpage. > > > > There are a few other internal MSG_.. flags, such as > > MSG_SENDPAGE_NOPOLICY. Those are all limited to sendpage, and ignored > > in sendmsg, I think. Which would explain why it was clearly safe to > > add them. > > Should those be moved across to the internal flags with MSG_SPLICE_PAGES? I would not include that in this patch series.