Received: by 2002:a05:7412:d8a:b0:e2:908c:2ebd with SMTP id b10csp2826559rdg; Mon, 16 Oct 2023 16:53:39 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFbNNmP/27FwvhpKRnRvpfwEsdcxhGxSF9Jss+15IJMf3MnR0t1t1v7piPyFn65qA5Rq911 X-Received: by 2002:a05:6359:5e1d:b0:141:3fd:2441 with SMTP id pw29-20020a0563595e1d00b0014103fd2441mr782387rwb.30.1697500419151; Mon, 16 Oct 2023 16:53:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1697500419; cv=none; d=google.com; s=arc-20160816; b=gacd9GMK3Ka+13a1pu5ENrbrt969TGKEhBs2uPLJ38rebdTiCOysJWDd+r1U/S+F7O v2AP9bCcSs3WB6eaaiWe/5s7443faU6r71bk5MJarZd+OjKZrfLrF9xOvr5mewoMRfGc 35CMf6gA9nnPJKWbbUJpA3KMoS7Ze4/Do+bVIIJo/6QsltL0G4ilxnNBVabcaURguxGk J49o5ejm3ZOZ7iQ+xpon2iopxsS5AfwP8mhFbp7j33Fu6f8269KXrVXWrBV3h1fpgmwj 8WHDYwhVFNl72dw+rovaxeTs7S+gJ9PWRpvz7QSAD0AxGVvDyusdms52MznbeXTwqTiT qQdQ== 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=0VEVqtbhTZ62Wt4BNsx/63ghGB/h6YT4GupgB+U3dfc=; fh=1xZouamQhrUNSgDnj2ElVQ38vYt+OIU8JZ/eclQpokk=; b=URc2p8cVO9lZo7nNwAwo2BmiyL5uckuJo7Kxvq0wU7Uq/hzMMGeCN1JvhhhUeY0Wx+ LY04QMaUrwm7aQ2zM9UW290zaG1oEc8320SSW57f/fMkW6iVymSVrjY8dHvfhBQczlBx KwlhG7/HhLf8Xb8a//A2BHk9WAlKToIf1wFDK+bYblrGYdEkBdLIpliq2CGqXEI9OcWE CmC1ZTcvgfj9OVl+7QLHctYfOHu+BepHvD4xGiJntcsZPTiDB9C2zG8/T8wY5bvtMBv9 E9KeO8KNY5LpSdmP6uYKfol1G8wt8EZUIe5ycHqkQ/OSh7RVxUyJM7e3+2aPkKEzw8DI zVBw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=bb0Xz1yX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 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 pete.vger.email (pete.vger.email. [23.128.96.36]) by mx.google.com with ESMTPS id b9-20020a633409000000b005b57aa7c849si509161pga.148.2023.10.16.16.53.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 16 Oct 2023 16:53:39 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) client-ip=23.128.96.36; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20230601 header.b=bb0Xz1yX; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 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 pete.vger.email (Postfix) with ESMTP id 7331580C5C8F; Mon, 16 Oct 2023 16:53:36 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234169AbjJPXx2 (ORCPT + 99 others); Mon, 16 Oct 2023 19:53:28 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50554 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232457AbjJPXx1 (ORCPT ); Mon, 16 Oct 2023 19:53:27 -0400 Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B7E9A93; Mon, 16 Oct 2023 16:53:25 -0700 (PDT) Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-406650da82bso46816845e9.3; Mon, 16 Oct 2023 16:53:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1697500404; x=1698105204; 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=0VEVqtbhTZ62Wt4BNsx/63ghGB/h6YT4GupgB+U3dfc=; b=bb0Xz1yXNb2sHQ3xC3CXxWgQe6ZCXuPffo+qa+iwpa9Lt0MUmiLSLOOsvDR6UtHM4B TTM5TVvEoYoz2liqVMYiKY51083wyyZ7hVWd3ANRa+1SDU1L34H8AGYjbW30FGiY62VP Ly66nl/ywm69zoWmrMynVdM3l2QVd8osP0yYsuAZUxSxdx8ZSMJU7QXn+I/lo2Tvs3zm MnRzg3X0Cr7hYYrhKQrgMa2p05t8BaoxBskPicLUza2scRMNEOWOzUVIWx6lbyIcUZrm 19j24h5UIp9L8KchCN4uq0b6EmEV1q5pqdefyTPlgXd2OvANZcwl/mpW7oGB3l38InCy 2siQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1697500404; x=1698105204; 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=0VEVqtbhTZ62Wt4BNsx/63ghGB/h6YT4GupgB+U3dfc=; b=pRatSAan9ql82OmtnAEv343cGrbq620k0xwFUGc25/Z65bYROIrGs0X092k1bWkwI1 y+/fUQyZxAxp6A2s9AR5DSb32EwcbeDsIHG8gyF24jSK0G2pdl+ERNf0xXHhwggG+sZG 7WujquDYzzzia3+8SjgWd9eJbt64+PZdrE5H2cojlAa4dAxPS5ovvWf3MJlG8jGp8EsT WbT84GkAucTOiwyW1niES6X2d1VuIhvQhw4iVj2VY/87xg+wJuVLQM0cjg29TlqPqX8D dSlvUuE+uZPu4cnK1uNEjfngZ8BYcPXv593lkJgggIsOjRRB3xB06MHhO8vFKfdkrKcA U3xQ== X-Gm-Message-State: AOJu0Yw82DiKHjuEwQK/JnbQZyF15Wh9HsKXkxnNvN/G2dggG+O28Gv7 f8Odgd0qy4cQDDvjFFK5gJpnkZA9EL4ZeoYovzahYuWq1R0= X-Received: by 2002:a5d:63cc:0:b0:32d:b8f8:2b18 with SMTP id c12-20020a5d63cc000000b0032db8f82b18mr715262wrw.32.1697500403744; Mon, 16 Oct 2023 16:53:23 -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: <2594bb24-74dc-4785-b46d-e1bffcc3e7ed@daynix.com> From: Alexei Starovoitov Date: Mon, 16 Oct 2023 16:53:11 -0700 Message-ID: Subject: Re: [RFC PATCH v2 1/7] bpf: Introduce BPF_PROG_TYPE_VNET_HASH To: Akihiko Odaki Cc: 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 , Willem de Bruijn , 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 pete.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 (pete.vger.email [0.0.0.0]); Mon, 16 Oct 2023 16:53:36 -0700 (PDT) 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 syscalls= */ > >> 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 ensures > 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.