From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C503FA0547; Wed, 29 Sep 2021 07:52:21 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 50C6C410D7; Wed, 29 Sep 2021 07:52:21 +0200 (CEST) Received: from mail-il1-f182.google.com (mail-il1-f182.google.com [209.85.166.182]) by mails.dpdk.org (Postfix) with ESMTP id 722564068F for ; Wed, 29 Sep 2021 07:52:20 +0200 (CEST) Received: by mail-il1-f182.google.com with SMTP id b6so1648031ilv.0 for ; Tue, 28 Sep 2021 22:52:20 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=87UjY0NN3L90ArUyVaDYudvfjV/6OGFZ///ZK9mMljo=; b=TEuST/O9OOPkW+O55uNSrloEL7YxwT3QZsYvlMzVQQv0fOUjt59eaB3BH8UFLJnqm5 8SG3dTaayxvwUL+Dqo3Xi/DMzCoW4GBwmGuGq7SBXSpXUoGqJ0IIin72/lXeTUJ/Wb5B 46GgvvbD1mS0UnQ3NaxHWbLTy68IKVKDihwRFiKJZDZQsWQyEcvXCFWJiwGGb7ft68FN ImbLlOkxFB3nOAQcPgUpGFaqBUYkWDJHtb5iGKXENUPa9BZPsinrr8J76+EI3qokPMhF kXJQ5zBugnj4avEuGj5ofFJoYZWCTQc0bDOpLfSmmMH9ME+gwd5pFYi+oCQzZBrJVKeg 79ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=87UjY0NN3L90ArUyVaDYudvfjV/6OGFZ///ZK9mMljo=; b=tW+tfZCHFhJjrOvedwpJ54/TdJ+KuKU0vHyh8UoY1FG0iuWsvEyPjpd51LsscAAyKK sr2Ok5uHeveDLEgRwk8ds39+6IhVTgqeLhJZc6c4+KPMuU5a8j31LtVjwlMsqSQ0CyFv wt6tBNJlP0FZ0PgcrzY9TnFmEDa/Se6v9ZvJIo720b2lmoccIK9dsrWvcpJzcojCF1hd urYHjUV7iSG73HSA5ExlSYDJ6TeYrdTZc//y5PbK4/i1NqKX4lvRBtPMEDnsFFkJhrah 16YRx0LtYtw7C7M82hyXTXL+PENx3Rrn5LRrwldlSCiDyy+j2k7aAr8HOPo73CP7go3b wddQ== X-Gm-Message-State: AOAM530X6jc+Z9qatdwIMHHNtxiONmzebwpChB+sN2zJOZP8MWYrTNUt SykCv0iX664zpwHPYXe+GU0wgB6z+WADGEDEf9U= X-Google-Smtp-Source: ABdhPJxNO2VUoyDneHL2/ZHF5LwpbFilov+EtrrOzYjl1+1OfxWzj5hJaM9Huy9fyfSd1jUVSd6+jfyrkjGa95nLaDA= X-Received: by 2002:a05:6e02:1d8b:: with SMTP id h11mr6537554ila.94.1632894739598; Tue, 28 Sep 2021 22:52:19 -0700 (PDT) MIME-Version: 1.0 References: <20210916091532.1848770-1-ganapati.kundapura@intel.com> <20210928163848.1511459-1-ganapati.kundapura@intel.com> In-Reply-To: <20210928163848.1511459-1-ganapati.kundapura@intel.com> From: Jerin Jacob Date: Wed, 29 Sep 2021 11:21:53 +0530 Message-ID: To: Ganapati Kundapura Cc: dpdk-dev , "Jayatheerthan, Jay" , Jerin Jacob Content-Type: text/plain; charset="UTF-8" Subject: Re: [dpdk-dev] [PATCH v3] eventdev: add Rx timestamp in mbuf using mbuf dynamic field X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 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" On Tue, Sep 28, 2021 at 10:09 PM Ganapati Kundapura wrote: > > Add support to register timestamp dynamic field in mbuf. > > Update the timestamp in mbuf for each packet before enqueuing > to event device if the timestamp is not already set. > > Adding the timestamp in Rx adapter avoids additional latency > due to the event device. > > Acked-by: Jerin Jacob > > Signed-off-by: Ganapati Kundapura Changed the subject as eventdev/rx_adapter: use Rx timestamp as dynamic mbuf field Applied to dpdk-next-net-eventdev/for-main. Thanks > > --- > Depends-on: patch-97549(make Rx-adapter enqueue buffer as circular buffer) > > v3: > * updated timestamp variables to static > * corrected wrong headline case: rx --> Rx > * corrected headline too long git log issue > > v2: > * Removed rte_ prefix from the internal function > > v1: > * Add support to register timestamp dynamic field in mbuf > --- > > diff --git a/lib/eventdev/rte_event_eth_rx_adapter.c b/lib/eventdev/rte_event_eth_rx_adapter.c > index f2dc695..e7595b2 100644 > --- a/lib/eventdev/rte_event_eth_rx_adapter.c > +++ b/lib/eventdev/rte_event_eth_rx_adapter.c > @@ -17,6 +17,7 @@ > #include > #include > #include > +#include > > #include "rte_eventdev.h" > #include "eventdev_pmd.h" > @@ -240,6 +241,17 @@ struct eth_rx_queue_info { > > static struct rte_event_eth_rx_adapter **event_eth_rx_adapter; > > +/* Enable dynamic timestamp field in mbuf */ > +static uint64_t event_eth_rx_timestamp_dynflag; > +static int event_eth_rx_timestamp_dynfield_offset = -1; > + > +static inline rte_mbuf_timestamp_t * > +rxa_timestamp_dynfield(struct rte_mbuf *mbuf) > +{ > + return RTE_MBUF_DYNFIELD(mbuf, > + event_eth_rx_timestamp_dynfield_offset, rte_mbuf_timestamp_t *); > +} > + > static inline int > rxa_validate_id(uint8_t id) > { > @@ -890,8 +902,18 @@ rxa_buffer_mbufs(struct rte_event_eth_rx_adapter *rx_adapter, > int do_rss; > uint16_t nb_cb; > uint16_t dropped; > + uint64_t ts, ts_mask; > > if (!eth_rx_queue_info->ena_vector) { > + ts = m->ol_flags & event_eth_rx_timestamp_dynflag ? > + 0 : rte_get_tsc_cycles(); > + > + /* 0xffff ffff ffff ffff if PKT_RX_TIMESTAMP is set, > + * otherwise 0 > + */ > + ts_mask = (uint64_t)(!(m->ol_flags & > + event_eth_rx_timestamp_dynflag)) - 1ULL; > + > /* 0xffff ffff if PKT_RX_RSS_HASH is set, otherwise 0 */ > rss_mask = ~(((m->ol_flags & PKT_RX_RSS_HASH) != 0) - 1); > do_rss = !rss_mask && !eth_rx_queue_info->flow_id_mask; > @@ -899,6 +921,9 @@ rxa_buffer_mbufs(struct rte_event_eth_rx_adapter *rx_adapter, > struct rte_event *ev; > > m = mbufs[i]; > + *rxa_timestamp_dynfield(m) = ts | > + (*rxa_timestamp_dynfield(m) & ts_mask); > + > ev = &buf->events[new_tail]; > > rss = do_rss ? rxa_do_softrss(m, rx_adapter->rss_key_be) > @@ -2238,6 +2263,14 @@ rte_event_eth_rx_adapter_create_ext(uint8_t id, uint8_t dev_id, > event_eth_rx_adapter[id] = rx_adapter; > if (conf_cb == rxa_default_conf_cb) > rx_adapter->default_cb_arg = 1; > + > + if (rte_mbuf_dyn_rx_timestamp_register( > + &event_eth_rx_timestamp_dynfield_offset, > + &event_eth_rx_timestamp_dynflag) != 0) { > + RTE_EDEV_LOG_ERR("Error registering timestamp field in mbuf\n"); > + return -rte_errno; > + } > + > rte_eventdev_trace_eth_rx_adapter_create(id, dev_id, conf_cb, > conf_arg); > return 0; > -- > 2.6.4 >