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 F17A5A052A; Wed, 27 Jan 2021 18:50:23 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id D4CFF141008; Wed, 27 Jan 2021 18:50:23 +0100 (CET) Received: from mga05.intel.com (mga05.intel.com [192.55.52.43]) by mails.dpdk.org (Postfix) with ESMTP id 30EC5141000 for ; Wed, 27 Jan 2021 18:50:21 +0100 (CET) IronPort-SDR: 5tkxNvNGm3+7nccIotBKitPu/2aJyhL906o16+aWDJzJi2yRAYlmWmJG9QUVmbwHJoXRH3o0o+ lS9XZ9yMj6Zg== X-IronPort-AV: E=McAfee;i="6000,8403,9877"; a="264933305" X-IronPort-AV: E=Sophos;i="5.79,380,1602572400"; d="scan'208";a="264933305" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Jan 2021 09:50:20 -0800 IronPort-SDR: bx2OR2mlnlw/SAjI/vkot9MNiibapiQZasOgI8Mpcl7s8nPI6Il1qBlTBYOGP9qPnSfTZPrTF0 oaf2bWfTJa+Q== X-IronPort-AV: E=Sophos;i="5.79,380,1602572400"; d="scan'208";a="430180746" Received: from fyigit-mobl1.ger.corp.intel.com (HELO [10.213.208.215]) ([10.213.208.215]) by orsmga001-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Jan 2021 09:50:18 -0800 To: Andrew Boyer Cc: dev , Alfredo Cardigliano , Neel Patel References: <20210118203508.1332-1-aboyer@pensando.io> <20210118203508.1332-8-aboyer@pensando.io> <1652797a-8caf-2e7c-ec25-00d4c132d603@intel.com> From: Ferruh Yigit Message-ID: <01424f9d-2d3c-8feb-942e-85d9890b2e0a@intel.com> Date: Wed, 27 Jan 2021 17:50:15 +0000 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Subject: Re: [dpdk-dev] [PATCH 07/13] net/ionic: inline queue flush function 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 1/27/2021 5:43 PM, Andrew Boyer wrote: > > >> On Jan 27, 2021, at 12:36 PM, Ferruh Yigit > > wrote: >> >> On 1/18/2021 8:35 PM, Andrew Boyer wrote: >>> This is hot-path function. >>> Signed-off-by: Andrew Boyer > >>> Signed-off-by: Neel Patel > >>> --- >>>  drivers/net/ionic/ionic_dev.c   | 6 ------ >>>  drivers/net/ionic/ionic_dev.h   | 9 ++++++++- >>>  drivers/net/ionic/ionic_osdep.h | 1 - >>>  3 files changed, 8 insertions(+), 8 deletions(-) >>> diff --git a/drivers/net/ionic/ionic_dev.c b/drivers/net/ionic/ionic_dev.c >>> index eef015686f..fcb3df482a 100644 >>> --- a/drivers/net/ionic/ionic_dev.c >>> +++ b/drivers/net/ionic/ionic_dev.c >>> @@ -459,12 +459,6 @@ ionic_q_sg_map(struct ionic_queue *q, void *base, >>> rte_iova_t base_pa) >>> q->sg_base_pa = base_pa; >>>  } >>>  -void >>> -ionic_q_flush(struct ionic_queue *q) >>> -{ >>> -writeq(IONIC_DBELL_QID(q->hw_index) | q->head_idx, q->db); >>> -} >>> - >>>  void >>>  ionic_q_post(struct ionic_queue *q, bool ring_doorbell, desc_cb cb, >>>     void *cb_arg) >>> diff --git a/drivers/net/ionic/ionic_dev.h b/drivers/net/ionic/ionic_dev.h >>> index ea89218662..55a56434fd 100644 >>> --- a/drivers/net/ionic/ionic_dev.h >>> +++ b/drivers/net/ionic/ionic_dev.h >>> @@ -254,7 +254,6 @@ int ionic_q_init(struct ionic_lif *lif, struct ionic_dev >>> *idev, >>> size_t desc_size, size_t sg_desc_size); >>>  void ionic_q_map(struct ionic_queue *q, void *base, rte_iova_t base_pa); >>>  void ionic_q_sg_map(struct ionic_queue *q, void *base, rte_iova_t base_pa); >>> -void ionic_q_flush(struct ionic_queue *q); >>>  void ionic_q_post(struct ionic_queue *q, bool ring_doorbell, desc_cb cb, >>> void *cb_arg); >>>  uint32_t ionic_q_space_avail(struct ionic_queue *q); >>> @@ -262,6 +261,14 @@ bool ionic_q_has_space(struct ionic_queue *q, uint32_t >>> want); >>>  void ionic_q_service(struct ionic_queue *q, uint32_t cq_desc_index, >>> uint32_t stop_index, void *service_cb_arg); >>>  +static inline void >>> +ionic_q_flush(struct ionic_queue *q) >>> +{ >>> +uint64_t val = IONIC_DBELL_QID(q->hw_index) | q->head_idx; >>> + >>> +rte_write64(val, q->db); >>> +} >>> + >> >> Please be aware of '__rte_always_inline' attribute if you want to force it, >> since 'inline' keyword is only a suggestion to the compilers. >> > > Is it though? We are using __rte_always_inline in the hot-path .c file, but I > would have said that in a header file the compiler wouldn’t have a choice. Happy > to be corrected. > You are right, in the header file compiler doesn't have much choice, so it should be OK. > Thanks, > Andrew > >>>  int ionic_adminq_post(struct ionic_lif *lif, struct ionic_admin_ctx *ctx); >>>    #endif /* _IONIC_DEV_H_ */ >>> diff --git a/drivers/net/ionic/ionic_osdep.h b/drivers/net/ionic/ionic_osdep.h >>> index 157b0ca516..d46687b32f 100644 >>> --- a/drivers/net/ionic/ionic_osdep.h >>> +++ b/drivers/net/ionic/ionic_osdep.h >>> @@ -45,6 +45,5 @@ typedef uint64_t __le64; >>>  #define ioread32(reg)rte_read32(reg) >>>  #define iowrite8(value, reg)rte_write8(value, reg) >>>  #define iowrite32(value, reg)rte_write32(value, reg) >>> -#define writeq(value, reg)rte_write64(value, reg) >>>    #endif >