[dpdk-dev] [PATCH v2 07/11] ixgbevf: cleanup unnecessary interrupt handler

2015-10-30 Thread Cunming Liang
As ixgbe vf doesn't support lsc, the patch removes those unused code.
In addition, it does some tiny cleanup.

Signed-off-by: Cunming Liang 
---
 drivers/net/ixgbe/ixgbe_ethdev.c | 85 +---
 1 file changed, 10 insertions(+), 75 deletions(-)

diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index 366923f..794171c 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -206,8 +206,6 @@ static void ixgbe_dcb_init(struct ixgbe_hw *hw,struct 
ixgbe_dcb_config *dcb_conf
 /* For Virtual Function support */
 static int eth_ixgbevf_dev_init(struct rte_eth_dev *eth_dev);
 static int eth_ixgbevf_dev_uninit(struct rte_eth_dev *eth_dev);
-static int ixgbevf_dev_interrupt_get_status(struct rte_eth_dev *dev);
-static int ixgbevf_dev_interrupt_action(struct rte_eth_dev *dev);
 static int  ixgbevf_dev_configure(struct rte_eth_dev *dev);
 static int  ixgbevf_dev_start(struct rte_eth_dev *dev);
 static void ixgbevf_dev_stop(struct rte_eth_dev *dev);
@@ -223,8 +221,6 @@ static void ixgbevf_vlan_strip_queue_set(struct rte_eth_dev 
*dev,
uint16_t queue, int on);
 static void ixgbevf_vlan_offload_set(struct rte_eth_dev *dev, int mask);
 static void ixgbevf_set_vfta_all(struct rte_eth_dev *dev, bool on);
-static void ixgbevf_dev_interrupt_handler(struct rte_intr_handle *handle,
- void *param);
 static int ixgbevf_dev_rx_queue_intr_enable(struct rte_eth_dev *dev,
uint16_t queue_id);
 static int ixgbevf_dev_rx_queue_intr_disable(struct rte_eth_dev *dev,
@@ -2681,30 +2677,6 @@ ixgbe_dev_interrupt_get_status(struct rte_eth_dev *dev)
return 0;
 }

-static int
-ixgbevf_dev_interrupt_get_status(struct rte_eth_dev *dev)
-{
-   uint32_t eicr;
-   struct ixgbe_hw *hw = IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-   struct ixgbe_interrupt *intr =
-   IXGBE_DEV_PRIVATE_TO_INTR(dev->data->dev_private);
-
-   /* clear all cause mask */
-   ixgbevf_intr_disable(hw);
-
-   /* read-on-clear nic registers here */
-   eicr = IXGBE_READ_REG(hw, IXGBE_VTEICR);
-   PMD_DRV_LOG(INFO, "eicr %x", eicr);
-
-   intr->flags = 0;
-
-   /* set flag for async link update */
-   if (eicr & IXGBE_EICR_LSC)
-   intr->flags |= IXGBE_FLAG_NEED_LINK_UPDATE;
-
-   return 0;
-}
-
 /**
  * It gets and then prints the link status.
  *
@@ -2800,18 +2772,6 @@ ixgbe_dev_interrupt_action(struct rte_eth_dev *dev)
return 0;
 }

-static int
-ixgbevf_dev_interrupt_action(struct rte_eth_dev *dev)
-{
-   struct ixgbe_hw *hw =
-   IXGBE_DEV_PRIVATE_TO_HW(dev->data->dev_private);
-
-   PMD_DRV_LOG(DEBUG, "enable intr immediately");
-   ixgbevf_intr_enable(hw);
-   rte_intr_enable(&dev->pci_dev->intr_handle);
-   return 0;
-}
-
 /**
  * Interrupt handler which shall be registered for alarm callback for delayed
  * handling specific interrupt to wait for the stable nic state. As the
@@ -2874,16 +2834,6 @@ ixgbe_dev_interrupt_handler(__rte_unused struct 
rte_intr_handle *handle,
ixgbe_dev_interrupt_action(dev);
 }

-static void
-ixgbevf_dev_interrupt_handler(__rte_unused struct rte_intr_handle *handle,
- void *param)
-{
-   struct rte_eth_dev *dev = (struct rte_eth_dev *)param;
-
-   ixgbevf_dev_interrupt_get_status(dev);
-   ixgbevf_dev_interrupt_action(dev);
-}
-
 static int
 ixgbe_dev_led_on(struct rte_eth_dev *dev)
 {
@@ -3492,11 +3442,11 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
ixgbevf_dev_rxtx_start(dev);

/* check and configure queue intr-vector mapping */
-   if (dev->data->dev_conf.intr_conf.rxq != 0)
+   if (dev->data->dev_conf.intr_conf.rxq != 0) {
intr_vector = dev->data->nb_rx_queues;
-
-   if (rte_intr_efd_enable(intr_handle, intr_vector))
-   return -1;
+   if (rte_intr_efd_enable(intr_handle, intr_vector))
+   return -1;
+   }

if (rte_intr_dp_is_en(intr_handle) && !intr_handle->intr_vec) {
intr_handle->intr_vec =
@@ -3510,16 +3460,6 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
}
ixgbevf_configure_msix(dev);

-   if (dev->data->dev_conf.intr_conf.lsc != 0) {
-   if (rte_intr_allow_others(intr_handle))
-   rte_intr_callback_register(intr_handle,
-   ixgbevf_dev_interrupt_handler,
-   (void *)dev);
-   else
-   PMD_INIT_LOG(INFO, "lsc won't enable because of"
-" no intr multiplex\n");
-   }
-
rte_intr_enable(intr_handle);

/* Re-enable interrupt for VF */
@@ -3565,7 +3505,6 @@ static void
 ixgbevf_dev_close(struct rte_eth_dev *dev)
 {
struct ixgbe_hw *hw = IXGBE_DEV_PRI

[dpdk-dev] [PATCH v2 07/11] ixgbevf: cleanup unnecessary interrupt handler

2015-11-02 Thread David Marchand
On Fri, Oct 30, 2015 at 6:27 AM, Cunming Liang 
wrote:

> As ixgbe vf doesn't support lsc, the patch removes those unused code.
> In addition, it does some tiny cleanup.
>

Please, can you describe this tiny cleanup ?
Did it trigger some bug ?


> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
> b/drivers/net/ixgbe/ixgbe_ethdev.c
> index 366923f..794171c 100644
> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> [snip]
> @@ -3492,11 +3442,11 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
> ixgbevf_dev_rxtx_start(dev);
>
> /* check and configure queue intr-vector mapping */
> -   if (dev->data->dev_conf.intr_conf.rxq != 0)
> +   if (dev->data->dev_conf.intr_conf.rxq != 0) {
> intr_vector = dev->data->nb_rx_queues;
> -
> -   if (rte_intr_efd_enable(intr_handle, intr_vector))
> -   return -1;
> +   if (rte_intr_efd_enable(intr_handle, intr_vector))
> +   return -1;
> +   }
>
>


-- 
David Marchand


[dpdk-dev] [PATCH v2 07/11] ixgbevf: cleanup unnecessary interrupt handler

2015-11-04 Thread Liang, Cunming
Hi David,

On 11/3/2015 12:06 AM, David Marchand wrote:
> On Fri, Oct 30, 2015 at 6:27 AM, Cunming Liang 
> wrote:
>
>> As ixgbe vf doesn't support lsc, the patch removes those unused code.
>> In addition, it does some tiny cleanup.
>>
> Please, can you describe this tiny cleanup ?
> Did it trigger some bug ?
It causes confusing to enable/allocate efd with a zero number of vector.
But this piece of code shall be merged in a different patch. Thanks.
>> diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
>> b/drivers/net/ixgbe/ixgbe_ethdev.c
>> index 366923f..794171c 100644
>> --- a/drivers/net/ixgbe/ixgbe_ethdev.c
>> +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
>> [snip]
>> @@ -3492,11 +3442,11 @@ ixgbevf_dev_start(struct rte_eth_dev *dev)
>>  ixgbevf_dev_rxtx_start(dev);
>>
>>  /* check and configure queue intr-vector mapping */
>> -   if (dev->data->dev_conf.intr_conf.rxq != 0)
>> +   if (dev->data->dev_conf.intr_conf.rxq != 0) {
>>  intr_vector = dev->data->nb_rx_queues;
>> -
>> -   if (rte_intr_efd_enable(intr_handle, intr_vector))
>> -   return -1;
>> +   if (rte_intr_efd_enable(intr_handle, intr_vector))
>> +   return -1;
>> +   }
>>
>>
>