Message ID | 1572618234-6904-1-git-send-email-xiangxia.m.yue@gmail.com |
---|---|
Headers | show
Return-Path: <ovs-dev-bounces@openvswitch.org> X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=140.211.169.12; helo=mail.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=<UNKNOWN>) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="hjBRP1il"; dkim-atps=neutral Received: from mail.linuxfoundation.org (mail.linuxfoundation.org [140.211.169.12]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 474PZg0vRSz9sP4 for <incoming@patchwork.ozlabs.org>; Sat, 2 Nov 2019 01:24:10 +1100 (AEDT) Received: from mail.linux-foundation.org (localhost [127.0.0.1]) by mail.linuxfoundation.org (Postfix) with ESMTP id DC0F1188E; Fri, 1 Nov 2019 14:24:07 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@mail.linuxfoundation.org Received: from smtp1.linuxfoundation.org (smtp1.linux-foundation.org [172.17.192.35]) by mail.linuxfoundation.org (Postfix) with ESMTPS id D3585186E for <dev@openvswitch.org>; Fri, 1 Nov 2019 14:24:05 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.7.6 Received: from mail-pg1-f196.google.com (mail-pg1-f196.google.com [209.85.215.196]) by smtp1.linuxfoundation.org (Postfix) with ESMTPS id 7E6CF14D for <dev@openvswitch.org>; Fri, 1 Nov 2019 14:24:05 +0000 (UTC) Received: by mail-pg1-f196.google.com with SMTP id r1so6571689pgj.12 for <dev@openvswitch.org>; Fri, 01 Nov 2019 07:24:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=+tWBk8RYlbebI5rMcKZiOfpg14oYGTQBvwooaX0n6ck=; b=hjBRP1ilKDsh/t2GeIa/BAcS85bNhG1VQYYMTDVN0ajpBNHFQm87OrIPhvU/yYToa3 o0HlW4J4JuXFcIlYB6aE3lv8eI4FoCwlTL/w6eqRC3zCeXXo70TYoSEe0HwR3TbHB6lJ gPvKBLvFscNAgP8Vdj5El3kpyNLWsBiTDiQ9P38U3yyt+ejvq48KLxEqAFnGN+zDsdfn E+oQlvoRP+9TUgBmYtOtQ05UmH8IsBEE0hVGBewxyOxZQdqiQbhk37yYISBKYnHFoZuB FkVFv22a2lzmlKnPrahVvtrnePBnC+7C4WthmB7vlUFgz12kXg1+9czqF/yMk+StzEA8 fkKQ== 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; bh=+tWBk8RYlbebI5rMcKZiOfpg14oYGTQBvwooaX0n6ck=; b=r5Dti+GG09Vriv6dlHtWUcte1HHUItJUe98yll+GIEt4umPy+lOUMZ0SLCZXAPC6uI eFNfqSUiZhlek9vQL/8ucZxykrEKqQDRUUY9+c3BUbP3dbKVwq1eZsmi3VIMrgbJ3o0W XOcJh4xuCpWw6zaYM8pkJ43GmR9h+ET9YD7yddjqAHoTOesSLG8LTvqtBDC47gkQP8nI NBa8ZRgivH2wFqbvXgdZkXwPxEvLphbY7hc1uMHi4YFJP31aztWVTU+6cJKBglGLOj4/ atexeNWfTT8OiVKs0XvwOXqDFj6AtXeZ3Nnh7aSX0YOVz8RKdvkxA70tKjk+87EP7fDk 8MxA== X-Gm-Message-State: APjAAAV5E22v/Lv2Ni6JNEFpOU+KxbiSVItgyMWOiU8kZvVQt9LKjcET U9q5w8r/wPA+QbLk+3LMtnc777gT+YE= X-Google-Smtp-Source: APXvYqwJ3AxUDk25vKFFRR/9L30wBpDaHRtxtVMvy/nzsry8eiC/w1UyYWMfOO7H7QfH8ZcCIPQJmw== X-Received: by 2002:a63:5f54:: with SMTP id t81mr13510293pgb.20.1572618244996; Fri, 01 Nov 2019 07:24:04 -0700 (PDT) Received: from local.opencloud.tech.localdomain ([1.203.173.208]) by smtp.gmail.com with ESMTPSA id c12sm8296499pfp.67.2019.11.01.07.24.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 01 Nov 2019 07:24:03 -0700 (PDT) From: xiangxia.m.yue@gmail.com To: gvrose8192@gmail.com, pshelar@ovn.org, davem@davemloft.net Date: Fri, 1 Nov 2019 22:23:44 +0800 Message-Id: <1572618234-6904-1-git-send-email-xiangxia.m.yue@gmail.com> X-Mailer: git-send-email 1.8.3.1 X-Spam-Status: No, score=-2.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on smtp1.linux-foundation.org Cc: dev@openvswitch.org, netdev@vger.kernel.org Subject: [ovs-dev] [PATCH net-next v6 00/10] optimize openvswitch flow looking up X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.12 Precedence: list List-Id: <ovs-dev.openvswitch.org> List-Unsubscribe: <https://mail.openvswitch.org/mailman/options/ovs-dev>, <mailto:ovs-dev-request@openvswitch.org?subject=unsubscribe> List-Archive: <http://mail.openvswitch.org/pipermail/ovs-dev/> List-Post: <mailto:ovs-dev@openvswitch.org> List-Help: <mailto:ovs-dev-request@openvswitch.org?subject=help> List-Subscribe: <https://mail.openvswitch.org/mailman/listinfo/ovs-dev>, <mailto:ovs-dev-request@openvswitch.org?subject=subscribe> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: ovs-dev-bounces@openvswitch.org Errors-To: ovs-dev-bounces@openvswitch.org |
Series |
optimize openvswitch flow looking up
|
expand
|
From: xiangxia.m.yue@gmail.com Date: Fri, 1 Nov 2019 22:23:44 +0800 > This series patch optimize openvswitch for performance or simplify > codes. Series applied, thank you.
From: Tonghao Zhang <xiangxia.m.yue@gmail.com> This series patch optimize openvswitch for performance or simplify codes. Patch 1, 2, 4: Port Pravin B Shelar patches to linux upstream with little changes. Patch 5, 6, 7: Optimize the flow looking up and simplify the flow hash. Patch 8, 9: are bugfix. The performance test is on Intel Xeon E5-2630 v4. The test topology is show as below: +-----------------------------------+ | +---------------------------+ | | | eth0 ovs-switch eth1 | | Host0 | +---------------------------+ | +-----------------------------------+ ^ | | | | | | | | v +-----+----+ +----+-----+ | netperf | Host1 | netserver| Host2 +----------+ +----------+ We use netperf send the 64B packets, and insert 255+ flow-mask: $ ovs-dpctl add-flow ovs-switch "in_port(1),eth(dst=00:01:00:00:00:00/ff:ff:ff:ff:ff:01),eth_type(0x0800),ipv4(frag=no)" 2 ... $ ovs-dpctl add-flow ovs-switch "in_port(1),eth(dst=00:ff:00:00:00:00/ff:ff:ff:ff:ff:ff),eth_type(0x0800),ipv4(frag=no)" 2 $ $ netperf -t UDP_STREAM -H 2.2.2.200 -l 40 -- -m 18 * Without series patch, throughput 8.28Mbps * With series patch, throughput 46.05Mbps v6: some coding style fixes v5: rewrite patch 8, release flow-mask when freeing flow v4: access ma->count with READ_ONCE/WRITE_ONCE API. More information, see patch 5 comments. v3: update ma point when realloc mask_array in patch 5 v2: simplify codes. e.g. use kfree_rcu instead of call_rcu Tonghao Zhang (10): net: openvswitch: add flow-mask cache for performance net: openvswitch: convert mask list in mask array net: openvswitch: shrink the mask array if necessary net: openvswitch: optimize flow mask cache hash collision net: openvswitch: optimize flow-mask looking up net: openvswitch: simplify the flow_hash net: openvswitch: add likely in flow_lookup net: openvswitch: fix possible memleak on destroy flow-table net: openvswitch: don't unlock mutex when changing the user_features fails net: openvswitch: simplify the ovs_dp_cmd_new net/openvswitch/datapath.c | 65 +++++--- net/openvswitch/flow.h | 1 - net/openvswitch/flow_table.c | 381 ++++++++++++++++++++++++++++++++++--------- net/openvswitch/flow_table.h | 19 ++- 4 files changed, 361 insertions(+), 105 deletions(-)