From patchwork Tue Sep 12 13:08:44 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eelco Chaudron X-Patchwork-Id: 28636 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 554522BA4; Tue, 12 Sep 2017 15:08:56 +0200 (CEST) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 8C4722B84 for ; Tue, 12 Sep 2017 15:08:55 +0200 (CEST) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id C794581DE9; Tue, 12 Sep 2017 13:08:54 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com C794581DE9 Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx01.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=echaudro@redhat.com Received: from rhvm.com (ovpn-116-206.ams2.redhat.com [10.36.116.206]) by smtp.corp.redhat.com (Postfix) with ESMTP id 2DB3418EE6; Tue, 12 Sep 2017 13:08:54 +0000 (UTC) From: Eelco Chaudron To: jingjing.wu@intel.com Cc: dev@dpdk.org Date: Tue, 12 Sep 2017 15:08:44 +0200 Message-Id: <22990026376b08418cb0eb6f028840c03e89f47f.1505221429.git.echaudro@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.25]); Tue, 12 Sep 2017 13:08:54 +0000 (UTC) Subject: [dpdk-dev] [PATCH] app/testpmd: adds mlockall() to fix pages 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" Call the mlockall() function, to attempt to lock all of its process memory into physical RAM, and preventing the kernel from paging any of its memory to disk. When using testpmd for performance testing, depending on the code path taken, we see a couple of page faults in a row. These faults effect the overall drop-rate of testpmd. On Linux the mlockall() call will prefault all the pages of testpmd (and the DPDK libraries if linked dynamically), even without LD_BIND_NOW. Signed-off-by: Eelco Chaudron Acked-by: Aaron Conole Acked-by: Maxime Coquelin --- app/test-pmd/testpmd.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 7d4013941..80f3c3e8e 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -38,6 +38,7 @@ #include #include #include +#include #include #include @@ -2292,6 +2293,8 @@ main(int argc, char** argv) signal(SIGINT, signal_handler); signal(SIGTERM, signal_handler); + mlockall(MCL_CURRENT | MCL_FUTURE); + diag = rte_eal_init(argc, argv); if (diag < 0) rte_panic("Cannot init EAL\n");