From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steffen Klassert Subject: [PATCH RFC 0/2] Flow sorted receive skb lists Date: Wed, 12 Sep 2018 12:23:28 +0200 Message-ID: <20180912102330.24790-1-steffen.klassert@secunet.com> Mime-Version: 1.0 Content-Type: text/plain Cc: Steffen Klassert To: Return-path: Received: from a.mx.secunet.com ([62.96.220.36]:32870 "EHLO a.mx.secunet.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726672AbeILP1c (ORCPT ); Wed, 12 Sep 2018 11:27:32 -0400 Received: from localhost (localhost [127.0.0.1]) by a.mx.secunet.com (Postfix) with ESMTP id 52F2C200BD for ; Wed, 12 Sep 2018 14:23:21 +0200 (CEST) Received: from a.mx.secunet.com ([127.0.0.1]) by localhost (a.mx.secunet.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id NHoCqLlmbHrm for ; Wed, 12 Sep 2018 14:23:20 +0200 (CEST) Received: from mail-essen-02.secunet.de (mail-essen-02.secunet.de [10.53.40.205]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a.mx.secunet.com (Postfix) with ESMTPS id E7820201C4 for ; Wed, 12 Sep 2018 14:23:20 +0200 (CEST) Sender: netdev-owner@vger.kernel.org List-ID: This patchset consists of two patches. Patch 1 adds support for flow sorted rx skb lists for IPv4. This means that it sorts the skb list so that packets from the same flow can to travel together through the stack. The second patch of this pachset is just a hack that disables GRO and does skb list receive instead. I don't have a NIC whose driver supports to build skb lists to be received by netif_receive_skb_list(), so I used this hack to test patch 1. This is early stage work, so it might be not complete and still buggy. I send this now because I want to hear some comments on the approach itself before I spend more time to work on this. Forwarding performance measurements: I used used my IPsec forwarding test setup for this: ------------ ------------ -->| router 1 |-------->| router 2 |-- | ------------ ------------ | | | | -------------------- | --------|Spirent Testcenter|<---------- -------------------- net-next (September 6th): Single stream UDP frame size 1460 Bytes: 1.258.446 fps. Single stream UDP frame size 64 Bytes: 1.250.000 fps. ---------------------------------------------------------------------- net-next (September 6th) + patch 2 (list receive): Single stream UDP frame size 1460 Bytes: 1.469.595 fps (+16%). Single stream UDP frame size 64 Bytes: 1.502.976 fps (+20%). ---------------------------------------------------------------------- net-next (September 6th) + patch 1 + patch 2 (flow sorted list receive): Single stream UDP frame size 1460 Bytes: 2.525.338 fps (+100%). Single stream UDP frame size 64 Bytes: 2.541.881 fps (+103%). -----------------------------------------------------------------------