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 992EBA052A; Wed, 27 Jan 2021 18:36:20 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 8208F140FCD; Wed, 27 Jan 2021 18:36:20 +0100 (CET) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by mails.dpdk.org (Postfix) with ESMTP id EA4FE140FC0 for ; Wed, 27 Jan 2021 18:36:18 +0100 (CET) IronPort-SDR: 6otwLVVJ3+EEk9rsikRu1y9/BnErgBDtxhzaDrsx0ScHz0cIKov3bghPRarZ96ANoMKUvEZnOz MFH1ciSqmgmw== X-IronPort-AV: E=McAfee;i="6000,8403,9877"; a="177541134" X-IronPort-AV: E=Sophos;i="5.79,380,1602572400"; d="scan'208";a="177541134" Received: from orsmga001.jf.intel.com ([10.7.209.18]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 27 Jan 2021 09:36:17 -0800 IronPort-SDR: Clk6Z0bOc/yOEerUWdXpcBa6AbmdAtv3B4jVpxhvqgvPiwX/J5zgbageSRpwxIcW1dtAQCN1po DVeDAbf+IRlg== X-IronPort-AV: E=Sophos;i="5.79,380,1602572400"; d="scan'208";a="430177075" 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:36:16 -0800 To: Andrew Boyer , dev@dpdk.org Cc: Alfredo Cardigliano , Neel Patel References: <20210118203508.1332-1-aboyer@pensando.io> <20210118203508.1332-8-aboyer@pensando.io> From: Ferruh Yigit Message-ID: <1652797a-8caf-2e7c-ec25-00d4c132d603@intel.com> Date: Wed, 27 Jan 2021 17:36:13 +0000 MIME-Version: 1.0 In-Reply-To: <20210118203508.1332-8-aboyer@pensando.io> 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/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. > 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 >