From patchwork Wed May 24 23:35:49 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Daney X-Patchwork-Id: 766725 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3wY80r0q1Kz9s0g for ; Thu, 25 May 2017 09:36:12 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=CAVIUMNETWORKS.onmicrosoft.com header.i=@CAVIUMNETWORKS.onmicrosoft.com header.b="lnEgqAXR"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1033400AbdEXXf7 (ORCPT ); Wed, 24 May 2017 19:35:59 -0400 Received: from mail-sn1nam01on0056.outbound.protection.outlook.com ([104.47.32.56]:11958 "EHLO NAM01-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S932158AbdEXXf5 (ORCPT ); Wed, 24 May 2017 19:35:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=TPgkpJr3bXv25S7U6B+lR+Bq6v23hMIIDExenA0DhSQ=; b=lnEgqAXR5t3nSu4YYETg3Ro7xCDQHRWmZN0t0igjX3X9VCM0n8c+RBgRP46jKW8sQvvoQIkCdWxXEMCa0g0E8nx5w0URD2G5qVjSk4NGwjLOXVbISl5swETzxZm7Irxqffo8skF66Qz/x/zYQ8RphY0wxpk4jWggP6hGRyDU66M= Authentication-Results: kernel.org; dkim=none (message not signed) header.d=none; kernel.org; dmarc=none action=none header.from=cavium.com; Received: from ddl.caveonetworks.com (50.233.148.156) by CY4PR07MB3496.namprd07.prod.outlook.com (10.171.252.153) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1124.9; Wed, 24 May 2017 23:35:53 +0000 From: David Daney To: Alexei Starovoitov , Daniel Borkmann , netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: David Daney Subject: [PATCH] test_bpf: Add a couple of tests for BPF_JSGE. Date: Wed, 24 May 2017 16:35:49 -0700 Message-Id: <20170524233549.18388-1-david.daney@cavium.com> X-Mailer: git-send-email 2.9.4 MIME-Version: 1.0 X-Originating-IP: [50.233.148.156] X-ClientProxiedBy: DM2PR07CA0037.namprd07.prod.outlook.com (10.141.52.165) To CY4PR07MB3496.namprd07.prod.outlook.com (10.171.252.153) X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CY4PR07MB3496: X-MS-Office365-Filtering-Correlation-Id: 66562856-cd98-4420-964a-08d4a2fd9eea X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001)(201703131423075)(201703031133081); SRVR:CY4PR07MB3496; X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3496; 3:QXnhCXSS3i7sKHm5uL1JKwd5svVBEUYrOUQXA7Q++lwaOlM+BEngHmNgOCQyfoJJmYGa6ZqK9VrDcAqLk+jPH7Vhct3FAzyFYkVk1gNcJe4kbfZwe9THgr1ewlw3quQFHcF4xKI4hymVzYy1nL+n6uUJQPbIScllRfqYRgbf6bFgSjF3uEfp+ExSJjRCgWqGbrS2aLpUXMXUz7JcF9WjtGraDULssFhwdbezoO9+t8tPB1RZpsnB335wsBpIaGnOIdnklqZo4veO0L8rSswm55CKSYW/Th3SXCkkHT6L04bo8DtqETYtGngU1uwH7O4WG+7EkLRR1WZUh1He3YtayQ==; 25:j3p5SbeJbyTedxjyTzKoJxIBbdDIX0KWfMRs/gmsimTnk6w64Z5y+yTsSKfThYocHm4KTsFle0xPQiostx/XYMSLLDqxKsve3yAK7Z8V6QaTUs3JkQa072D8n0ap7/qS0CvBOac5YQqpriFoZb+YbBGzSl8YT+Hexzmvkvxd6tnS+4w6A9GK7fkzG7+sbnJ0k8oBTGZ/yGUo6pmBVSMsbmnpmv5Z2N5I8pABv39sVqhtAxT261F91vy4m+JDJ9fS4Qyq7nM8xd9CBHKqli9diKOVgw8sDyj3WF6ce6UIfNnRRv3frfTGej+SDCsxvDLmqlXZ4evjPf+ezN7F5hz67h1u3V6rg2b28EQTubPSjFUM9rum/LU3eQLesBJu4YzeaaqVenaSacVphx4UUTbkA2toauqTIj5g0JUGpn6hfFL02w8PcP5FPxuZBt+nmBVcUuu9DzbYKo1IygTeYCJJ3Z36mg5pdcAqa+e4vCHEPEw= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3496; 31:HQ9q3uepn37CY/x4vBHjCk3J2WVu3DEp43yOH/jkvscMwl5ektDmKhfewxNO8XsHLNw/ezwlcXsorPc65M0oWo/ezQBuEm5Sg+3xqu1cvPCz81AMLY3SoyTWngYMqf/oPyrUorPuQmi/XiDuwe96FzVYnn1wla1ZrF7IQ9RAN5pJ7Pjk7gSgP/53AM+GjmRc9bVYDlnnuwtmLRmPZ2c+1DuVBeYGNJpsiMGNql93f5U=; 20:/2xRrsGA5fdrQja5aRFmxU+SNrQjvTyHfNE1HPiMkCnvtbFXhloSDOTrMOoeePHd4451W6XZip81iN/Srwi7NzPE03kY1sr5GAxuC/aYg4y1//yELWE/iNnSyuBHerDWSM1VC7EtYA1CK1QpISZnyVUmIoq6adlK4HTChV8xY1sOClQdCV9DFwFN+o/WkUAyTmoY7QYIXgjm5VbQv250A1kcoyzg2HSSoH3tEHaUHSbjVWtr+uCj6bVoRdfcBnYH8q9JNharwmUmiVU7l9ZLps+uYp/+MqIu3VS1GvH7AOs/Gdt4CbUSMsRcwanMtlvnlPp4JjjyQzygTLwqTzExNuQs18sJLTCKpaeJB4Ytpg7rG4k4onveieHta8ucMWb1M0v44e/eH0iiUKNe3VIuBN1bk+gHa5fVOivAVZa5IK/s1wUcbI2C4iFOWD3f50xFogRbOGBsoajCeTB5/seUJJnr1FRtjASWAZRJRQ4tM4jxJtq/97suzZp7HVukPSyV X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(6041248)(20161123564025)(20161123562025)(20161123555025)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(6072148); SRVR:CY4PR07MB3496; BCL:0; PCL:0; RULEID:; SRVR:CY4PR07MB3496; X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3496; 4:91Jk9nRxpQnYTqkgDlwOsr58deAaUGCa1BXIVp++f5ZaDCyLMrqu29d4fcn6VGNmNO1EszAs5PC+fr4UaOI8hk7fnG4CSjwf6hubhYzNyaRj9RqDOMukz7uIZJDcaEADarbhbY0N3jSppoAZCiD7w7hiNsV0ryzZ2Th3Tj5IjlryG9aofRR6scVQWyamny14YNfRJfiYRu1n7uhpbGOnsvdw9gwsHg5HuOguMfrkAClDh1u7lgsdoYooFMGOZ5I7LSEU5Wg1iiG6ZaupUBM430mBiqlSf41eF3c4nFOGKNcxsQzL/wv8Pu8CUCtpjw5FwNgUVHdYt3xWGdyoVt9T6RcElOd1Z/JvIF+VMdruai6QLwEcVZMRldfiUalAu7lJuEZrQpNNB1ixA6INhmI/kpX3c8WvWBzhpMyesSQH7T1pRyb2sO+ioK8uyi+LZClmByaVE7MRdo9ZuVqJyKv6V4EeLvAuD9LjqgH2dOm9MA+3EU+eetEWo9/dN/SjzEW6SN8gQQOBN1e+/s1bYhpwZ0ZJSE+2DLWSxqsmifRBl6gCpMT6fUjVnULdh4grxtO6XUbnd3Xa7yJn2KyfHB7j0jiWQAwNi9eSoZAx0rHrwLPMKvgbt1rSQYy5ge+NV6TmufCJ5ikp/0rup9UocDH5A1fdygvF7MHJdrscOR2b/xGL58DxEsmzo7lwF640vNp67cXQ4RpcDeqzSsl3H28+cwlnovnHznk/IjoWuSKT2Yd681/Vf4bko58ttgQP4tWPh6TtN7QJOY4baLwPWSf8yLZZyFBHybxyawhvm24bMDE= X-Forefront-PRVS: 031763BCAF X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(39850400002)(39400400002)(39410400002)(39840400002)(39450400003)(8676002)(6486002)(50226002)(53936002)(50466002)(48376002)(5003940100001)(189998001)(5660300001)(3846002)(6506006)(6116002)(81166006)(36756003)(6512007)(1076002)(86362001)(6666003)(53416004)(66066001)(4326008)(25786009)(50986999)(42186005)(305945005)(107886003)(7736002)(47776003)(2906002)(478600001)(38730400002)(33646002)(72206003); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3496; H:ddl.caveonetworks.com; FPR:; SPF:None; MLV:sfv; LANG:en; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3496; 23:mBjx++AmYJTJXWyHebx8KD95U+0IPF9Ha3k+sqTg/?= =?us-ascii?Q?ub8Robf9RHU0o+TFC6QCiiZo0KyUC0JRMe4/qxZJFC3+xTvq6kSEzu9RUQiU?= =?us-ascii?Q?4vbfUnRERsu3c/nkj6XuTPj4gPaj1YL+VAyvtz9R26WpdV88oFByxWJ6jJH/?= =?us-ascii?Q?rS8+MEGjz99MGvKbYAJJjVJ3PAlBVLQijtR17D99zeugVHOP+kKFW98aiceL?= =?us-ascii?Q?7NtMVL4l7NRyNiZULZ3FJvsdz+3jDwljOxDNXSrQlLaFRW6bDsBxOVStJF8s?= =?us-ascii?Q?jVq67wxIkPrfnAk0W1zCpC+q0AzQ336BTdzPIv7tHomaBBIR1cORZ9AW8wf0?= =?us-ascii?Q?ZrWNj2CkuVIcSAZWQVN0jHITdSLPqS3891x6vDr/PCx5XK/Yqj1PYXeI3Lnk?= =?us-ascii?Q?uxb9HfWGGSTvXPKvpfZlTKRKG8ix88igsC6YQc3ZwkM/6r7FPBR/W6INLybj?= =?us-ascii?Q?2wzYXjpxcD53S2GhGjb+nLTrk8cB7489IWzq/+uXtCO3cNa4yGqNuLQRL8XT?= =?us-ascii?Q?T6hGXcTtE5FoHfef5FSJoWIWwDIe3OofMGwIxv62cO98nQdrCYDG5Dm70FAX?= =?us-ascii?Q?d2aI/asOJwrkodoPhyvGKlBtR2F2L+lBgYPiib1SqnslZKvgC4a80xNZ38Nv?= =?us-ascii?Q?IYQTpiZE8CsCtk1kKiku1Lsmjqy+pTsMJ+8Ic8gGPzCE3pCONqVkmQw+CflC?= =?us-ascii?Q?9N6ep5+cNt+u6NJtZSSBJjp03efTHa1LqLuxwOufdthA/3DgvkSw0pwiDdai?= =?us-ascii?Q?8Zs9WHWT5AetotxPvcVz8vhicLj2/4t1XH4dHLuzPKYQ24CcJyae94HQ7xbj?= =?us-ascii?Q?mGcjHIFXmMAmPB7shcUhaTxxPHLV/PJhqSm0iHykUQ5FJQr4XRLVj9n3arqG?= =?us-ascii?Q?Krtn5A32CvpQDq8VsINWsP+4fhVupjCdoY5LzGZsoScnuKG6CX3rMBCzI4Va?= =?us-ascii?Q?wp7F4kFuV9Cd8R32HbMxhT22llrgneJHgx/TvefniXrDeDC2/0Zu2hvR7oFp?= =?us-ascii?Q?gOFlTAauZ3xuzS4kH3Kyt+7zRSSuNiFAQiUF1CmaWml5w=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3496; 6:LhVLT1ksE2/ZKFsWPFglMxPk/52htljjBGVhs3yo9pxhUPIj3wm/K4zqml65wKEQBPqNn34/Cu5IQTXWr80Wl7IguJbzKJrykMFxgQs5q89E+zGg0nMGU/RK/lhrnZGsr6yj6mzTQTJoseilQWYzWgkUO2sZJ2LVxvYeFUbFnRg6vszO01vKvh4ZSHoGEh4eMgaADzdjz5U+wez7EXJM+GjHWwdFvT7LJh9Rl8JGEyoB36jSut4QAT+IGrAtb6u59VjBJGHnRwZ3ytk9hX6G5457qnENNPEbMdR+s1ABR4Jlor4NbEgvum877j28xGGC+sR/HEPPkkKOZKJ4EADqjMz57Z9bnt1gIohHO5tiKRzRXNy9WVA4pQWXwmuKDZuliJJcMDhhYRYnW+m/zzxXI5To6mbxo1+CttgdiEGDGILc4OP0aJ1Q3CyhdKaNSx1FEg/9kzIwyf0doeQyjJgIhK9Kl+Qdg0cZQ9STQ2byjeUQ6f/S7xwAv0yk3yJQA/97jppm1hmiXHzyebFqIgFp8A==; 5:zpZkNl497EYwPP/0MAqXbg/e2U5au4LfcXeCfvpQci2NZ9ebnR6jswB+WOcOwCWthhePCQ5S+JZj0ZZVYnKDgU3s+hn9ZVt9ZTXb+weCqrDF0lmBXPunjdI6cq7ZyEfIT0jwbhuwhqLGKo9+4A97xga+CKZGoygF1tHO0RS+hsY=; 24:+OE8V84A4WaJBCJ+yx2D+WSc2c7mgK7H6muceTwTOqf9C3weEZ/LxHr7SaoHkDL1k78Pa8ENgU0bTNlwoEWGIuEfyXtAmXwCMfVBDm27HL8= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3496; 7:2uM29P8CokC0I81d8eTZM7Fbd83tZ1E0taANX+qip/duMFzREaPLEuZvd6Eg7bRKpB5UCmtjT/9c3EQdMMeUIfYyPWHq4D7aWL9rMkC1wXDYuX0mW45m0o3VYEPWenjBsGlslpROqFGv4oTD6cwFVImlsyC/jQQZRcBV9hzdT920bJG5yWA3Yl3ORK0WtN8V1u2ubbROu3Bzw3xUdDTu3YUXyyULz2M7lSrIthmK4EOaVt2z4qZqx+CjNdZ8iNOUrn0FZlQeM/HJBNyfgqOmsy7/Axci+tWNXGvawp3p7SxfGo+IVfVQs1EeBcA9ErigBFhBsYiVpILVDQs3ebfAQQ== X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 May 2017 23:35:53.8307 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB3496 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Some JITs can optimize comparisons with zero. Add a couple of BPF_JSGE tests against immediate zero. Signed-off-by: David Daney Acked-by: Daniel Borkmann --- lib/test_bpf.c | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/lib/test_bpf.c b/lib/test_bpf.c index 889bc31..be88cba 100644 --- a/lib/test_bpf.c +++ b/lib/test_bpf.c @@ -4504,6 +4504,44 @@ static struct bpf_test tests[] = { { }, { { 0, 1 } }, }, + { + "JMP_JSGE_K: Signed jump: value walk 1", + .u.insns_int = { + BPF_ALU32_IMM(BPF_MOV, R0, 0), + BPF_LD_IMM64(R1, -3), + BPF_JMP_IMM(BPF_JSGE, R1, 0, 6), + BPF_ALU64_IMM(BPF_ADD, R1, 1), + BPF_JMP_IMM(BPF_JSGE, R1, 0, 4), + BPF_ALU64_IMM(BPF_ADD, R1, 1), + BPF_JMP_IMM(BPF_JSGE, R1, 0, 2), + BPF_ALU64_IMM(BPF_ADD, R1, 1), + BPF_JMP_IMM(BPF_JSGE, R1, 0, 1), + BPF_EXIT_INSN(), /* bad exit */ + BPF_ALU32_IMM(BPF_MOV, R0, 1), /* good exit */ + BPF_EXIT_INSN(), + }, + INTERNAL, + { }, + { { 0, 1 } }, + }, + { + "JMP_JSGE_K: Signed jump: value walk 2", + .u.insns_int = { + BPF_ALU32_IMM(BPF_MOV, R0, 0), + BPF_LD_IMM64(R1, -3), + BPF_JMP_IMM(BPF_JSGE, R1, 0, 4), + BPF_ALU64_IMM(BPF_ADD, R1, 2), + BPF_JMP_IMM(BPF_JSGE, R1, 0, 2), + BPF_ALU64_IMM(BPF_ADD, R1, 2), + BPF_JMP_IMM(BPF_JSGE, R1, 0, 1), + BPF_EXIT_INSN(), /* bad exit */ + BPF_ALU32_IMM(BPF_MOV, R0, 1), /* good exit */ + BPF_EXIT_INSN(), + }, + INTERNAL, + { }, + { { 0, 1 } }, + }, /* BPF_JMP | BPF_JGT | BPF_K */ { "JMP_JGT_K: if (3 > 2) return 1",