Received: by 2002:a05:7412:d8a:b0:e2:908c:2ebd with SMTP id b10csp2845023rdg; Mon, 16 Oct 2023 17:37:42 -0700 (PDT) X-Google-Smtp-Source: AGHT+IHkiWB/Yf5b1JBsE7X9DJeXqzGOrfnFnhDqdWSkhqY6Xf0sfALB+43rDRAQuKVvh7ZTXaGj X-Received: by 2002:a05:6a20:1449:b0:174:32c:dfcb with SMTP id a9-20020a056a20144900b00174032cdfcbmr485599pzi.31.1697503062170; Mon, 16 Oct 2023 17:37:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697503062; cv=none; d=google.com; s=arc-20160816; b=SNN868sIlszBSCzghvSDpYx72VaCUWwg6UhS105IfmtIlb+Nsra+YeSqw75LpKMurc 9sRoi4jCUFMI/aVR4vmQpl+LawZuLjhhgUzDHh5Yg1SuGRgYfge/wH/zGdNJ6VLrUqba OSGx2GamB0/5CqspWPrnES+kW6gIfGKCpTDI2kNxsJtsfxOUQaQdtyGB3yo/fUfhklHh A59/OGfW1GoU0kPTvJuci2czMv5jNiIPXowmgNGHUejnzOeaUecqpKjhTULrxPS9JwoY zpLh2VIshtXyAlHTK8tP6sbB/0e8tmKveFpmdJjRwsfeVR2Qa1iasIMwm5iBpBw+E5nI mFlg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=hCBpBFy0sL3kGgajsg5bL9lp51r5jSArJUZNS83IHhs=; fh=UGlZl+qrUInNUw7Ozx5mDRgwEAleV9V2O7GSABLqeSI=; b=bG86BDl2h8vZzkdBWX0cd7znVb2ZwCy1ZhQWCxxNvXUiNdHETVErxFSwDWBcA9qaf8 lpd3Pjowi8otZOpddIcFFcG2IdN69JQxpuLBio1XuFtEjLQGcPNbdy1xD9OU22RAis0a MeZEIsL/nxbN2EHX1BVrQD/op6Oys55Rc9BpIoTKumygEAQmKtY0dyNAWR9vjAP3lBJw ulhOss6Z+YV3eC2kKQ4VxcQSkEsAuDRzr9ToYdQ2jSxcfc3OXVQ3abPJjUoNDmS3K2cl cNvGE1BySIFoyxJB63XdnhhBPvq3tjyRFSIkYdM4cQq7ji5OKKjlHO89vtWOEXdSObJV klvw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=C3jiDWSv; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from howler.vger.email (howler.vger.email. [2620:137:e000::3:4]) by mx.google.com with ESMTPS id s16-20020a056a00195000b0069342cee042si438680pfk.51.2023.10.16.17.37.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Oct 2023 17:37:42 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) client-ip=2620:137:e000::3:4; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=C3jiDWSv; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id D90B1804398E; Mon, 16 Oct 2023 17:37:39 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234223AbjJQAhZ (ORCPT + 99 others); Mon, 16 Oct 2023 20:37:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57942 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232873AbjJQAhX (ORCPT ); Mon, 16 Oct 2023 20:37:23 -0400 Received: from mail-ua1-x92d.google.com (mail-ua1-x92d.google.com [IPv6:2607:f8b0:4864:20::92d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7C01F95; Mon, 16 Oct 2023 17:37:21 -0700 (PDT) Received: by mail-ua1-x92d.google.com with SMTP id a1e0cc1a2514c-7ab5150a7b5so4140928241.0; Mon, 16 Oct 2023 17:37:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697503040; x=1698107840; darn=vger.kernel.org; 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=hCBpBFy0sL3kGgajsg5bL9lp51r5jSArJUZNS83IHhs=; b=C3jiDWSveC8PtTe5bXeKzkGZWO3pkZa89DKC6nfS2+H34Hu2e/YDCYPXSZEFwvrXlZ 1dC+aaOeLrBrXeTNewTbkuK6CCfsAh6nRZX4hE+RhyKedtZnmqA3uRDwreuabBXX0B9S sRt+d/lLDTMUWTLs+wBUQBmjZmtSu1xCcQiEjLSq9wjN7JWQZJ/6ZsIztI8SzFxctrMm LuEH6rs88L5gEEeaGvhBq7U6OFwPLdyLykJODzQmeKbr1DdYCyaDF9QYo7Eq7l6Vx2qT JMtPRQA6/gt7miQIPxGwpxCNOt0Ikzo9oXm2ijKHUs+4Ze4hCUlvg2ll+0Eff3F9iCqN 6JZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697503040; x=1698107840; 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=hCBpBFy0sL3kGgajsg5bL9lp51r5jSArJUZNS83IHhs=; b=Qc7dr/CAWve5s/CPqs1/+QU4dWMalQGFUyWpsGST6+A0Au+vUQHlS+I7fv3mUBWL48 EqGB7REUZgRQXMSwWNkr9ek0yeQR8Z1xGzdmsVchj32ihzHhXZO/2bt2u8zbXfpIKWBQ RTccaVtQkq/o0j7Mxdzu3CoPucX6SrRXxlFxKj5WzzE8My4d8ii0tApcqAux7yVLOgnh hXYgXwBzTQQEEEk+XklLsh1BcFylQeqVa8c8BguWtfZD5qyEu2jpw0PqkAsKIjRPLXiU sjoSUDJ+Rc/T56Q6B7ckTnU8FCNwfF17OQmb038rJb5aTyppApCpr2LM2Xt7+mxTAhtY iSnQ== X-Gm-Message-State: AOJu0YzWMUBVmfaWznhbVkyQqrT6J4asx8GmyNNb7D6yb+/OYSYIS+h7 6xlGmH3Gfh4NI40uDszYRHmqtsDVWCLWp1P9/HWpbQY+ X-Received: by 2002:a67:ac4a:0:b0:457:cbde:603d with SMTP id n10-20020a67ac4a000000b00457cbde603dmr189013vsh.14.1697503040429; Mon, 16 Oct 2023 17:37:20 -0700 (PDT) MIME-Version: 1.0 References: <20231015141644.260646-1-akihiko.odaki@daynix.com> <20231015141644.260646-2-akihiko.odaki@daynix.com> <2594bb24-74dc-4785-b46d-e1bffcc3e7ed@daynix.com> In-Reply-To: From: Willem de Bruijn Date: Mon, 16 Oct 2023 20:36:43 -0400 Message-ID: Subject: Re: [RFC PATCH v2 1/7] bpf: Introduce BPF_PROG_TYPE_VNET_HASH To: Alexei Starovoitov Cc: Akihiko Odaki , Alexei Starovoitov , Daniel Borkmann , Andrii Nakryiko , Martin KaFai Lau , Song Liu , Yonghong Song , John Fastabend , KP Singh , Stanislav Fomichev , Hao Luo , Jiri Olsa , Jonathan Corbet , Jason Wang , "David S. Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni , "Michael S. Tsirkin" , Xuan Zhuo , Mykola Lysenko , Shuah Khan , bpf , "open list:DOCUMENTATION" , LKML , Network Development , kvm@vger.kernel.org, virtualization@lists.linux-foundation.org, "open list:KERNEL SELFTEST FRAMEWORK" , Yuri Benditovich , Andrew Melnychenko Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-0.6 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_HELO_NONE, SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on howler.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 (howler.vger.email [0.0.0.0]); Mon, 16 Oct 2023 17:37:40 -0700 (PDT) On Mon, Oct 16, 2023 at 7:53=E2=80=AFPM Alexei Starovoitov wrote: > > On Sun, Oct 15, 2023 at 10:10=E2=80=AFAM Akihiko Odaki wrote: > > > > On 2023/10/16 1:07, Alexei Starovoitov wrote: > > > On Sun, Oct 15, 2023 at 7:17=E2=80=AFAM Akihiko Odaki wrote: > > >> > > >> diff --git a/include/uapi/linux/bpf.h b/include/uapi/linux/bpf.h > > >> index 0448700890f7..298634556fab 100644 > > >> --- a/include/uapi/linux/bpf.h > > >> +++ b/include/uapi/linux/bpf.h > > >> @@ -988,6 +988,7 @@ enum bpf_prog_type { > > >> BPF_PROG_TYPE_SK_LOOKUP, > > >> BPF_PROG_TYPE_SYSCALL, /* a program that can execute syscal= ls */ > > >> BPF_PROG_TYPE_NETFILTER, > > >> + BPF_PROG_TYPE_VNET_HASH, > > > > > > Sorry, we do not add new stable program types anymore. > > > > > >> @@ -6111,6 +6112,10 @@ struct __sk_buff { > > >> __u8 tstamp_type; > > >> __u32 :24; /* Padding, future use. */ > > >> __u64 hwtstamp; > > >> + > > >> + __u32 vnet_hash_value; > > >> + __u16 vnet_hash_report; > > >> + __u16 vnet_rss_queue; > > >> }; > > > > > > we also do not add anything to uapi __sk_buff. > > > > > >> +const struct bpf_verifier_ops vnet_hash_verifier_ops =3D { > > >> + .get_func_proto =3D sk_filter_func_proto, > > >> + .is_valid_access =3D sk_filter_is_valid_access, > > >> + .convert_ctx_access =3D bpf_convert_ctx_access, > > >> + .gen_ld_abs =3D bpf_gen_ld_abs, > > >> +}; > > > > > > and we don't do ctx rewrites like this either. > > > > > > Please see how hid-bpf and cgroup rstat are hooking up bpf > > > in _unstable_ way. > > > > Can you describe what "stable" and "unstable" mean here? I'm new to BPF > > and I'm worried if it may mean the interface stability. > > > > Let me describe the context. QEMU bundles an eBPF program that is used > > for the "eBPF steering program" feature of tun. Now I'm proposing to > > extend the feature to allow to return some values to the userspace and > > vhost_net. As such, the extension needs to be done in a way that ensure= s > > interface stability. > > bpf is not an option then. > we do not add stable bpf program types or hooks any more. > If a kernel subsystem wants to use bpf it needs to accept the fact > that such bpf extensibility will be unstable and subsystem maintainers > can decide to remove such bpf support in the future. Based on hooks for tracepoints and kfuncs, correct? Perhaps the existing stable flow dissector type is extensible to optionally compute the hash and report hash and hash type. Else we probably should revisit the previous version of this series.