[v2] net/ice: invoke callback func when link status change

Message ID 20191016062446.18001-1-leyi.rong@intel.com (mailing list archive)
State Accepted, archived
Delegated to: xiaolong ye
Headers
Series [v2] net/ice: invoke callback func when link status change |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/iol-compilation success Compile Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/Intel-compilation success Compilation OK
ci/iol-mellanox-Performance success Performance Testing PASS

Commit Message

Leyi Rong Oct. 16, 2019, 6:24 a.m. UTC
  Needs to call _rte_eth_dev_callback_process to run registered
callbacks when link status change.

Fixes: cf911d90e366 ("net/ice: support link update")

Signed-off-by: Leyi Rong <leyi.rong@intel.com>

---
v2:
- adds fixline in commit log.
---
 drivers/net/ice/ice_ethdev.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
  

Comments

Xiaolong Ye Oct. 16, 2019, 6:41 a.m. UTC | #1
On 10/16, Leyi Rong wrote:
>Needs to call _rte_eth_dev_callback_process to run registered
>callbacks when link status change.
>

Is it a must to call _rte_eth_dev_callback_process after link status change, I
see ice_link_update is also called in ice_dev_start, do we need to apply the
same change there too?

Thanks,
Xiaolong

>Fixes: cf911d90e366 ("net/ice: support link update")
>
>Signed-off-by: Leyi Rong <leyi.rong@intel.com>
>
>---
>v2:
>- adds fixline in commit log.
>---
> drivers/net/ice/ice_ethdev.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
>diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
>index 5567beb55..092f10d47 100644
>--- a/drivers/net/ice/ice_ethdev.c
>+++ b/drivers/net/ice/ice_ethdev.c
>@@ -1303,6 +1303,7 @@ ice_interrupt_handler(void *param)
> 	uint8_t pf_num;
> 	uint8_t event;
> 	uint16_t queue;
>+	int ret;
> #ifdef ICE_LSE_SPT
> 	uint32_t int_fw_ctl;
> #endif
>@@ -1330,7 +1331,10 @@ ice_interrupt_handler(void *param)
> #else
> 	if (oicr & PFINT_OICR_LINK_STAT_CHANGE_M) {
> 		PMD_DRV_LOG(INFO, "OICR: link state change event");
>-		ice_link_update(dev, 0);
>+		ret = ice_link_update(dev, 0);
>+		if (!ret)
>+			_rte_eth_dev_callback_process
>+				(dev, RTE_ETH_EVENT_INTR_LSC, NULL);
> 	}
> #endif
> 
>-- 
>2.17.1
>
  
Leyi Rong Oct. 16, 2019, 7:08 a.m. UTC | #2
> -----Original Message-----
> From: Ye, Xiaolong
> Sent: Wednesday, October 16, 2019 2:41 PM
> To: Rong, Leyi <leyi.rong@intel.com>
> Cc: Lu, Wenzhuo <wenzhuo.lu@intel.com>; Zhang, Qi Z <qi.z.zhang@intel.com>;
> dev@dpdk.org
> Subject: Re: [PATCH v2] net/ice: invoke callback func when link status change
> 
> On 10/16, Leyi Rong wrote:
> >Needs to call _rte_eth_dev_callback_process to run registered callbacks
> >when link status change.
> >
> 
> Is it a must to call _rte_eth_dev_callback_process after link status change, I see
> ice_link_update is also called in ice_dev_start, do we need to apply the same
> change there too?
> 

I think no needs to invoke the same callback in ice_dev_start, as it's not triggered by event
in start process.

> Thanks,
> Xiaolong
> 
> >Fixes: cf911d90e366 ("net/ice: support link update")
> >
> >Signed-off-by: Leyi Rong <leyi.rong@intel.com>
> >
> >---
> >v2:
> >- adds fixline in commit log.
> >---
> > drivers/net/ice/ice_ethdev.c | 6 +++++-
> > 1 file changed, 5 insertions(+), 1 deletion(-)
> >
> >diff --git a/drivers/net/ice/ice_ethdev.c
> >b/drivers/net/ice/ice_ethdev.c index 5567beb55..092f10d47 100644
> >--- a/drivers/net/ice/ice_ethdev.c
> >+++ b/drivers/net/ice/ice_ethdev.c
> >@@ -1303,6 +1303,7 @@ ice_interrupt_handler(void *param)
> > 	uint8_t pf_num;
> > 	uint8_t event;
> > 	uint16_t queue;
> >+	int ret;
> > #ifdef ICE_LSE_SPT
> > 	uint32_t int_fw_ctl;
> > #endif
> >@@ -1330,7 +1331,10 @@ ice_interrupt_handler(void *param)  #else
> > 	if (oicr & PFINT_OICR_LINK_STAT_CHANGE_M) {
> > 		PMD_DRV_LOG(INFO, "OICR: link state change event");
> >-		ice_link_update(dev, 0);
> >+		ret = ice_link_update(dev, 0);
> >+		if (!ret)
> >+			_rte_eth_dev_callback_process
> >+				(dev, RTE_ETH_EVENT_INTR_LSC, NULL);
> > 	}
> > #endif
> >
> >--
> >2.17.1
> >
  
Xiaolong Ye Oct. 17, 2019, 3:16 a.m. UTC | #3
On 10/16, Leyi Rong wrote:
>Needs to call _rte_eth_dev_callback_process to run registered
>callbacks when link status change.
>
>Fixes: cf911d90e366 ("net/ice: support link update")
>
>Signed-off-by: Leyi Rong <leyi.rong@intel.com>
>
>---
>v2:
>- adds fixline in commit log.
>---
> drivers/net/ice/ice_ethdev.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
>diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
>index 5567beb55..092f10d47 100644
>--- a/drivers/net/ice/ice_ethdev.c
>+++ b/drivers/net/ice/ice_ethdev.c
>@@ -1303,6 +1303,7 @@ ice_interrupt_handler(void *param)
> 	uint8_t pf_num;
> 	uint8_t event;
> 	uint16_t queue;
>+	int ret;
> #ifdef ICE_LSE_SPT
> 	uint32_t int_fw_ctl;
> #endif
>@@ -1330,7 +1331,10 @@ ice_interrupt_handler(void *param)
> #else
> 	if (oicr & PFINT_OICR_LINK_STAT_CHANGE_M) {
> 		PMD_DRV_LOG(INFO, "OICR: link state change event");
>-		ice_link_update(dev, 0);
>+		ret = ice_link_update(dev, 0);
>+		if (!ret)
>+			_rte_eth_dev_callback_process
>+				(dev, RTE_ETH_EVENT_INTR_LSC, NULL);
> 	}
> #endif
> 
>-- 
>2.17.1
>

Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>

Applied to dpdk-next-net-intel.
  

Patch

diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c
index 5567beb55..092f10d47 100644
--- a/drivers/net/ice/ice_ethdev.c
+++ b/drivers/net/ice/ice_ethdev.c
@@ -1303,6 +1303,7 @@  ice_interrupt_handler(void *param)
 	uint8_t pf_num;
 	uint8_t event;
 	uint16_t queue;
+	int ret;
 #ifdef ICE_LSE_SPT
 	uint32_t int_fw_ctl;
 #endif
@@ -1330,7 +1331,10 @@  ice_interrupt_handler(void *param)
 #else
 	if (oicr & PFINT_OICR_LINK_STAT_CHANGE_M) {
 		PMD_DRV_LOG(INFO, "OICR: link state change event");
-		ice_link_update(dev, 0);
+		ret = ice_link_update(dev, 0);
+		if (!ret)
+			_rte_eth_dev_callback_process
+				(dev, RTE_ETH_EVENT_INTR_LSC, NULL);
 	}
 #endif