diff mbox

[dpdk-dev,v3,10/10] vmxnet3: remove excess inlining

Message ID 1425600635-20628-11-git-send-email-stephen@networkplumber.org (mailing list archive)
State Superseded, archived
Headers show

Commit Message

Stephen Hemminger March 6, 2015, 12:10 a.m. UTC
From: Stephen Hemminger <shemming@brocade.com>

No reason to inline large functions. Compiler will decide already
based on optimization level.

Also register array should be const.

Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
 lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c | 10 ++++------
 1 file changed, 4 insertions(+), 6 deletions(-)

Comments

Yong Wang March 6, 2015, 11:54 p.m. UTC | #1
On 3/5/15, 4:10 PM, "Stephen Hemminger" <stephen@networkplumber.org> wrote:

>From: Stephen Hemminger <shemming@brocade.com>

>

>No reason to inline large functions. Compiler will decide already

>based on optimization level.

>

>Also register array should be const.

>

>Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>


One comment below.

Acked-by: Yong Wang <yongwang@vmware.com>


>---

> lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c | 10 ++++------

> 1 file changed, 4 insertions(+), 6 deletions(-)

>

>diff --git a/lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c

>b/lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c

>index f6c3452..cabb505 100644

>--- a/lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c

>+++ b/lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c

>@@ -84,10 +84,8 @@

> #define RTE_MBUF_DATA_DMA_ADDR_DEFAULT(mb) \

> 	(uint64_t) ((mb)->buf_physaddr + RTE_PKTMBUF_HEADROOM)

> 

>-static uint32_t rxprod_reg[2] = {VMXNET3_REG_RXPROD,

>VMXNET3_REG_RXPROD2};

>+static const uint32_t rxprod_reg[2] = {VMXNET3_REG_RXPROD,

>VMXNET3_REG_RXPROD2};

> 

>-static inline int vmxnet3_post_rx_bufs(vmxnet3_rx_queue_t* , uint8_t);

>-static inline void vmxnet3_tq_tx_complete(vmxnet3_tx_queue_t *);

> #ifdef RTE_LIBRTE_VMXNET3_DEBUG_DRIVER_NOT_USED

> static void vmxnet3_rxq_dump(struct vmxnet3_rx_queue *);

> static void vmxnet3_txq_dump(struct vmxnet3_tx_queue *);

>@@ -157,7 +155,7 @@ vmxnet3_txq_dump(struct vmxnet3_tx_queue *txq)

> }

> #endif

> 

>-static inline void

>+static void

> vmxnet3_cmd_ring_release_mbufs(vmxnet3_cmd_ring_t *ring)

> {

> 	while (ring->next2comp != ring->next2fill) {

>@@ -296,7 +294,7 @@ vmxnet3_dev_clear_queues(struct rte_eth_dev *dev)

> 	}

> }

> 

>-static inline void

>+static void

> vmxnet3_tq_tx_complete(vmxnet3_tx_queue_t *txq)


Since there is only one caller of this routine, inlining it should be
fine. But I have no problem with letting the compiler decide (which
probably will inline it anyway for this particular case).

> {

> 	int completed = 0;

>@@ -472,7 +470,7 @@ vmxnet3_xmit_pkts(void *tx_queue, struct rte_mbuf

>**tx_pkts,

>  *      only for LRO.

>  *

>  */

>-static inline int

>+static int

> vmxnet3_post_rx_bufs(vmxnet3_rx_queue_t *rxq, uint8_t ring_id)

> {

> 	int err = 0;

>-- 

>2.1.4

>
Stephen Hemminger March 7, 2015, 2 a.m. UTC | #2
On Fri, 6 Mar 2015 23:54:23 +0000
Yong Wang <yongwang@vmware.com> wrote:

> Since there is only one caller of this routine, inlining it should be
> fine. But I have no problem with letting the compiler decide (which
> probably will inline it anyway for this particular case).

Sometimes compiler will not inline because of register pressure issues
especially on 32 bit where there aren't enough registers.
diff mbox

Patch

diff --git a/lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c b/lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c
index f6c3452..cabb505 100644
--- a/lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c
+++ b/lib/librte_pmd_vmxnet3/vmxnet3_rxtx.c
@@ -84,10 +84,8 @@ 
 #define RTE_MBUF_DATA_DMA_ADDR_DEFAULT(mb) \
 	(uint64_t) ((mb)->buf_physaddr + RTE_PKTMBUF_HEADROOM)
 
-static uint32_t rxprod_reg[2] = {VMXNET3_REG_RXPROD, VMXNET3_REG_RXPROD2};
+static const uint32_t rxprod_reg[2] = {VMXNET3_REG_RXPROD, VMXNET3_REG_RXPROD2};
 
-static inline int vmxnet3_post_rx_bufs(vmxnet3_rx_queue_t* , uint8_t);
-static inline void vmxnet3_tq_tx_complete(vmxnet3_tx_queue_t *);
 #ifdef RTE_LIBRTE_VMXNET3_DEBUG_DRIVER_NOT_USED
 static void vmxnet3_rxq_dump(struct vmxnet3_rx_queue *);
 static void vmxnet3_txq_dump(struct vmxnet3_tx_queue *);
@@ -157,7 +155,7 @@  vmxnet3_txq_dump(struct vmxnet3_tx_queue *txq)
 }
 #endif
 
-static inline void
+static void
 vmxnet3_cmd_ring_release_mbufs(vmxnet3_cmd_ring_t *ring)
 {
 	while (ring->next2comp != ring->next2fill) {
@@ -296,7 +294,7 @@  vmxnet3_dev_clear_queues(struct rte_eth_dev *dev)
 	}
 }
 
-static inline void
+static void
 vmxnet3_tq_tx_complete(vmxnet3_tx_queue_t *txq)
 {
 	int completed = 0;
@@ -472,7 +470,7 @@  vmxnet3_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
  *      only for LRO.
  *
  */
-static inline int
+static int
 vmxnet3_post_rx_bufs(vmxnet3_rx_queue_t *rxq, uint8_t ring_id)
 {
 	int err = 0;