From patchwork Mon Dec 17 18:25:49 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanislav Fomichev X-Patchwork-Id: 1014664 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="vSPzbj71"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43JV3M3yVQz9s3q for ; Tue, 18 Dec 2018 05:26:23 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388935AbeLQS0W (ORCPT ); Mon, 17 Dec 2018 13:26:22 -0500 Received: from mail-yb1-f202.google.com ([209.85.219.202]:54889 "EHLO mail-yb1-f202.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388930AbeLQS0V (ORCPT ); Mon, 17 Dec 2018 13:26:21 -0500 Received: by mail-yb1-f202.google.com with SMTP id a18so8087782ybg.21 for ; Mon, 17 Dec 2018 10:26:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=hhKLRJpQtJseikpPNMQZS9LZV1F2VbAVs3tGLv3AQxo=; b=vSPzbj71ulpbwogaWcE21W7Ub1qntnk6rHLw16YtBg1B5sG4WkHGVq16DmRzP8tJG4 X6ezR4ELCFH2vJqcNoW53QKjqenvASxGLm1H++9F0fSpO4EQmZlPJQZiGdmmVZJXq6In 6ITbQ9LymsrC5QHQF+RuiWszi45SbgKg8S2Dj7t2Ig7KI9/JMXWFETOhBC7mf9BgjBWx zvTEAu3ufWcVn7jSw+cirhC0hBbY0gePtO2QRJEcizkkAgoXODN1XolOZPUFIDzdr1NI XfKntcNdIScTaAmfxqsiMJ9Lln9ryx5VzGyP0movQrKhubs2TpseMx8BGpGHT3h0yhz5 ruhg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=hhKLRJpQtJseikpPNMQZS9LZV1F2VbAVs3tGLv3AQxo=; b=UNSDO/bmdr/x/MCLiTWLNRv7hZgNdXrKeHoI9qxFaO0DNs0vZRTjoikk4L2H83/8G5 m3QQU8Ol+NdLyGk8q5aQgQet8JMXG7hbgph2hUz6/+zd+zZZsvULesEywMt/zP7pRkgl SiAaxSrctu5x9rTneoTB4u48I9GnPNFmBauHCWHbA7HtA7tqKIFgD9hFX95Tu7ULkUTB KLRRNHyQTes8JH6L1n4lqKrwXYwhI9MDEJAxOkIhHhmNiyJBC7avEdHUuQwbAYj25Cq8 9QUAoptyoTZhcVsEIJ7TC0wY2Kt5uBKiVCBdrqgo5WWfM6z5QV0lX493Q7rABr3B6t/5 LpOA== X-Gm-Message-State: AA+aEWYjzuQCONpDI178Fp26PsygiBO3i5bMNec9dFa5IcOFFuxdXOrd Lgg2YWhjEzot+QqCvHxBzf8A7eJwD0VN0hmE6X4bgFM1pgRvk+0maBULj/imBK8TWo9uR1sAjYS t6433KTzZy4LIM5AdCc9Y4ZNu0JtPbjT8enMFGncioaHM07nsfmCHjg== X-Google-Smtp-Source: AFSGD/XM2BqH+j73NQpGXX7RPp/kdkHjUjV+ZqGZ4FWoDIb9DNYFxyOxtAgf15yBkqk0jO1wfK8mVbk= X-Received: by 2002:a25:4d5:: with SMTP id 204mr7962439ybe.17.1545071180654; Mon, 17 Dec 2018 10:26:20 -0800 (PST) Date: Mon, 17 Dec 2018 10:25:49 -0800 In-Reply-To: <20181217182554.52170-1-sdf@google.com> Message-Id: <20181217182554.52170-2-sdf@google.com> Mime-Version: 1.0 References: <20181217182554.52170-1-sdf@google.com> X-Mailer: git-send-email 2.20.0.405.gbc1bbc6f85-goog Subject: [PATCH bpf-next v2 1/6] selftests/bpf: add map/prog type probe helpers From: Stanislav Fomichev To: netdev@vger.kernel.org, ast@kernel.org Cc: davem@davemloft.net, daniel@iogearbox.net, ecree@solarflare.com, quentin.monnet@netronome.com, Stanislav Fomichev Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Export bpf_map_type_supported() and bpf_prog_type_supported() which return true/false to indicate kernel support for the appropriate program or map type. These helpers will be used in the next commits to selectively skip test_verifier/test_maps tests. bpf_map_type_supported() supports only limited set of maps for which we do fixups in the test_verifier, for unknown maps it falls back to 'supported'. Signed-off-by: Stanislav Fomichev --- tools/testing/selftests/bpf/probe_helpers.c | 68 +++++++++++++++++++++ tools/testing/selftests/bpf/probe_helpers.h | 10 +++ 2 files changed, 78 insertions(+) create mode 100644 tools/testing/selftests/bpf/probe_helpers.c create mode 100644 tools/testing/selftests/bpf/probe_helpers.h diff --git a/tools/testing/selftests/bpf/probe_helpers.c b/tools/testing/selftests/bpf/probe_helpers.c new file mode 100644 index 000000000000..00467fdda813 --- /dev/null +++ b/tools/testing/selftests/bpf/probe_helpers.c @@ -0,0 +1,68 @@ +// SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +#include +#include + +#include "cgroup_helpers.h" +#include "bpf_util.h" +#include "../../../include/linux/filter.h" + +bool bpf_prog_type_supported(enum bpf_prog_type prog_type) +{ + struct bpf_load_program_attr attr; + struct bpf_insn insns[] = { + BPF_MOV64_IMM(BPF_REG_0, 0), + BPF_EXIT_INSN(), + }; + int ret; + + if (prog_type == BPF_PROG_TYPE_UNSPEC) + return true; + + memset(&attr, 0, sizeof(attr)); + attr.prog_type = prog_type; + attr.insns = insns; + attr.insns_cnt = ARRAY_SIZE(insns); + attr.license = "GPL"; + + ret = bpf_load_program_xattr(&attr, NULL, 0); + if (ret < 0) + return false; + close(ret); + + return true; +} + +bool bpf_map_type_supported(enum bpf_map_type map_type) +{ + int key_size, value_size, max_entries; + int fd; + + key_size = sizeof(__u32); + value_size = sizeof(__u32); + max_entries = 1; + + /* limited set of maps for test_verifier.c and test_maps.c */ + switch (map_type) { + case BPF_MAP_TYPE_SOCKMAP: + case BPF_MAP_TYPE_SOCKHASH: + case BPF_MAP_TYPE_XSKMAP: + break; + case BPF_MAP_TYPE_STACK_TRACE: + value_size = sizeof(__u64); + case BPF_MAP_TYPE_CGROUP_STORAGE: + case BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE: + key_size = sizeof(struct bpf_cgroup_storage_key); + value_size = sizeof(__u64); + max_entries = 0; + break; + default: + return true; + } + + fd = bpf_create_map(map_type, key_size, value_size, max_entries, 0); + if (fd < 0) + return false; + close(fd); + + return true; +} diff --git a/tools/testing/selftests/bpf/probe_helpers.h b/tools/testing/selftests/bpf/probe_helpers.h new file mode 100644 index 000000000000..9a107d6fe936 --- /dev/null +++ b/tools/testing/selftests/bpf/probe_helpers.h @@ -0,0 +1,10 @@ +/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ +#ifndef __PROBE_HELPERS_H +#define __PROBE_HELPERS_H + +#include + +bool bpf_prog_type_supported(enum bpf_prog_type prog_type); +bool bpf_map_type_supported(enum bpf_map_type map_type); + +#endif From patchwork Mon Dec 17 18:25:50 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanislav Fomichev X-Patchwork-Id: 1014665 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="d/QWvgxk"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43JV3P5rgQz9s3q for ; Tue, 18 Dec 2018 05:26:25 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388938AbeLQS0Y (ORCPT ); Mon, 17 Dec 2018 13:26:24 -0500 Received: from mail-ot1-f74.google.com ([209.85.210.74]:52203 "EHLO mail-ot1-f74.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727840AbeLQS0Y (ORCPT ); Mon, 17 Dec 2018 13:26:24 -0500 Received: by mail-ot1-f74.google.com with SMTP id c33so7845700otb.18 for ; Mon, 17 Dec 2018 10:26:23 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=iDRZlyAh/YbPVSrqZYY7qn6TduIEnLXj+fH24EGCGOw=; b=d/QWvgxkBnCp+ANMp5SJ/Df6GwOdzqP155HaTDt9SaWFe2w1hrVpoDTu58ZzwluRRX /p+k+r6YigMLykHawRqDQm59fDhp8DvNHlzncCHGEOChJUqPDY8ubFLp/P6ULK+lbtvH KtU4vxYkshxvQSPcbH19VV0L1LK2szwrfJgOZNz1pTaPvl662xOcKqK9zoqUmw7/O2Xv guawQbp2RgFZAHmkWhNrMPvU786kJkmhyMjjDNT99cETFK5z7eZthMrPn+y7/ZDcz7+n zgdl0q8HmKucmBQFzsiyLr4VzN8Ay+os+4Ql03mQan4vGzpspuL1MVazXhRo+ZKGLS4I qjDg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=iDRZlyAh/YbPVSrqZYY7qn6TduIEnLXj+fH24EGCGOw=; b=BoIN7eH2rYqND9AOC8jhvnBr9rrlZ9KjkIGQ9dwiop2iszU71Rg8lX1q+cyXNU8UrQ W5nGXgtt5z5WHzgzLnOWXJT4U5WiIE5L/GwmLbZPdMmXwFJ3oH4ya9SHE95kL/KYXXM5 Jh4NknGPkbHpBDvNecffWTItGfAzso8pIXLRmcF80V4ZJ+aGhLl0gjEFOuZX3vRLT9OW vZYyXLtI1u04ts/fuYdndRf7QAZzCT1C38tkZmDSjNG25h2n5kMj6lwXolBSHqLlM+MI losv8rQ7Vgnhx9Mid1WpBZXiZpIzrsTEZv9xNAy6A9HpzjAmCLJD6Xr6TFDQn7AgyNQC L5CQ== X-Gm-Message-State: AA+aEWZg0q63iNqcx8wHlfOGdZXHzufksyWOb0b4KfKo1R1qNuWBfU4i Noert9FVegeIoi3sKvw4Tub9Vy+a3efPBf7oOMfJ5iiaDgK+U6cMT+f5Hmvs94sOvhc9kLi/Ibx p9WlA+cNIMoE062+5WQvD5sS8vqDBMsMABiDT2CtWSp8sSHNqJGVSvg== X-Google-Smtp-Source: AFSGD/WaG/rRyQ5IaRyKz/RaknuBDbMHbFMTgy+76Rh0BImVUcjuuyTw2iUkxwhrc2CycLHumrVWudo= X-Received: by 2002:aca:aa53:: with SMTP id t80mr12939481oie.22.1545071183026; Mon, 17 Dec 2018 10:26:23 -0800 (PST) Date: Mon, 17 Dec 2018 10:25:50 -0800 In-Reply-To: <20181217182554.52170-1-sdf@google.com> Message-Id: <20181217182554.52170-3-sdf@google.com> Mime-Version: 1.0 References: <20181217182554.52170-1-sdf@google.com> X-Mailer: git-send-email 2.20.0.405.gbc1bbc6f85-goog Subject: [PATCH bpf-next v2 2/6] selftests/bpf: skip sockmap in test_maps if kernel doesn't have support From: Stanislav Fomichev To: netdev@vger.kernel.org, ast@kernel.org Cc: davem@davemloft.net, daniel@iogearbox.net, ecree@solarflare.com, quentin.monnet@netronome.com, Stanislav Fomichev Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Use recently introduced bpf_map_type_supported() to skip test_sockmap() if map creation fails. The skipped test is indicated in the output. Example: test_sockmap SKIP (unsupported map type BPF_MAP_TYPE_SOCKMAP) Fork 1024 tasks to 'test_update_delete' ... test_sockmap SKIP (unsupported map type BPF_MAP_TYPE_SOCKMAP) Fork 1024 tasks to 'test_update_delete' ... test_maps: OK, 2 SKIPPED Signed-off-by: Stanislav Fomichev --- tools/testing/selftests/bpf/Makefile | 1 + tools/testing/selftests/bpf/test_maps.c | 14 +++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile index 73aa6d8f4a2f..52a0654145ad 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -81,6 +81,7 @@ $(OUTPUT)/test_progs: trace_helpers.c $(OUTPUT)/get_cgroup_id_user: cgroup_helpers.c $(OUTPUT)/test_cgroup_storage: cgroup_helpers.c $(OUTPUT)/test_netcnt: cgroup_helpers.c +$(OUTPUT)/test_maps: probe_helpers.c .PHONY: force diff --git a/tools/testing/selftests/bpf/test_maps.c b/tools/testing/selftests/bpf/test_maps.c index 9c79ee017df3..bdf9bdaea73e 100644 --- a/tools/testing/selftests/bpf/test_maps.c +++ b/tools/testing/selftests/bpf/test_maps.c @@ -27,11 +27,14 @@ #include "bpf_util.h" #include "bpf_rlimit.h" +#include "probe_helpers.h" #ifndef ENOTSUPP #define ENOTSUPP 524 #endif +static int skips; + static int map_flags; #define CHECK(condition, tag, format...) ({ \ @@ -725,6 +728,15 @@ static void test_sockmap(int tasks, void *data) sizeof(key), sizeof(value), 6, 0); if (fd < 0) { + if (!bpf_map_type_supported(BPF_MAP_TYPE_SOCKMAP)) { + printf("%s SKIP (unsupported map type BPF_MAP_TYPE_SOCKMAP)\n", + __func__); + skips++; + for (i = 0; i < 6; i++) + close(sfd[i]); + return; + } + printf("Failed to create sockmap %i\n", fd); goto out_sockmap; } @@ -1702,6 +1714,6 @@ int main(void) map_flags = BPF_F_NO_PREALLOC; run_all_tests(); - printf("test_maps: OK\n"); + printf("test_maps: OK, %d SKIPPED\n", skips); return 0; } From patchwork Mon Dec 17 18:25:51 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanislav Fomichev X-Patchwork-Id: 1014669 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="vw3GQXRF"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43JV3f4WyVz9s3q for ; Tue, 18 Dec 2018 05:26:38 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388949AbeLQS01 (ORCPT ); Mon, 17 Dec 2018 13:26:27 -0500 Received: from mail-qk1-f202.google.com ([209.85.222.202]:56751 "EHLO mail-qk1-f202.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388939AbeLQS00 (ORCPT ); Mon, 17 Dec 2018 13:26:26 -0500 Received: by mail-qk1-f202.google.com with SMTP id a199so16005603qkb.23 for ; Mon, 17 Dec 2018 10:26:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=o0moLT+NnCymLm2B2Wq64cOX6821oqChlx1yY2i5B3o=; b=vw3GQXRFYr7OEKCd1W4u4+d5WPIrLz5+e2Lx0fsYD/Y29rFVgS9ILqtfskufG+nqk5 AMwlf102WtRxA7bY5IDJqBYR+6U1n3Qx/U3iXwlxhBeIP7AtPwlf5GXdc4DVgRBH2N2e FWbVm1tyHgucQJkFWu43YtmWL5gIXu9oYSC4gcI9JIL+1UI7uGazkhWjj1t+zP7dacK3 bAWvRGIlo/nOqwMYHBTgXsjW0bj3HJK0YPXpcgBJa4CtEX/xvqiDiWK79idjMQVFyGBB E6Cbkoi6DuUCS6Xpx9kI8Zble9qv4sQwkq62uKew14IfJLHENcYBg8bhFEPjJUDZCF55 JDTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=o0moLT+NnCymLm2B2Wq64cOX6821oqChlx1yY2i5B3o=; b=S9gQgNpE+suf1fRbNbrxzLpIyYA/9vXXdl8D6TO6tCaSxB9BZjKmNvQvlzTRQiN0tm A7vKRA8+jg3Hu8haahOz310DgHcUpr2p7IXJC4uRWJ4Y170JBlzu4WvVc6AoJC4Mb3X9 quBOaPSlNEqeZESP1/LiPfU6SOjeihoQqujPVIbIp5m1cUV3IZjNxMScGkOQXuRgWGHI iiQ3NOnkQyKCHW5JCPaiSVgHNmpZ6wU+8sCGNEn9ucBaex5yB7WG/obC8eJ+r3HOcCli bcXNxbr9+qah87FvNJLHOJfDX2f5tyBwv9NRXKpR7e0oQugppqorwB64d+7SBH9nCM1z CedA== X-Gm-Message-State: AA+aEWaRiJ2jz17+4HYwcxqV+ihkH6vcHw2Nh3mHpiMygj8dn1qV1we1 o5UQrGzJbIB0wKGmL0kd+kIJvf4dJQwnYo0aepqB+3ZpMQ3/nNI/DK3Xn/ajtc7wQjttntkMVS7 KILKxI4HY29bmlEY/JW5InGxiKA9KkQW1xGtnFB37BdiggSvR6+HEdw== X-Google-Smtp-Source: AFSGD/XJAhC5QTfIPhEWQgmlJGqDwSGR2Bm6tS+dj37kPwKYSHcG+W7pgF+JHPI+Th1qWZJB34pEE6k= X-Received: by 2002:a0c:8b4d:: with SMTP id d13mr15029068qvc.2.1545071185455; Mon, 17 Dec 2018 10:26:25 -0800 (PST) Date: Mon, 17 Dec 2018 10:25:51 -0800 In-Reply-To: <20181217182554.52170-1-sdf@google.com> Message-Id: <20181217182554.52170-4-sdf@google.com> Mime-Version: 1.0 References: <20181217182554.52170-1-sdf@google.com> X-Mailer: git-send-email 2.20.0.405.gbc1bbc6f85-goog Subject: [PATCH bpf-next v2 3/6] selftests/bpf: skip verifier tests for unsupported program types From: Stanislav Fomichev To: netdev@vger.kernel.org, ast@kernel.org Cc: davem@davemloft.net, daniel@iogearbox.net, ecree@solarflare.com, quentin.monnet@netronome.com, Stanislav Fomichev Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Use recently introduced bpf_prog_type_supported() to skip tests in the test_verifier() if bpf_verify_program() fails. The skipped test is indicated in the output. Example: ... 679/p bpf_get_stack return R0 within range SKIP (unsupported program type 5) 680/p ld_abs: invalid op 1 OK ... Summary: 863 PASSED, 165 SKIPPED, 3 FAILED Signed-off-by: Stanislav Fomichev --- tools/testing/selftests/bpf/Makefile | 1 + tools/testing/selftests/bpf/test_verifier.c | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests/bpf/Makefile index 52a0654145ad..9e9c5ada3e9b 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -82,6 +82,7 @@ $(OUTPUT)/get_cgroup_id_user: cgroup_helpers.c $(OUTPUT)/test_cgroup_storage: cgroup_helpers.c $(OUTPUT)/test_netcnt: cgroup_helpers.c $(OUTPUT)/test_maps: probe_helpers.c +$(OUTPUT)/test_verifier: probe_helpers.c .PHONY: force diff --git a/tools/testing/selftests/bpf/test_verifier.c b/tools/testing/selftests/bpf/test_verifier.c index a08c67c8767e..124d21306c27 100644 --- a/tools/testing/selftests/bpf/test_verifier.c +++ b/tools/testing/selftests/bpf/test_verifier.c @@ -45,6 +45,7 @@ #include "bpf_rand.h" #include "bpf_util.h" #include "../../../include/linux/filter.h" +#include "probe_helpers.h" #define MAX_INSNS BPF_MAXINSNS #define MAX_FIXUPS 8 @@ -57,6 +58,7 @@ #define UNPRIV_SYSCTL "kernel/unprivileged_bpf_disabled" static bool unpriv_disabled = false; +static int skips; struct bpf_test { const char *descr; @@ -14409,6 +14411,11 @@ static void do_test_single(struct bpf_test *test, bool unpriv, pflags |= BPF_F_ANY_ALIGNMENT; fd_prog = bpf_verify_program(prog_type, prog, prog_len, pflags, "GPL", 0, bpf_vlog, sizeof(bpf_vlog), 1); + if (fd_prog < 0 && !bpf_prog_type_supported(prog_type)) { + printf("SKIP (unsupported program type %d)\n", prog_type); + skips++; + goto close_fds; + } expected_ret = unpriv && test->result_unpriv != UNDEF ? test->result_unpriv : test->result; @@ -14532,7 +14539,7 @@ static bool test_as_unpriv(struct bpf_test *test) static int do_test(bool unpriv, unsigned int from, unsigned int to) { - int i, passes = 0, errors = 0, skips = 0; + int i, passes = 0, errors = 0; for (i = from; i < to; i++) { struct bpf_test *test = &tests[i]; From patchwork Mon Dec 17 18:25:52 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanislav Fomichev X-Patchwork-Id: 1014666 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="nblqL8hE"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43JV3Y0qP2z9s6w for ; Tue, 18 Dec 2018 05:26:33 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388962AbeLQS0b (ORCPT ); Mon, 17 Dec 2018 13:26:31 -0500 Received: from mail-pg1-f201.google.com ([209.85.215.201]:57021 "EHLO mail-pg1-f201.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388957AbeLQS03 (ORCPT ); Mon, 17 Dec 2018 13:26:29 -0500 Received: by mail-pg1-f201.google.com with SMTP id d3so11276945pgv.23 for ; Mon, 17 Dec 2018 10:26:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=4Nc0oC7CaUT2tQOctNPkYzrUd0wVvGq3FZym00AKEvs=; b=nblqL8hEdydQijn/MiDWUxMwsR2aXGF4RwuMDVSvRHqSH8vCD54uDwdIVgIJeq5LK9 4QN7/fp2Mi/ufMSI/aqG1U0GaoE6DhSMhgymzAAw74i4Ay8L5xliVFeNoDdbPsU43DJc pZlU/VhujNsJJrCoDfLz24Scp3sLpFeuWcJL7MLM4Xhlb9JWWASdw4cKMtFDfS+EO9DF oo0ozMIqXqFAOG5SMFLCQeZFOqHSGLupgi0yhLKrnC2/x8d3gDRZFVGT7OIuVuntRBL9 gAwiBzHcXJjYBAbvpdNUlDNX+9OQoX3FDzjrdGPbO6Si2qK/uZj+ZUaCLq/OmOHEvdcX cPgg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=4Nc0oC7CaUT2tQOctNPkYzrUd0wVvGq3FZym00AKEvs=; b=mTiJe6w4vJTHTkRx1hGepfofvgHIYzgMuny4FUms+6zBBYT43Z3Upzf6kEySjdHFFJ wacqCXroNoLH6lxgkGdd3rq6MKCavDd1WlsNDPck2GvTv8Fb7Ou36GRZSlKO0iJWh/G3 rn/j4XCovTiDfS+I4akd+sk9pKBlOkFBUSdfwZBIln/kC14ovmfIsHKRAAFle7jhaDyj iCBWAvkcXe3it/PX3cMkY3W6mGYCxoBEZ3kERA7e+ycMK89nFxM+sdLTgMlNG0zD9efa Ssfj96mYnLN23Jz18qP4lo15uvfKwkaknU316PnObZdzvtwyKFJxKPqJstGmxcaA5n0d eZ0Q== X-Gm-Message-State: AA+aEWbgxxsVbiBSq8/re96f2HHoOwUXBXv36iosjmqnd45BExr78Q9t pNHKzfR8qPm0l/d1LhG7v+izQUBS/Vc2a9/YzgjSZoJmC3Qq4xxAHOlAeCcJvEz2wAGzs8kkB+c aWecIYNZQOuJ6PPnj5D+yDBGPQkV3XsygMfj1SJyGlSHlqYoxvT13iw== X-Google-Smtp-Source: AFSGD/VOW0dEeVmb/BjxrE90rGoWv+XHP8p37mvl6h/sXub3daiOH2+r1RVf86euFHEsKviqtPOa8Ng= X-Received: by 2002:a63:f15:: with SMTP id e21mr8033749pgl.2.1545071188184; Mon, 17 Dec 2018 10:26:28 -0800 (PST) Date: Mon, 17 Dec 2018 10:25:52 -0800 In-Reply-To: <20181217182554.52170-1-sdf@google.com> Message-Id: <20181217182554.52170-5-sdf@google.com> Mime-Version: 1.0 References: <20181217182554.52170-1-sdf@google.com> X-Mailer: git-send-email 2.20.0.405.gbc1bbc6f85-goog Subject: [PATCH bpf-next v2 4/6] selftests/bpf: skip verifier tests for unsupported map types From: Stanislav Fomichev To: netdev@vger.kernel.org, ast@kernel.org Cc: davem@davemloft.net, daniel@iogearbox.net, ecree@solarflare.com, quentin.monnet@netronome.com, Stanislav Fomichev Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Use recently introduced bpf_map_type_supported() to skip tests in the test_verifier if map creation (create_map) fails. It's handled explicitly for each fixup, i.e. if bpf_create_map returns negative fd, we probe the kernel for the appropriate map support and skip the test is map type is not supported. Signed-off-by: Stanislav Fomichev --- tools/testing/selftests/bpf/test_verifier.c | 34 +++++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/bpf/test_verifier.c b/tools/testing/selftests/bpf/test_verifier.c index 124d21306c27..d267f5248b5d 100644 --- a/tools/testing/selftests/bpf/test_verifier.c +++ b/tools/testing/selftests/bpf/test_verifier.c @@ -14221,10 +14221,20 @@ static int create_cgroup_storage(bool percpu) return fd; } +static bool skip_unsupported_map(int ret, enum bpf_map_type map_type) +{ + if (ret < 0 && !bpf_map_type_supported(map_type)) { + printf("SKIP (unsupported map type %d)\n", map_type); + skips++; + return true; + } + return false; +} + static char bpf_vlog[UINT_MAX >> 8]; -static void do_test_fixup(struct bpf_test *test, enum bpf_map_type prog_type, - struct bpf_insn *prog, int *map_fds) +static int do_test_fixup(struct bpf_test *test, enum bpf_map_type prog_type, + struct bpf_insn *prog, int *map_fds) { int *fixup_map_hash_8b = test->fixup_map_hash_8b; int *fixup_map_hash_48b = test->fixup_map_hash_48b; @@ -14309,6 +14319,9 @@ static void do_test_fixup(struct bpf_test *test, enum bpf_map_type prog_type, if (*fixup_cgroup_storage) { map_fds[7] = create_cgroup_storage(false); + if (skip_unsupported_map(map_fds[7], + BPF_MAP_TYPE_CGROUP_STORAGE)) + return -1; do { prog[*fixup_cgroup_storage].imm = map_fds[7]; fixup_cgroup_storage++; @@ -14317,6 +14330,9 @@ static void do_test_fixup(struct bpf_test *test, enum bpf_map_type prog_type, if (*fixup_percpu_cgroup_storage) { map_fds[8] = create_cgroup_storage(true); + if (skip_unsupported_map(map_fds[8], + BPF_MAP_TYPE_PERCPU_CGROUP_STORAGE)) + return -1; do { prog[*fixup_percpu_cgroup_storage].imm = map_fds[8]; fixup_percpu_cgroup_storage++; @@ -14325,6 +14341,8 @@ static void do_test_fixup(struct bpf_test *test, enum bpf_map_type prog_type, if (*fixup_map_sockmap) { map_fds[9] = create_map(BPF_MAP_TYPE_SOCKMAP, sizeof(int), sizeof(int), 1); + if (skip_unsupported_map(map_fds[9], BPF_MAP_TYPE_SOCKMAP)) + return -1; do { prog[*fixup_map_sockmap].imm = map_fds[9]; fixup_map_sockmap++; @@ -14333,6 +14351,8 @@ static void do_test_fixup(struct bpf_test *test, enum bpf_map_type prog_type, if (*fixup_map_sockhash) { map_fds[10] = create_map(BPF_MAP_TYPE_SOCKHASH, sizeof(int), sizeof(int), 1); + if (skip_unsupported_map(map_fds[10], BPF_MAP_TYPE_SOCKHASH)) + return -1; do { prog[*fixup_map_sockhash].imm = map_fds[10]; fixup_map_sockhash++; @@ -14341,6 +14361,8 @@ static void do_test_fixup(struct bpf_test *test, enum bpf_map_type prog_type, if (*fixup_map_xskmap) { map_fds[11] = create_map(BPF_MAP_TYPE_XSKMAP, sizeof(int), sizeof(int), 1); + if (skip_unsupported_map(map_fds[11], BPF_MAP_TYPE_XSKMAP)) + return -1; do { prog[*fixup_map_xskmap].imm = map_fds[11]; fixup_map_xskmap++; @@ -14349,11 +14371,16 @@ static void do_test_fixup(struct bpf_test *test, enum bpf_map_type prog_type, if (*fixup_map_stacktrace) { map_fds[12] = create_map(BPF_MAP_TYPE_STACK_TRACE, sizeof(u32), sizeof(u64), 1); + if (skip_unsupported_map(map_fds[12], + BPF_MAP_TYPE_STACK_TRACE)) + return -1; do { prog[*fixup_map_stacktrace].imm = map_fds[12]; fixup_map_stacktrace++; } while (fixup_map_stacktrace); } + + return 0; } static int set_admin(bool admin) @@ -14401,7 +14428,8 @@ static void do_test_single(struct bpf_test *test, bool unpriv, if (!prog_type) prog_type = BPF_PROG_TYPE_SOCKET_FILTER; - do_test_fixup(test, prog_type, prog, map_fds); + if (do_test_fixup(test, prog_type, prog, map_fds) < 0) + return; prog_len = probe_filter_length(prog); pflags = 0; From patchwork Mon Dec 17 18:25:53 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanislav Fomichev X-Patchwork-Id: 1014667 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="nzLTkYYK"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43JV3Z0Hdmz9s7W for ; Tue, 18 Dec 2018 05:26:34 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387888AbeLQS0d (ORCPT ); Mon, 17 Dec 2018 13:26:33 -0500 Received: from mail-io1-f74.google.com ([209.85.166.74]:33608 "EHLO mail-io1-f74.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388960AbeLQS0b (ORCPT ); Mon, 17 Dec 2018 13:26:31 -0500 Received: by mail-io1-f74.google.com with SMTP id q21so3784595ion.0 for ; Mon, 17 Dec 2018 10:26:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=YEvxaoySpgG5O4vC9eGC6h2piFMIwxT83zOUcDjltFk=; b=nzLTkYYKOSG8rth6DxhG3v9WiVoUnoStMrZF7p7UgOlPvzQs/00t8x4pa0neZCEVPh Mk+Aa+7GLoXz7ntnUSw6BS/ZYWetat29B2oeTO3BP4vQFRwNZOpPbISsbhfj9RwKwZHe O3lgoCV8+Pp7xH24lPhuSzUoK3xbz7tQq3FNx4HW0MQOcarWDKaEx8R3dnIotRtBL94j e2XBmTqcwZgioQS/Lfxs51KkAC4AWv16dSI83Pb1oVKZ+n6ypnI7uAyJ1WVtu3SxRYJo hLYmfumKeh1T7TDYs9sc54No/l9CnhwKwkVpc+k5E3dwPpBFolLlPj3a4vtzXb/PCgtb 8YRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=YEvxaoySpgG5O4vC9eGC6h2piFMIwxT83zOUcDjltFk=; b=bGQ9pd3jAuL6ckwyaWEoMpb1OFSm+jfyJUqUmOjK7eq0l0GaJYO6bE8dWMzODQcxGl wmSJABPz8UG+JMeAYoDT/PYbnVpqp+snAWpJKMNmhDkP6RGeW+LdzPHHl6dfORm0+A9T 6kpJlbhkc6ViZSMWRrf1UC27BTnBKqHijS36fvQWcoljBhp5G/fiuFF2qk6vN5LRp9eJ GQwbWUTueyccikqqGi2a45s9UwQgVyhVl3If7xoGIpLGzmPO1CIyJJixFSIaOYv2ldvH 12de35Od+hStrfT2vPe48cC6gN9pHcyhLnIsfh7iooTwu4S3bBghL3g5rpZXnJd/6sIM +yTg== X-Gm-Message-State: AA+aEWZNt3XWyhXCLniq+KFRmWDTUc8WYQ+Idcswbea7Ua//0qFYeRgk EWAz8VkxPl74Zc3ncY8vspDjg1RMoNHWc2iMImz7bfNSAmuTu4IcdBHd8fUd5TewjZh0eddBHEi pTwg+4keiRMDZeLGUEMX3AoEuFWz19BuSqOm7m0sb9fPigb4akhZoaw== X-Google-Smtp-Source: AFSGD/VcI3LDM+W6f03bHP0Cg7C20bms7/skxfhfzbmb0iIOiIfxgRpde34rRp67DYNjwZfXSYQw6qI= X-Received: by 2002:a24:a94:: with SMTP id 142mr136843itw.15.1545071190631; Mon, 17 Dec 2018 10:26:30 -0800 (PST) Date: Mon, 17 Dec 2018 10:25:53 -0800 In-Reply-To: <20181217182554.52170-1-sdf@google.com> Message-Id: <20181217182554.52170-6-sdf@google.com> Mime-Version: 1.0 References: <20181217182554.52170-1-sdf@google.com> X-Mailer: git-send-email 2.20.0.405.gbc1bbc6f85-goog Subject: [PATCH bpf-next v2 5/6] selftests/bpf: mark verifier test that uses bpf_trace_printk as BPF_PROG_TYPE_TRACEPOINT From: Stanislav Fomichev To: netdev@vger.kernel.org, ast@kernel.org Cc: davem@davemloft.net, daniel@iogearbox.net, ecree@solarflare.com, quentin.monnet@netronome.com, Stanislav Fomichev Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org We don't have this helper if the kernel was compiled without CONFIG_BPF_EVENTS. Setting prog_type to BPF_PROG_TYPE_TRACEPOINT let's verifier correctly skip this test based on the missing prog_type support in the kernel. Signed-off-by: Stanislav Fomichev --- tools/testing/selftests/bpf/test_verifier.c | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/testing/selftests/bpf/test_verifier.c b/tools/testing/selftests/bpf/test_verifier.c index d267f5248b5d..590bf9a63ad9 100644 --- a/tools/testing/selftests/bpf/test_verifier.c +++ b/tools/testing/selftests/bpf/test_verifier.c @@ -2622,6 +2622,7 @@ static struct bpf_test tests[] = { .errstr_unpriv = "unknown func bpf_trace_printk#6", .result_unpriv = REJECT, .result = ACCEPT, + .prog_type = BPF_PROG_TYPE_TRACEPOINT, }, { "unpriv: pass pointer to helper function", From patchwork Mon Dec 17 18:25:54 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stanislav Fomichev X-Patchwork-Id: 1014668 X-Patchwork-Delegate: bpf@iogearbox.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=google.com header.i=@google.com header.b="ZOePaFHI"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43JV3b70K9z9s6w for ; Tue, 18 Dec 2018 05:26:35 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388970AbeLQS0e (ORCPT ); Mon, 17 Dec 2018 13:26:34 -0500 Received: from mail-qk1-f202.google.com ([209.85.222.202]:43524 "EHLO mail-qk1-f202.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2388966AbeLQS0d (ORCPT ); Mon, 17 Dec 2018 13:26:33 -0500 Received: by mail-qk1-f202.google.com with SMTP id z126so16196274qka.10 for ; Mon, 17 Dec 2018 10:26:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=EvjOKTai9NKV/5Fu50aJbIRT88rmLarmV6NdTqvq8l4=; b=ZOePaFHI2Eq5JPkYFULRTozkXFygZAt4aazwUJ51WGz8U+pap0ENYRoQsjqRMKIjzc QFuj++58BjUAf1tJT0nkNVRoc6pcKAyTuGlx6k6ZnUUbCFqdadvyvDkHb2QqdhD2PsBf B+2W9+fPM8+BLTsq2VXoPWfYU5ygvcXWltoPSgEoxX/RjiM8bJ2BnDIL5kdECjpwidfd 0UrdMlq05P4X3xjDQwJjZG9aPS+KA2Vzy/bAMOUOvfzRNV1HqF33vsDpe1NSgsTuuzoh Kw6lY8ZEpb8/pZAba4dd3/sQLdWxoaunN854UQ6d70eJLZ9/P2MXRh2Ysga8cfCgrluy iMQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=EvjOKTai9NKV/5Fu50aJbIRT88rmLarmV6NdTqvq8l4=; b=X4C848xGuGAe4llOnrDV43nVEYm8CIySozIBn9FlTK5+OP3i9Qi1IgmbA4U9a8n1Jk 4gZrBoIgwXTFInIU57RZdVHfEV9oaEiAqJFUtUm6bvYXebO9Sdh58LwJuI6nAzveBwf/ FFbi8qX4y/q3kBREQTi2WoPpl/RCzsabg5rSFcGd4+5wviLvFlMOXJV47wvy0ByMohdE 6NpkUeQsHe+dmvkYN6AHv2MnZI/C7sP3eA/f0blPmfIr+d+3PBSLSpIv3xN3CAHSlNug T7WdHvN78uk9kEnPweDe7efWGKOnR5gyG/YyIZd5KmALePLno7qgAg6Yrctp40JXk2Wq wMWA== X-Gm-Message-State: AA+aEWbRW3LjxKF1Wpf05AAe5b6Ucz1wJCklA9k4Jm0E8Wh+1FudFcch OKYxS71wIEYR4jGFJMiroq+uva7XeS/gnHd5AcnQKF92xUmBGjNQLJwNZQvGffjsvUigIZjxO6c OunmiRRssz5X+mNQMHUL8/ERenLrICaUzkgUXVgQCazXxRR3eHIlmNQ== X-Google-Smtp-Source: AFSGD/XtqJngQuTVvjT1tsenioJSVV2BXDQapAyMT7aF6QVOZF8q7dLA4xKwoEEonHqcoaCD2mHUAYM= X-Received: by 2002:ac8:2a15:: with SMTP id k21mr15274123qtk.49.1545071193051; Mon, 17 Dec 2018 10:26:33 -0800 (PST) Date: Mon, 17 Dec 2018 10:25:54 -0800 In-Reply-To: <20181217182554.52170-1-sdf@google.com> Message-Id: <20181217182554.52170-7-sdf@google.com> Mime-Version: 1.0 References: <20181217182554.52170-1-sdf@google.com> X-Mailer: git-send-email 2.20.0.405.gbc1bbc6f85-goog Subject: [PATCH bpf-next v2 6/6] bpf: BPF_PROG_TYPE_CGROUP_{SKB, SOCK, SOCK_ADDR} require cgroups enabled From: Stanislav Fomichev To: netdev@vger.kernel.org, ast@kernel.org Cc: davem@davemloft.net, daniel@iogearbox.net, ecree@solarflare.com, quentin.monnet@netronome.com, Stanislav Fomichev Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org There is no way to exercise appropriate attach points without cgroups enabled. This lets test_verifier correctly skip tests for these prog_types if kernel was compiled without BPF cgroup support. Signed-off-by: Stanislav Fomichev --- include/linux/bpf_types.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/linux/bpf_types.h b/include/linux/bpf_types.h index 44d9ab4809bd..08bf2f1fe553 100644 --- a/include/linux/bpf_types.h +++ b/include/linux/bpf_types.h @@ -6,9 +6,11 @@ BPF_PROG_TYPE(BPF_PROG_TYPE_SOCKET_FILTER, sk_filter) BPF_PROG_TYPE(BPF_PROG_TYPE_SCHED_CLS, tc_cls_act) BPF_PROG_TYPE(BPF_PROG_TYPE_SCHED_ACT, tc_cls_act) BPF_PROG_TYPE(BPF_PROG_TYPE_XDP, xdp) +#ifdef CONFIG_CGROUP_BPF BPF_PROG_TYPE(BPF_PROG_TYPE_CGROUP_SKB, cg_skb) BPF_PROG_TYPE(BPF_PROG_TYPE_CGROUP_SOCK, cg_sock) BPF_PROG_TYPE(BPF_PROG_TYPE_CGROUP_SOCK_ADDR, cg_sock_addr) +#endif BPF_PROG_TYPE(BPF_PROG_TYPE_LWT_IN, lwt_in) BPF_PROG_TYPE(BPF_PROG_TYPE_LWT_OUT, lwt_out) BPF_PROG_TYPE(BPF_PROG_TYPE_LWT_XMIT, lwt_xmit)