From patchwork Thu Oct 25 22:04:37 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chas Williams <3chas3@gmail.com> X-Patchwork-Id: 47445 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 61BC45F13; Fri, 26 Oct 2018 00:04:44 +0200 (CEST) Received: from mail-qt1-f196.google.com (mail-qt1-f196.google.com [209.85.160.196]) by dpdk.org (Postfix) with ESMTP id 567725F13 for ; Fri, 26 Oct 2018 00:04:43 +0200 (CEST) Received: by mail-qt1-f196.google.com with SMTP id c16-v6so11796217qtj.13 for ; Thu, 25 Oct 2018 15:04:43 -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=X0BJdg9qbxTghGJlDO1+cp0RmOYm3KVo/q6PZQcd0t4=; b=b+E4t4ZNM9bmg0EdXTl59REIFi21BVyxW/YJzbmHBGx+/AKu+DZ9PKm1/a2TNadImB yRBjaEs806PkFMm8tiRzpCS71+Q0vK/cj/dVOKFC0oYtnPV7nRGbL5o2ncEDObZrCXZO gIrlqHX2OZfzs4fobAQjndK66bG5K+qpoS+c3BZPnSZVY0dCYKN4rqlkeYjJQ3HxeU1q 7OQBOLKSDF1c6z5lgnqgg0Yb6h767mKuSUTxqUl+6DoWy49dR435OvvnOeVG2RCjTzLT OPnf+qyUwCfuUQnvzIsY6n79EwCss/MXFZoIn74M7sJqgAQx8nnvzc4/hAHRwKy0+J3x dk8Q== 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=X0BJdg9qbxTghGJlDO1+cp0RmOYm3KVo/q6PZQcd0t4=; b=rbaT8sj1hspUfpWPLv69Gee6uyNCrM2ciSuSztVW5ZLhHLlUMu7Yo1VJs4y3Z+YGsQ PKf1Gd067jh3XPb8bC0Bw+ws+63ZwUnJgpT7FjSoGKAQzPY3V5Qg+hrMfnZ2sPo7k9M4 jA6rZO9OBhsS9dsO6i1MSPJnP4H7jIdIYv8WRl1JYtMdek7YhdVUUoDnfZjPzgU3CHLw AnTxPuur1yKaiSabRC+z0MOBqUchkqKJrqvwhcGlZhFPnho3bCQ1KFfYS4c6kU2b3EoV IdaB0hjoWHOjdPvUmwuatmPt/nhAva8wO1+ad4caOKuBx91fDJ4M5mBNQW9p+jk4P+/F PErw== X-Gm-Message-State: AGRZ1gK1+EuyhXz6jumipoBAfgGDK1bGnZjKKP04iKfMmuZaobKwkAFP JJhE7mzBCawT3YAg2RgMFFHkY43h X-Google-Smtp-Source: AJdET5dVQ6WWude+viofUfUzhDexSOmjbJ851Hw99Pb+O/IBJtllX7jx8dukn1uj4hCh+R21JpCmww== X-Received: by 2002:ac8:35d9:: with SMTP id l25-v6mr976184qtb.165.1540505082437; Thu, 25 Oct 2018 15:04:42 -0700 (PDT) Received: from monolith.fios-router.home (pool-96-255-82-34.washdc.fios.verizon.net. [96.255.82.34]) by smtp.gmail.com with ESMTPSA id l28-v6sm6943688qkj.33.2018.10.25.15.04.41 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 25 Oct 2018 15:04:41 -0700 (PDT) From: Chas Williams <3chas3@gmail.com> To: dev@dpdk.org Cc: declan.doherty@intel.com, Chas Williams Date: Thu, 25 Oct 2018 18:04:37 -0400 Message-Id: <20181025220437.32733-1-3chas3@gmail.com> X-Mailer: git-send-email 2.14.4 Subject: [dpdk-dev] [PATCH] net/bonding: avoid making copy of mac address X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Chas Williams Calling rte_eth_macaddr_get to get a copy of the MAC address causes a hot spot according to profiling. We can easily get the current MAC address by just examining the bonded device. Signed-off-by: Chas Williams --- drivers/net/bonding/rte_eth_bond_pmd.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c index e7a4be921..d5561c9ec 100644 --- a/drivers/net/bonding/rte_eth_bond_pmd.c +++ b/drivers/net/bonding/rte_eth_bond_pmd.c @@ -392,8 +392,9 @@ bond_ethdev_rx_burst_8023ad(void *queue, struct rte_mbuf **bufs, /* Cast to structure, containing bonded device's port id and queue id */ struct bond_rx_queue *bd_rx_q = (struct bond_rx_queue *)queue; struct bond_dev_private *internals = bd_rx_q->dev_private; - struct ether_addr bond_mac; - + struct rte_eth_dev *bonded_eth_dev = + &rte_eth_devices[internals->port_id]; + struct ether_addr *bond_mac = bonded_eth_dev->data->mac_addrs; struct ether_hdr *hdr; const uint16_t ether_type_slow_be = rte_be_to_cpu_16(ETHER_TYPE_SLOW); @@ -406,7 +407,6 @@ bond_ethdev_rx_burst_8023ad(void *queue, struct rte_mbuf **bufs, uint8_t i, j, k; uint8_t subtype; - rte_eth_macaddr_get(internals->port_id, &bond_mac); /* Copy slave list to protect against slave up/down changes during tx * bursting */ slave_count = internals->active_slave_count; @@ -449,9 +449,11 @@ bond_ethdev_rx_burst_8023ad(void *queue, struct rte_mbuf **bufs, * in collecting state or bonding interface is not in promiscuous * mode and packet address does not match. */ if (unlikely(is_lacp_packets(hdr->ether_type, subtype, bufs[j]) || - !collecting || (!promisc && - !is_multicast_ether_addr(&hdr->d_addr) && - !is_same_ether_addr(&bond_mac, &hdr->d_addr)))) { + !collecting || + (!promisc && + !is_multicast_ether_addr(&hdr->d_addr) && + !is_same_ether_addr(bond_mac, + &hdr->d_addr)))) { if (hdr->ether_type == ether_type_slow_be) { bond_mode_8023ad_handle_slow_pkt(