From patchwork Fri Feb 7 12:01:13 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Flavio Leitner X-Patchwork-Id: 1234895 Return-Path: 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.166.137; helo=fraxinus.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=sysclose.org Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=sysclose.org header.i=@sysclose.org header.a=rsa-sha256 header.s=201903 header.b=PDUEKhu6; dkim=fail reason="signature verification failed" (2048-bit key) header.d=sysclose.org header.i=@sysclose.org header.a=rsa-sha256 header.s=201903 header.b=PDUEKhu6; dkim-atps=neutral Received: from fraxinus.osuosl.org (smtp4.osuosl.org [140.211.166.137]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48DYmn4nDNz9sRK for ; Fri, 7 Feb 2020 23:01:29 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by fraxinus.osuosl.org (Postfix) with ESMTP id ECE3286505; Fri, 7 Feb 2020 12:01:27 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from fraxinus.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GQ2Pywce18yc; Fri, 7 Feb 2020 12:01:27 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by fraxinus.osuosl.org (Postfix) with ESMTP id 67C3586500; Fri, 7 Feb 2020 12:01:27 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 5F7D1C1796; Fri, 7 Feb 2020 12:01:27 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from whitealder.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by lists.linuxfoundation.org (Postfix) with ESMTP id 797ACC013E for ; Fri, 7 Feb 2020 12:01:26 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by whitealder.osuosl.org (Postfix) with ESMTP id 668BE86A3C for ; Fri, 7 Feb 2020 12:01:26 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from whitealder.osuosl.org ([127.0.0.1]) by localhost (.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 61LhjoFFrGQe for ; Fri, 7 Feb 2020 12:01:25 +0000 (UTC) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from sysclose.org (smtp.sysclose.org [69.164.214.230]) by whitealder.osuosl.org (Postfix) with ESMTPS id 811F186914 for ; Fri, 7 Feb 2020 12:01:25 +0000 (UTC) Received: by sysclose.org (Postfix, from userid 5001) id A3A983C9D; Fri, 7 Feb 2020 12:02:09 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 sysclose.org A3A983C9D DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sysclose.org; s=201903; t=1581076929; bh=Axy7awlOQF9mZImgBJCPwbv/Sjo6ROpSGvmuVEUyoqE=; h=From:To:Cc:Subject:Date:From; b=PDUEKhu6/5hYxHyIDHWbfu1PoNqZRJLKftB2lYF30YRl2/pgxgL7pJaXlV3vZd4tn Ous6wdn8sKun6dtK/KGQKbvDEgkIQ0ym3KEUjs0eohyvBbmgfZcrdjUGFi4r1IlZRc PAckK1m4gdLv4Sj5objTdaoxDt00HJqdPhi0okwbAjcpStzK7/29W9R/lZ7DEkMBfH 7SSFrWdw4mAvgQSmci72/f68Ls4IcWrDIKk+fiMnMvH2c/w2X2XU/DPwR9/2dXbHUb 9/KjdezKQOAwEUk3SWx2hethmfljpJ767iN7mt/58dyRBbdBnKZlPkS1piZtuFQj9R QnY0DjRlTwzSQ== Received: from localhost (unknown [191.7.188.156]) by sysclose.org (Postfix) with ESMTPSA id 90E063057; Fri, 7 Feb 2020 12:02:08 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 sysclose.org 90E063057 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sysclose.org; s=201903; t=1581076929; bh=Axy7awlOQF9mZImgBJCPwbv/Sjo6ROpSGvmuVEUyoqE=; h=From:To:Cc:Subject:Date:From; b=PDUEKhu6/5hYxHyIDHWbfu1PoNqZRJLKftB2lYF30YRl2/pgxgL7pJaXlV3vZd4tn Ous6wdn8sKun6dtK/KGQKbvDEgkIQ0ym3KEUjs0eohyvBbmgfZcrdjUGFi4r1IlZRc PAckK1m4gdLv4Sj5objTdaoxDt00HJqdPhi0okwbAjcpStzK7/29W9R/lZ7DEkMBfH 7SSFrWdw4mAvgQSmci72/f68Ls4IcWrDIKk+fiMnMvH2c/w2X2XU/DPwR9/2dXbHUb 9/KjdezKQOAwEUk3SWx2hethmfljpJ767iN7mt/58dyRBbdBnKZlPkS1piZtuFQj9R QnY0DjRlTwzSQ== From: Flavio Leitner To: dev@openvswitch.org Date: Fri, 7 Feb 2020 09:01:13 -0300 Message-Id: <20200207120113.147165-1-fbl@sysclose.org> X-Mailer: git-send-email 2.24.1 MIME-Version: 1.0 Cc: Flavio Leitner Subject: [ovs-dev] [PATCH] dp-packet: prefetch the next packet when cloning a batch. X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" There is a cache miss when accessing mbuf->data_off while cloning a batch and using prefetch improved the throughput by ~2.3%. Before: 13709416.30 pps After: 14031475.80 pps Fixes: d48771848560 ("dp-packet: preserve headroom when cloning a pkt batch") Signed-off-by: Flavio Leitner --- lib/dp-packet.h | 4 ++++ 1 file changed, 4 insertions(+) * This patch applies for branch-2.13 as well. diff --git a/lib/dp-packet.h b/lib/dp-packet.h index 69ae5dfac..387f51261 100644 --- a/lib/dp-packet.h +++ b/lib/dp-packet.h @@ -1046,6 +1046,10 @@ dp_packet_batch_clone(struct dp_packet_batch *dst, dp_packet_batch_init(dst); DP_PACKET_BATCH_FOR_EACH (i, packet, src) { + if ((i + 1) < dp_packet_batch_size(src)) { + OVS_PREFETCH(src->packets[i+1]); + } + uint32_t headroom = dp_packet_headroom(packet); struct dp_packet *pkt_clone;