From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jan Blunck Subject: Re: [RFC 0/8] mbuf: structure reorganization Date: Thu, 16 Feb 2017 18:26:39 +0100 Message-ID: References: <1485271173-13408-1-git-send-email-olivier.matz@6wind.com> <2601191342CEEE43887BDE71AB9772583F111A29@irsmsx105.ger.corp.intel.com> <20170216144807.7add2c71@platinum> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Cc: "Ananyev, Konstantin" , "dev@dpdk.org" To: Olivier Matz Return-path: Received: from mail-wm0-f68.google.com (mail-wm0-f68.google.com [74.125.82.68]) by dpdk.org (Postfix) with ESMTP id 3A305952 for ; Thu, 16 Feb 2017 18:26:40 +0100 (CET) Received: by mail-wm0-f68.google.com with SMTP id r18so4175072wmd.3 for ; Thu, 16 Feb 2017 09:26:40 -0800 (PST) In-Reply-To: <20170216144807.7add2c71@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" On Thu, Feb 16, 2017 at 2:48 PM, Olivier Matz wrote: > On Mon, 6 Feb 2017 18:41:27 +0000, "Ananyev, Konstantin" > wrote: >> > >> > The main changes are: >> > - reorder structure to increase vector performance on some non-ia >> > platforms. >> > - add a 64bits timestamp field in the 1st cache line >> >> Wonder why it deserves to be in first cache line? >> How it differs from seqn below (pure SW stuff right now). > > In case the timestamp is set from a NIC value, it is set in the Rx > path. So that's why I think it deserve to be located in the 1st cache > line. > > As you said, the seqn is a pure sw stuff right: it is set in a lib, not > in a PMD rx path. > If we talk about setting the timestamp value in the RX path this implicitly means software timestamps. Hardware timestamping usually works by letting the hardware inject sync events for coarse time tracking and additionally injecting fine granular per-packet ticks at a specific offset in the packet. Out of performance reasons I don't think it makes sense to extract this during the burst and write it into the mbuf again. The problem with timestamps is to get the abstraction right wrt the correction factors and the size of the tick vs. the timestamp in the events injected. From my perspective it would be better to extract the handling of timestamp data into a library with PMD specific implementation of the conversions. That way the normalized timestamp values can get extracted if they are present. The mbuf itself would only indicate the presence of timestamp metadata in that case.