From patchwork Wed May 15 13:47:26 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krzesimir Nowak X-Patchwork-Id: 10944831 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 336711395 for ; Wed, 15 May 2019 13:48:26 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 22B29289D7 for ; Wed, 15 May 2019 13:48:26 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 172A028A48; Wed, 15 May 2019 13:48:26 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B957F28A5B for ; Wed, 15 May 2019 13:48:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727892AbfEONsZ (ORCPT ); Wed, 15 May 2019 09:48:25 -0400 Received: from mail-wm1-f67.google.com ([209.85.128.67]:50675 "EHLO mail-wm1-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727857AbfEONsZ (ORCPT ); Wed, 15 May 2019 09:48:25 -0400 Received: by mail-wm1-f67.google.com with SMTP id f204so131218wme.0 for ; Wed, 15 May 2019 06:48:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kinvolk.io; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=p5yzJN+uQCvOHSSRz2qO10uSVTsd9TOZD2wH8snlydI=; b=iMDh53PLA//kuvDf60EoF5DO6lg5ZOFCwCIEm72JxVyO2HvdX0hdLeE/BfiaT9mplr ICKoDR6mmjODIZ6bHtnZxksT56RhBAJU/9jN5ZetIHshOM1e4ttrczjlifK1UGJYxlZn PAM+x/7SXvHl/NrKuZqmda+p4PRbSQWgZbXEQ= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=p5yzJN+uQCvOHSSRz2qO10uSVTsd9TOZD2wH8snlydI=; b=ituTN/wu2EMBXKK2v8dgUkPXyyUy6+6fCORWFgVTvRjH1KV7Qu6IFzsyG5bRWUp2/+ wkA6mrwNLhznfKeGOjxv+qCzhEzkpTSb7W+PkkaCDtBB+Y957mUAd5q9FTIbyO19yzi8 PjPE7eZKeuDzJeAAfJ/dhslXSe9IzEEh4f7bmmhPSXJ0Te/VfUOoq8k9vQAAGuEqM2Ki 1CxQ01hgKRfixhpKHLkr1K98pHkp6DUcTeQETu9QgXp2GWH4tfmkSRY8Rg0teYumMcbd h/Duftg5w1eMhMaoyc1NgA4BpwXEs1LFnMk7IMVmfEeE8SCVJDncoObV8deeJB3WyzXf Ou1A== X-Gm-Message-State: APjAAAU/sVnYTiyyV46Ctac9l+4LMNbo66WTBb1MK5e+j8dS56TPeQrI kZ3rV97AI7K1hws+ScyWz7SqkQ== X-Google-Smtp-Source: APXvYqzWjGrtCnZ493pnT5MtkPv074A0nEYcFLTFgf/9DkbA6WOseK1zVOlUxJOJDyZDwxQ8ZnP01w== X-Received: by 2002:a7b:c549:: with SMTP id j9mr823322wmk.114.1557928103209; Wed, 15 May 2019 06:48:23 -0700 (PDT) Received: from localhost.localdomain (ip5f5aea35.dynamic.kabel-deutschland.de. [95.90.234.53]) by smtp.gmail.com with ESMTPSA id v5sm4498506wra.83.2019.05.15.06.48.22 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 15 May 2019 06:48:22 -0700 (PDT) From: Krzesimir Nowak To: bpf@vger.kernel.org Cc: iago@kinvolk.io, alban@kinvolk.io, Krzesimir Nowak , Shuah Khan , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Song Liu , Yonghong Song , Andrey Ignatov , Jiong Wang , Jakub Kicinski , linux-kselftest@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH bpf v1 1/3] selftests/bpf: Test correctness of narrow 32bit read on 64bit field Date: Wed, 15 May 2019 15:47:26 +0200 Message-Id: <20190515134731.12611-2-krzesimir@kinvolk.io> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190515134731.12611-1-krzesimir@kinvolk.io> References: <20190515134731.12611-1-krzesimir@kinvolk.io> MIME-Version: 1.0 Sender: linux-kselftest-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kselftest@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Test the correctness of the 32bit narrow reads by reading both halves of the 64 bit field and doing a binary or on them to see if we get the original value. This isn't really tested - the program is not being run, because BPF_PROG_TYPE_PERF_EVENT is not supported by bpf_test_run_prog. Signed-off-by: Krzesimir Nowak --- tools/testing/selftests/bpf/verifier/var_off.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/tools/testing/selftests/bpf/verifier/var_off.c b/tools/testing/selftests/bpf/verifier/var_off.c index 8504ac937809..2668819dcc85 100644 --- a/tools/testing/selftests/bpf/verifier/var_off.c +++ b/tools/testing/selftests/bpf/verifier/var_off.c @@ -246,3 +246,18 @@ .result = ACCEPT, .prog_type = BPF_PROG_TYPE_LWT_IN, }, +{ + "32bit loads of a 64bit field (both least and most significant words)", + .insns = { + BPF_LDX_MEM(BPF_W, BPF_REG_4, BPF_REG_1, offsetof(struct bpf_perf_event_data, sample_period)), + BPF_LDX_MEM(BPF_W, BPF_REG_5, BPF_REG_1, offsetof(struct bpf_perf_event_data, sample_period) + 4), + BPF_LDX_MEM(BPF_DW, BPF_REG_6, BPF_REG_1, offsetof(struct bpf_perf_event_data, sample_period)), + BPF_ALU64_IMM(BPF_LSH, BPF_REG_4, 32), + BPF_ALU64_REG(BPF_OR, BPF_REG_4, BPF_REG_5), + BPF_ALU64_REG(BPF_XOR, BPF_REG_4, BPF_REG_6), + BPF_MOV64_REG(BPF_REG_0, BPF_REG_4), + BPF_EXIT_INSN(), + }, + .result = ACCEPT, + .prog_type = BPF_PROG_TYPE_PERF_EVENT, +}, From patchwork Wed May 15 13:47:27 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krzesimir Nowak X-Patchwork-Id: 10944835 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 125991395 for ; Wed, 15 May 2019 13:48:44 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 037ED289D7 for ; Wed, 15 May 2019 13:48:44 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id EBCBD28A78; Wed, 15 May 2019 13:48:43 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 97D32289D7 for ; Wed, 15 May 2019 13:48:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727992AbfEONsa (ORCPT ); Wed, 15 May 2019 09:48:30 -0400 Received: from mail-wm1-f65.google.com ([209.85.128.65]:50679 "EHLO mail-wm1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727967AbfEONs3 (ORCPT ); Wed, 15 May 2019 09:48:29 -0400 Received: by mail-wm1-f65.google.com with SMTP id f204so131521wme.0 for ; Wed, 15 May 2019 06:48:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kinvolk.io; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=/4wFlx6HQLwkFDpRpijpjb+LCC4DqiZp6fdw5d4Bn0s=; b=D9xP2BubzEPMEBtp4A/REzzwHzsxPmnZZGeY2xY/f1+7/kcqWbosB7HhgK4rfNY63G rKonLvKxUHvdwCOEopEm/AVUNntJh2b6OOJzQgr4da6zbmppPX8HlkfDYipmSNtOAqWE 3HIdf2UETubgofhYaek5zlB3hweliaucMnXKk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=/4wFlx6HQLwkFDpRpijpjb+LCC4DqiZp6fdw5d4Bn0s=; b=W8uVf0t1xEMudNCtpSuFfj3MZoKgSjsdjRiDzP/0u6EmhJdo2dAcxvZi31R+4HQpkH EYKt4bCdLVa3Y8r6UtvP01HL9BaUJ+UkIffEvxQ1QfOVlOANvxIiXrPlsfI6oXi3Idxy SgX2uHT/XjU6KCigDqZt0p1qWKWLaTHLChLfkPm4XKuaXpcPs3YTv3lO2BGL1xcockmu bZWwgkI9VnMEWgvkJRlStG64pT7RtUX6SqvDHQiunzxGHfePbGaIIS1fIrTiDEpH4t8h YG1YWUbFDeI34HAx+SZZCkkGymyaSmqu8C4kDMJe0KktkxehEQAs+ILBqsKkgzSsnEXA 0luA== X-Gm-Message-State: APjAAAXGn3/Qasen0a7IG8mWQDlODVk+5YQhNtKNX01oNd/bmgwdYRUz x1LUlp0mZ/3T2IXFdP4ILo5HSA== X-Google-Smtp-Source: APXvYqwpuCIcSe7tEpjLLIyvs2sBphmsdGB5DWnT0DsJKq+gtI+0iDk2r07JPa/i5V9zFjAc1hfA9A== X-Received: by 2002:a1c:1f0d:: with SMTP id f13mr3449718wmf.74.1557928107896; Wed, 15 May 2019 06:48:27 -0700 (PDT) Received: from localhost.localdomain (ip5f5aea35.dynamic.kabel-deutschland.de. [95.90.234.53]) by smtp.gmail.com with ESMTPSA id v5sm4498506wra.83.2019.05.15.06.48.26 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 15 May 2019 06:48:27 -0700 (PDT) From: Krzesimir Nowak To: bpf@vger.kernel.org Cc: iago@kinvolk.io, alban@kinvolk.io, Krzesimir Nowak , Shuah Khan , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Song Liu , Yonghong Song , Andrey Ignatov , Jakub Kicinski , linux-kselftest@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH bpf v1 2/3] selftests/bpf: Print a message when tester could not run a program Date: Wed, 15 May 2019 15:47:27 +0200 Message-Id: <20190515134731.12611-3-krzesimir@kinvolk.io> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190515134731.12611-1-krzesimir@kinvolk.io> References: <20190515134731.12611-1-krzesimir@kinvolk.io> MIME-Version: 1.0 Sender: linux-kselftest-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kselftest@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP This prints a message when the error is about program type being not supported by the test runner or because of permissions problem. This is to see if the program we expected to run was actually executed. The messages are open-coded because strerror(ENOTSUPP) returns "Unknown error 524". Signed-off-by: Krzesimir Nowak --- tools/testing/selftests/bpf/test_verifier.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/bpf/test_verifier.c b/tools/testing/selftests/bpf/test_verifier.c index ccd896b98cac..bf0da03f593b 100644 --- a/tools/testing/selftests/bpf/test_verifier.c +++ b/tools/testing/selftests/bpf/test_verifier.c @@ -825,11 +825,20 @@ static int do_prog_test_run(int fd_prog, bool unpriv, uint32_t expected_val, tmp, &size_tmp, &retval, NULL); if (unpriv) set_admin(false); - if (err && errno != 524/*ENOTSUPP*/ && errno != EPERM) { - printf("Unexpected bpf_prog_test_run error "); - return err; + if (err) { + switch (errno) { + case 524/*ENOTSUPP*/: + printf("Did not run the program (not supported) "); + return 0; + case EPERM: + printf("Did not run the program (no permission) "); + return 0; + default: + printf("Unexpected bpf_prog_test_run error "); + return err; + } } - if (!err && retval != expected_val && + if (retval != expected_val && expected_val != POINTER_VALUE) { printf("FAIL retval %d != %d ", retval, expected_val); return 1; From patchwork Wed May 15 13:47:28 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Krzesimir Nowak X-Patchwork-Id: 10944833 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 6D8D81515 for ; Wed, 15 May 2019 13:48:41 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 5BDE1289EC for ; Wed, 15 May 2019 13:48:41 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 505EB289F5; Wed, 15 May 2019 13:48:41 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DBAC2289EC for ; Wed, 15 May 2019 13:48:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728126AbfEONse (ORCPT ); Wed, 15 May 2019 09:48:34 -0400 Received: from mail-wr1-f68.google.com ([209.85.221.68]:46181 "EHLO mail-wr1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728055AbfEONse (ORCPT ); Wed, 15 May 2019 09:48:34 -0400 Received: by mail-wr1-f68.google.com with SMTP id r7so2736797wrr.13 for ; Wed, 15 May 2019 06:48:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kinvolk.io; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=C8C9qQrgN+nbsH+pjHzl6tlp7Nc6h5TeMF/8muSLzN0=; b=bb0wfX8/WrYuGLUAmDRcNpnd3bhxH6w7/sgCZ8Drhn8KHryZFCL75wztrn3JWWAnVM R0QfBsa9kVPuPPY8Fl3RqZexz2P73kISAhhEJg2Zjo9RldS3sYnWT3YAgPUYR6zk1OcB 73vtRKTT1JAauCFk9RwePECbqyDWlwQzdCSck= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=C8C9qQrgN+nbsH+pjHzl6tlp7Nc6h5TeMF/8muSLzN0=; b=XZ8TzedKXWMtIJL2enZpGAtRFyrVOd7+fof/94giVffTi1g3Umzvy7DlLfLP0Ba9dv feLMGoU+qP2Kdx1xorM4ukTxqpVSeKsCdNzCoVwSvquAPegtkGCeMnMqvcQqEKjyvUMg 0RMw7Te26QUfZFf56q/NNT+h5lxohfOmEHE4+iSmBskNStp5YDnv2sa8qjypSwd7yrTD N/KcpBTMDwQCNhgtvzBJKJC+Rr5S9jgdgAw3bc+IwggFgGreV6GvSxKxTWOnGwPIvgKj m6R10DbiJEEwuKsQFSwUcZer9EL7lBauu2ZqHXw5wSOhSzr1ImYLs431R/CcYVhtvrkM Pt3w== X-Gm-Message-State: APjAAAWSIPXQEZATA3KVbXspDnZTcouOJcMAiOseWbOi22YB8db+fKPU j+dCrnwsZK4pLl0tVAhh6xH3Cg== X-Google-Smtp-Source: APXvYqw5wECdzlZCofc+dCbXApCTq0fMDCETyET6YAJzK0hcDDptniDy4A+BRGyfphuaB3WidJzFwQ== X-Received: by 2002:adf:cc8d:: with SMTP id p13mr13698244wrj.114.1557928112220; Wed, 15 May 2019 06:48:32 -0700 (PDT) Received: from localhost.localdomain (ip5f5aea35.dynamic.kabel-deutschland.de. [95.90.234.53]) by smtp.gmail.com with ESMTPSA id v5sm4498506wra.83.2019.05.15.06.48.31 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Wed, 15 May 2019 06:48:31 -0700 (PDT) From: Krzesimir Nowak To: bpf@vger.kernel.org Cc: iago@kinvolk.io, alban@kinvolk.io, Krzesimir Nowak , Jakub Kicinski , Shuah Khan , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Song Liu , Yonghong Song , Andrey Ignatov , Jiong Wang , linux-kselftest@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH bpf v1 3/3] selftests/bpf: Avoid a clobbering of errno Date: Wed, 15 May 2019 15:47:28 +0200 Message-Id: <20190515134731.12611-4-krzesimir@kinvolk.io> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190515134731.12611-1-krzesimir@kinvolk.io> References: <20190515134731.12611-1-krzesimir@kinvolk.io> MIME-Version: 1.0 Sender: linux-kselftest-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kselftest@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP Save errno right after bpf_prog_test_run returns, so we later check the error code actually set by bpf_prog_test_run, not by some libcap function. Cc: Jakub Kicinski Fixes: 5a8d5209ac022 ("selftests: bpf: add trivial JSET tests") Signed-off-by: Krzesimir Nowak --- tools/testing/selftests/bpf/test_verifier.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/tools/testing/selftests/bpf/test_verifier.c b/tools/testing/selftests/bpf/test_verifier.c index bf0da03f593b..514e17246396 100644 --- a/tools/testing/selftests/bpf/test_verifier.c +++ b/tools/testing/selftests/bpf/test_verifier.c @@ -818,15 +818,17 @@ static int do_prog_test_run(int fd_prog, bool unpriv, uint32_t expected_val, __u32 size_tmp = sizeof(tmp); uint32_t retval; int err; + int saved_errno; if (unpriv) set_admin(true); err = bpf_prog_test_run(fd_prog, 1, data, size_data, tmp, &size_tmp, &retval, NULL); + saved_errno = errno; if (unpriv) set_admin(false); if (err) { - switch (errno) { + switch (saved_errno) { case 524/*ENOTSUPP*/: printf("Did not run the program (not supported) "); return 0;