From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Monjalon Subject: Re: advice to pmd maintainters: do not touch mbuf initialized fields Date: Sat, 08 Jul 2017 22:36:08 +0200 Message-ID: <6567149.GEPADMWmoG@xps> References: <20170608110607.30887c26@platinum> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7Bit Cc: dev@dpdk.org, Olivier Matz To: Ferruh Yigit Return-path: Received: from out3-smtp.messagingengine.com (out3-smtp.messagingengine.com [66.111.4.27]) by dpdk.org (Postfix) with ESMTP id E2BFB16E for ; Sat, 8 Jul 2017 22:36:09 +0200 (CEST) In-Reply-To: <20170608110607.30887c26@platinum> List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 08/06/2017 11:06, Olivier Matz: > Hi, > > In the structure reorganization patchset [1], some work was done > to ensure that the values of the following fields are always initialized > for mbuf that are inside the mbuf pool (not yet allocated). > > In other words, calling rte_mbuf_raw_alloc() or rte_mempool_get() return > mbufs that are initialized as following: > > m->next = NULL > m->nb_segs = 1 > m->refcnt = 1 > > This property can be used in the Rx path of PMDs where the mbuf > structure is filled from the hardware descriptors: the initialization of > these fields can be skipped to gain few cycles per packet, and to avoid > an access to the second cache line (m->next) before it is prefetched. > > It is advised to do this optimization in the PMDs for this reason, and > also because we could want to move some of these fields to the second > mbuf cache line in the future: accessing them in the Rx path would cost. > > This work has already been done at several places: > > http://dpdk.org/browse/dpdk/commit/?id=ebb7bcabb > http://dpdk.org/browse/next/dpdk-next-net/commit/?id=e211a7569 > http://dpdk.org/browse/next/dpdk-next-net/commit/?id=a37cf9005 > http://dpdk.org/browse/next/dpdk-next-net/commit/?id=fb83a23ee > ... > > Feel free to ask if you have any question. Please Ferruh, could you check which drivers are not yet updated regarding this optimization? Thanks