From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wg0-f52.google.com (mail-wg0-f52.google.com [74.125.82.52]) by dpdk.org (Postfix) with ESMTP id A41B6594E for ; Thu, 12 Mar 2015 08:54:46 +0100 (CET) Received: by wggz12 with SMTP id z12so14513885wgg.0 for ; Thu, 12 Mar 2015 00:54:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:sender:date:message-id:subject:from:to:content-type; bh=06QUgUGP8+agksyYY9uZrTvfMZj4R8RbiqdJy9TcIyY=; b=uXE8tTAUlKnUgR5xbL4ai/hO1lPfSIdIy9PLbLZSQiGuBOomnV1zOR7Zibp6fvRtvp DnN+NkFG/j9rQ1AMwrW0sXseqsx/y3+Y0JcjYYf+5RKXxax+8SsEWoaosQ6NW8OoZGnv ohHM9eLm1UH0jk5m9yKbSne4uHFNZ7avQXmiK8BJzq5PZ79kk3w2V8/grI8WQh29Gw6r e6NwpAnHfeQWCQl2S4d6WIeguyVev+/V2lK/Lk7STrpyl1fSI48zgxudBc7GsjvDorbt xx8Ok7p8ceIEwPHQPlx59ySmWCCGmzR+aeBxe5BGwd7hsce26AeqNT99MCommQxZ86iZ Gmmg== MIME-Version: 1.0 X-Received: by 10.194.57.170 with SMTP id j10mr11068137wjq.102.1426146886516; Thu, 12 Mar 2015 00:54:46 -0700 (PDT) Sender: lukego@gmail.com Received: by 10.27.217.3 with HTTP; Thu, 12 Mar 2015 00:54:46 -0700 (PDT) Date: Thu, 12 Mar 2015 08:54:46 +0100 X-Google-Sender-Auth: toVBJD808NCwYUAsw5qZPiPaw3M Message-ID: From: Luke Gorrie To: "dev@dpdk.org" Content-Type: text/plain; charset=UTF-8 X-Content-Filtered-By: Mailman/MimeDel 2.1.15 Subject: [dpdk-dev] SIMD checksum X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 12 Mar 2015 07:54:46 -0000 Howdy, I am writing to share some SIMD (SSE2 and AVX2) IP checksum routines. The commit log for rte_ip.h said that this was an area of future interest for DPDK. Code: https://github.com/lukego/snabbswitch/blob/ipchecksum-simd/src/lib/checksum.c Feedback welcome. We are currently reviewing and integrating this ourselves. Great if it is of use to other people too. The performance seems to be better and I see this as very valuable for reducing variance between offloaded and non-offloaded configurations. (I would like to replace NIC offload with SIMD offload completely to simplify the end-user's mental model but it remains to be seen if I will get away with this.) Sorry that this is not sent as a pull request. We use DPDK as a reference implementation but not as a software dependency. The rest of our implementation (tests, runtime CPU feature dispatching) would not fit into the DPDK code base and would have to be ported. In the perfect universe I would love to see useful routines like this living in a small repository of their own that everyboy could share. "Small and stand-alone subroutines for userspace networking." Perhaps we will collectively break up our big libraries like this over time. (I do really appreciate the fact that many DPDK library routines are easy to excerpt. You can see that we are using DPDK's IP checksum as the non-SIMD fallback, albeit we forked it to fit it into our project.) Cheers, -Luke