Received: by 2002:a05:7412:8521:b0:e2:908c:2ebd with SMTP id t33csp2395626rdf; Mon, 6 Nov 2023 12:57:00 -0800 (PST) X-Google-Smtp-Source: AGHT+IE9Jyhe7Sc87agQhIET4Y+rYdKv46W/qpfwsQpGYUZfmZIxwQKyrRu7oW8k8gj9lBJ2ilaL X-Received: by 2002:a05:6358:7e13:b0:16b:4366:4c4c with SMTP id o19-20020a0563587e1300b0016b43664c4cmr11843759rwm.30.1699304220605; Mon, 06 Nov 2023 12:57:00 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1699304220; cv=none; d=google.com; s=arc-20160816; b=rAZBJgW4I3ItkjMPr6GUD4bZqpQxFx+P9DbBQlRfNX8DtMY2r7ZRdjCQDcTaGOf6KG YIFTyAKjDKdBqM2nbl+kWcWTQ3UkXdgD9ALBOecEnTRr4Mj70KPWf5lE3NxuMzrZ2Law 6sWTkAr5odj7iM+c0I18txDyyTypginokjb/g6AOwUvAdbL7YQmAH9SrFq0XJ3yDPYEz xvG5lV4mp92xHGXGHIDBaKvDSbp0s38GcnwkKkYXu/p8xT8UG+O4OPTRrbbu7Gw2uPrx Ut76ggPvE1uT5VhEshP9bJYCYUozmeObLo3dvEvsAeffRqynt2zO0BLY15SfMVUWkQEu AOEA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:message-id:references :mime-version:in-reply-to:date:dkim-signature; bh=arPwDeCFdRaC5606yGK22eodQyXfqpKFdElw4+wOp+Y=; fh=gxZei/e6+xUVfmM1A9qM1GQERxiD8ExX6F4epe3X8Lg=; b=kG2vtdcgKWqGOY+QCYtyYKRnAsGupfFZT/jQqYjkbGON+nsRzq4+r06Nc8860B8o+c h4Cj6K0ueQKqVOGlJa1bVBCHvMw4MgT9VG00hh5azu0iJLk82C1sSaAk21gX7w7GmbHb N1WkiKTTWuw/W+M+E1w9ftcEd+evKdcZUIdCS/gTgHMgoephsqJKmqxOmDaqS9UiVq4r ImgrGdSB3lLfsPO+0aAvTD/MmnlTpguWd9t1lE/y9vepqH3dc1J3nGdtyfOvTjsyLOUC dkC8P6wzcTVDIUSQ/ahU0y9eKAJ7NoPKGevExHVvvKMtsODntm5FCpYpJNfuBFyW09KC TPVw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b="ziHh/aIF"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from groat.vger.email (groat.vger.email. [2620:137:e000::3:5]) by mx.google.com with ESMTPS id c2-20020a633502000000b0059b9e4e53d5si58453pga.218.2023.11.06.12.57.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Nov 2023 12:57:00 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) client-ip=2620:137:e000::3:5; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20230601 header.b="ziHh/aIF"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id 04BA6804B29E; Mon, 6 Nov 2023 12:56:58 -0800 (PST) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232954AbjKFU4q (ORCPT + 99 others); Mon, 6 Nov 2023 15:56:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56184 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231364AbjKFU4o (ORCPT ); Mon, 6 Nov 2023 15:56:44 -0500 Received: from mail-pl1-x649.google.com (mail-pl1-x649.google.com [IPv6:2607:f8b0:4864:20::649]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E5F7CD76 for ; Mon, 6 Nov 2023 12:56:41 -0800 (PST) Received: by mail-pl1-x649.google.com with SMTP id d9443c01a7336-1cc391ca417so39832065ad.0 for ; Mon, 06 Nov 2023 12:56:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1699304201; x=1699909001; darn=vger.kernel.org; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=arPwDeCFdRaC5606yGK22eodQyXfqpKFdElw4+wOp+Y=; b=ziHh/aIFvo6N6MyxzgNXH375xkB1tWcG5/44kFckWODsyRclFzTa0ua5XlrUwZw+9E N0P299UgahHVOJk8//C/BKlpneMw6foUl+DV+KKPnMUrxUKffVwHYW2XJwEwdqsTSn6o hRd+NvDO1nV2wrVay+S+M6U0mpVX5uCrbx0aFCvZuVIY6l78swB9jMdh4s94o+R2514k zzEJdNlaQyk4rUsJLidfY0Y2uMiynwmnyYOjAiXbDYlBb9aPchZSLAcH7TUf+j9LSwYK quNVP0iNH/YHDUJTW2+mN3UPEbUXIc0tBJi+dQ5tKuzFag7JaN6xpsosAxfV/s2w84Bx s6GQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1699304201; x=1699909001; h=cc:to:from:subject:message-id:references:mime-version:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=arPwDeCFdRaC5606yGK22eodQyXfqpKFdElw4+wOp+Y=; b=Qrors/Qp9hCtwuUbQbr/Abf4KJ6ME6g1zs4zKefKTncgpsxlpHTqaJ9Gvyg3dk41ke rA9tHn67fek7wfi/pgtsBZ4sKvjC3FUNtG/eFGad6kE6OGIsZ88MMSKtn0F6AoIj+Z5C WwAr0cf56yVSuiKBs2N7FF8rH4X1B6uDtyEiIxzenDrga3BeCD9dve3xSwN9cQMBUNtr +6Wpee2/pC2rIzwtaWt6Ss52oUYfsRziJhibpiwIDLKULq+UNNT62A1bwwBfcGHZS3Ad /lUkj2/5uhA+4VdMDtKnu+yXsBzxT2cWRhetRAwCoTmK3Js0lziCIRnnpuSskxsqloLm ZpeQ== X-Gm-Message-State: AOJu0Yza835I74Ivo4gyjAisV98NQgPcXBB44oVkhsyHuBixofth9LJD aQHX404TAtqDOD/iRY9GmR0pFqA= X-Received: from sdf.c.googlers.com ([fda3:e722:ac3:cc00:7f:e700:c0a8:5935]) (user=sdf job=sendgmr) by 2002:a17:902:ed42:b0:1cc:446c:7701 with SMTP id y2-20020a170902ed4200b001cc446c7701mr419825plb.12.1699304201375; Mon, 06 Nov 2023 12:56:41 -0800 (PST) Date: Mon, 6 Nov 2023 12:56:39 -0800 In-Reply-To: <20231106024413.2801438-10-almasrymina@google.com> Mime-Version: 1.0 References: <20231106024413.2801438-1-almasrymina@google.com> <20231106024413.2801438-10-almasrymina@google.com> Message-ID: Subject: Re: [RFC PATCH v3 09/12] net: add support for skbs with unreadable frags From: Stanislav Fomichev To: Mina Almasry Cc: netdev@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-media@vger.kernel.org, dri-devel@lists.freedesktop.org, linaro-mm-sig@lists.linaro.org, "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , Jesper Dangaard Brouer , Ilias Apalodimas , Arnd Bergmann , David Ahern , Willem de Bruijn , Shuah Khan , Sumit Semwal , "Christian =?utf-8?B?S8O2bmln?=" , Shakeel Butt , Jeroen de Borst , Praveen Kaligineedi , Willem de Bruijn , Kaiyuan Zhang Content-Type: text/plain; charset="utf-8" X-Spam-Status: No, score=-8.4 required=5.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (groat.vger.email [0.0.0.0]); Mon, 06 Nov 2023 12:56:58 -0800 (PST) On 11/05, Mina Almasry wrote: > For device memory TCP, we expect the skb headers to be available in host > memory for access, and we expect the skb frags to be in device memory > and unaccessible to the host. We expect there to be no mixing and > matching of device memory frags (unaccessible) with host memory frags > (accessible) in the same skb. > > Add a skb->devmem flag which indicates whether the frags in this skb > are device memory frags or not. > > __skb_fill_page_desc() now checks frags added to skbs for page_pool_iovs, > and marks the skb as skb->devmem accordingly. > > Add checks through the network stack to avoid accessing the frags of > devmem skbs and avoid coalescing devmem skbs with non devmem skbs. > > Signed-off-by: Willem de Bruijn > Signed-off-by: Kaiyuan Zhang > Signed-off-by: Mina Almasry [..] > - snaplen = skb->len; > + snaplen = skb_frags_not_readable(skb) ? skb_headlen(skb) : skb->len; > > res = run_filter(skb, sk, snaplen); > if (!res) > @@ -2279,7 +2279,7 @@ static int tpacket_rcv(struct sk_buff *skb, struct net_device *dev, > } > } > > - snaplen = skb->len; > + snaplen = skb_frags_not_readable(skb) ? skb_headlen(skb) : skb->len; > > res = run_filter(skb, sk, snaplen); > if (!res) Not sure it covers 100% of bpf. We might need to double-check bpf_xdp_copy_buf which is having its own, non-skb shinfo and frags. And in general, xdp can reference those shinfo frags early... (xdp part happens before we create an skb with all devmem association)