Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754044AbbHMVFE (ORCPT ); Thu, 13 Aug 2015 17:05:04 -0400 Received: from hall.aurel32.net ([195.154.112.97]:50955 "EHLO hall.aurel32.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752847AbbHMVFB (ORCPT ); Thu, 13 Aug 2015 17:05:01 -0400 X-Greylist: delayed 1323 seconds by postgrey-1.27 at vger.kernel.org; Thu, 13 Aug 2015 17:05:01 EDT Date: Thu, 13 Aug 2015 22:42:46 +0200 From: Aurelien Jarno To: Markos Chandras Cc: linux-mips@linux-mips.org, netdev@vger.kernel.org, "David S. Miller" , Alexei Starovoitov , Daniel Borkmann , Hannes Frederic Sowa , linux-kernel@vger.kernel.org, debian-kernel@lists.debian.org Subject: Re: [PATCH 6/6] MIPS: net: BPF: Introduce BPF ASM helpers Message-ID: <20150813204246.GA24857@aurel32.net> Mail-Followup-To: Markos Chandras , linux-mips@linux-mips.org, netdev@vger.kernel.org, "David S. Miller" , Alexei Starovoitov , Daniel Borkmann , Hannes Frederic Sowa , linux-kernel@vger.kernel.org, debian-kernel@lists.debian.org References: <1433415376-20952-1-git-send-email-markos.chandras@imgtec.com> <1433415376-20952-7-git-send-email-markos.chandras@imgtec.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1433415376-20952-7-git-send-email-markos.chandras@imgtec.com> User-Agent: Mutt/1.5.23 (2014-03-12) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2435 Lines: 53 On 2015-06-04 11:56, Markos Chandras wrote: > This commit introduces BPF ASM helpers for MIPS and MIPS64 kernels. > The purpose of this patch is to twofold: > > 1) We are now able to handle negative offsets instead of either > falling back to the interpreter or to simply not do anything and > bail out. > > 2) Optimize reads from the packet header instead of calling the C > helpers > > Because of this patch, we are now able to get rid of quite a bit of > code in the JIT generation process by using MIPS optimized assembly > code. The new assembly code makes the test_bpf testsuite happy with > all 60 test passing successfully compared to the previous > implementation where 2 tests were failing. > Doing some basic analysis in the results between the old > implementation and the new one we can obtain the following > summary running current mainline on an ER8 board (+/- 30us delta is > ignored to prevent noise from kernel scheduling or IRQ latencies): > > Summary: 22 tests are faster, 7 are slower and 47 saw no improvement > > with the most notable improvement being the tcpdump tests. The 7 tests > that seem to be a bit slower is because they all follow the slow path > (bpf_internal_load_pointer_neg_helper) which is meant to be slow so > that's not a problem. > > Cc: netdev@vger.kernel.org > Cc: "David S. Miller" > Cc: Alexei Starovoitov > Cc: Daniel Borkmann > Cc: Hannes Frederic Sowa > Cc: linux-kernel@vger.kernel.org > Signed-off-by: Markos Chandras > --- > I have uploaded the script and the bpf result files in my LMO webspace > in case you want to have a look. I didn't paste them in here because they > are nearly 200 lines. Simply download all 3 files and run './bpf_analysis.py' This patch relies on R2 instructions, and thus the Linux kernel fails to build when targetting non-R2 CPUs. See for example: https://buildd.debian.org/status/fetch.php?pkg=linux&arch=mipsel&ver=4.2%7Erc6-1%7Eexp1&stamp=1439480000 -- Aurelien Jarno GPG: 4096R/1DDD8C9B aurelien@aurel32.net http://www.aurel32.net -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/