DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH v3] net/fm10k: fix fm10k stats crash in multi-process
       [not found] <b062a6a6-907a-4186-9951-08058ece5b69>
@ 2019-08-07  7:15 ` Lu Qiuwen
  2019-08-07  7:20 ` [dpdk-dev] [PATCH v4] " Lu Qiuwen
  1 sibling, 0 replies; 3+ messages in thread
From: Lu Qiuwen @ 2019-08-07  7:15 UTC (permalink / raw)
  To: dev; +Cc: jeffrey.b.shaw, Xiao Wang

The ops pointers in fm10k_stats_get() is setup from primary process,
when secondary process call these function pointers, a segment fault
will happend.

v2 - delete some empty lines after the function declaration.
v3 - add patch version, fixes and make title shorter.

Fixes: 7223d200c227 ("fm10k: add base driver")
Cc: jeffrey.b.shaw@intel.com

Signed-off-by: Lu Qiuwen <luqiuwen@iie.ac.cn>
Acked-by: Xiao Wang <xiao.w.wang@intel.com>
---
 drivers/net/fm10k/base/fm10k_api.c | 20 ++++++++++++++++----
 drivers/net/fm10k/base/fm10k_pf.c  |  4 ++--
 drivers/net/fm10k/base/fm10k_pf.h  |  6 ++++++
 drivers/net/fm10k/base/fm10k_vf.c  |  4 ++--
 drivers/net/fm10k/base/fm10k_vf.h  |  5 +++++
 5 files changed, 31 insertions(+), 8 deletions(-)

diff --git a/drivers/net/fm10k/base/fm10k_api.c b/drivers/net/fm10k/base/fm10k_api.c
index c49d20dfb..e7b2fe710 100644
--- a/drivers/net/fm10k/base/fm10k_api.c
+++ b/drivers/net/fm10k/base/fm10k_api.c
@@ -234,8 +234,14 @@ s32 fm10k_read_mac_addr(struct fm10k_hw *hw)
  * */
 void fm10k_update_hw_stats(struct fm10k_hw *hw, struct fm10k_hw_stats *stats)
 {
-	if (hw->mac.ops.update_hw_stats)
-		hw->mac.ops.update_hw_stats(hw, stats);
+	switch (hw->mac.type) {
+	case fm10k_mac_pf:
+		return fm10k_update_hw_stats_pf(hw, stats);
+	case fm10k_mac_vf:
+		return fm10k_update_hw_stats_vf(hw, stats);
+	default:
+		break;
+	}
 }
 
 /**
@@ -246,8 +252,14 @@ void fm10k_update_hw_stats(struct fm10k_hw *hw, struct fm10k_hw_stats *stats)
  * */
 void fm10k_rebind_hw_stats(struct fm10k_hw *hw, struct fm10k_hw_stats *stats)
 {
-	if (hw->mac.ops.rebind_hw_stats)
-		hw->mac.ops.rebind_hw_stats(hw, stats);
+	switch (hw->mac.type) {
+	case fm10k_mac_pf:
+		return fm10k_rebind_hw_stats_pf(hw, stats);
+	case fm10k_mac_vf:
+		return fm10k_rebind_hw_stats_vf(hw, stats);
+	default:
+		break;
+	}
 }
 
 /**
diff --git a/drivers/net/fm10k/base/fm10k_pf.c b/drivers/net/fm10k/base/fm10k_pf.c
index db5f4912f..f5b6a9e2e 100644
--- a/drivers/net/fm10k/base/fm10k_pf.c
+++ b/drivers/net/fm10k/base/fm10k_pf.c
@@ -1511,7 +1511,7 @@ const struct fm10k_msg_data fm10k_iov_msg_data_pf[] = {
  *  This function collects and aggregates global and per queue hardware
  *  statistics.
  **/
-STATIC void fm10k_update_hw_stats_pf(struct fm10k_hw *hw,
+void fm10k_update_hw_stats_pf(struct fm10k_hw *hw,
 				     struct fm10k_hw_stats *stats)
 {
 	u32 timeout, ur, ca, um, xec, vlan_drop, loopback_drop, nodesc_drop;
@@ -1584,7 +1584,7 @@ STATIC void fm10k_update_hw_stats_pf(struct fm10k_hw *hw,
  *  This function resets the base for global and per queue hardware
  *  statistics.
  **/
-STATIC void fm10k_rebind_hw_stats_pf(struct fm10k_hw *hw,
+void fm10k_rebind_hw_stats_pf(struct fm10k_hw *hw,
 				     struct fm10k_hw_stats *stats)
 {
 	DEBUGFUNC("fm10k_rebind_hw_stats_pf");
diff --git a/drivers/net/fm10k/base/fm10k_pf.h b/drivers/net/fm10k/base/fm10k_pf.h
index ca125c273..2c22bdd02 100644
--- a/drivers/net/fm10k/base/fm10k_pf.h
+++ b/drivers/net/fm10k/base/fm10k_pf.h
@@ -184,4 +184,10 @@ extern const struct fm10k_msg_data fm10k_iov_msg_data_pf[];
 #endif
 
 s32 fm10k_init_ops_pf(struct fm10k_hw *hw);
+
+void fm10k_update_hw_stats_pf(struct fm10k_hw *hw,
+				     struct fm10k_hw_stats *stats);
+
+void fm10k_rebind_hw_stats_pf(struct fm10k_hw *hw,
+				     struct fm10k_hw_stats *stats);
 #endif /* _FM10K_PF_H */
diff --git a/drivers/net/fm10k/base/fm10k_vf.c b/drivers/net/fm10k/base/fm10k_vf.c
index bd449773a..2f4b5f5d2 100644
--- a/drivers/net/fm10k/base/fm10k_vf.c
+++ b/drivers/net/fm10k/base/fm10k_vf.c
@@ -526,7 +526,7 @@ const struct fm10k_tlv_attr fm10k_1588_msg_attr[] = {
  *
  *  This function collects and aggregates per queue hardware statistics.
  **/
-STATIC void fm10k_update_hw_stats_vf(struct fm10k_hw *hw,
+void fm10k_update_hw_stats_vf(struct fm10k_hw *hw,
 				     struct fm10k_hw_stats *stats)
 {
 	DEBUGFUNC("fm10k_update_hw_stats_vf");
@@ -541,7 +541,7 @@ STATIC void fm10k_update_hw_stats_vf(struct fm10k_hw *hw,
  *
  *  This function resets the base for queue hardware statistics.
  **/
-STATIC void fm10k_rebind_hw_stats_vf(struct fm10k_hw *hw,
+void fm10k_rebind_hw_stats_vf(struct fm10k_hw *hw,
 				     struct fm10k_hw_stats *stats)
 {
 	DEBUGFUNC("fm10k_rebind_hw_stats_vf");
diff --git a/drivers/net/fm10k/base/fm10k_vf.h b/drivers/net/fm10k/base/fm10k_vf.h
index 116c56fcc..d4edd330e 100644
--- a/drivers/net/fm10k/base/fm10k_vf.h
+++ b/drivers/net/fm10k/base/fm10k_vf.h
@@ -89,4 +89,9 @@ extern const struct fm10k_tlv_attr fm10k_1588_msg_attr[];
 	FM10K_MSG_HANDLER(FM10K_VF_MSG_ID_1588, fm10k_1588_msg_attr, func)
 
 s32 fm10k_init_ops_vf(struct fm10k_hw *hw);
+
+void fm10k_update_hw_stats_vf(struct fm10k_hw *hw,
+				     struct fm10k_hw_stats *stats);
+void fm10k_rebind_hw_stats_vf(struct fm10k_hw *hw,
+				     struct fm10k_hw_stats *stats);
 #endif /* _FM10K_VF_H */
-- 
2.20.1.windows.1


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [dpdk-dev] [PATCH v4] net/fm10k: fix fm10k stats crash in multi-process
       [not found] <b062a6a6-907a-4186-9951-08058ece5b69>
  2019-08-07  7:15 ` [dpdk-dev] [PATCH v3] net/fm10k: fix fm10k stats crash in multi-process Lu Qiuwen
@ 2019-08-07  7:20 ` Lu Qiuwen
  2019-08-07  7:36   ` Wang, Xiao W
  1 sibling, 1 reply; 3+ messages in thread
From: Lu Qiuwen @ 2019-08-07  7:20 UTC (permalink / raw)
  To: dev; +Cc: jeffrey.b.shaw, Xiao Wang

The ops pointers in fm10k_stats_get() is setup from primary process,
when secondary process call these function pointers, a segment fault
will happened.

v2 - delete some empty lines after the function declaration.
v3 - add patch version, fixes and make title shorter.
v4 - fix the misspelled word in the commit message.

Fixes: 7223d200c227 ("fm10k: add base driver")
Cc: jeffrey.b.shaw@intel.com

Signed-off-by: Lu Qiuwen <luqiuwen@iie.ac.cn>
Acked-by: Xiao Wang <xiao.w.wang@intel.com>
---
 drivers/net/fm10k/base/fm10k_api.c | 20 ++++++++++++++++----
 drivers/net/fm10k/base/fm10k_pf.c  |  4 ++--
 drivers/net/fm10k/base/fm10k_pf.h  |  6 ++++++
 drivers/net/fm10k/base/fm10k_vf.c  |  4 ++--
 drivers/net/fm10k/base/fm10k_vf.h  |  5 +++++
 5 files changed, 31 insertions(+), 8 deletions(-)

diff --git a/drivers/net/fm10k/base/fm10k_api.c b/drivers/net/fm10k/base/fm10k_api.c
index c49d20dfb..e7b2fe710 100644
--- a/drivers/net/fm10k/base/fm10k_api.c
+++ b/drivers/net/fm10k/base/fm10k_api.c
@@ -234,8 +234,14 @@ s32 fm10k_read_mac_addr(struct fm10k_hw *hw)
  * */
 void fm10k_update_hw_stats(struct fm10k_hw *hw, struct fm10k_hw_stats *stats)
 {
-	if (hw->mac.ops.update_hw_stats)
-		hw->mac.ops.update_hw_stats(hw, stats);
+	switch (hw->mac.type) {
+	case fm10k_mac_pf:
+		return fm10k_update_hw_stats_pf(hw, stats);
+	case fm10k_mac_vf:
+		return fm10k_update_hw_stats_vf(hw, stats);
+	default:
+		break;
+	}
 }
 
 /**
@@ -246,8 +252,14 @@ void fm10k_update_hw_stats(struct fm10k_hw *hw, struct fm10k_hw_stats *stats)
  * */
 void fm10k_rebind_hw_stats(struct fm10k_hw *hw, struct fm10k_hw_stats *stats)
 {
-	if (hw->mac.ops.rebind_hw_stats)
-		hw->mac.ops.rebind_hw_stats(hw, stats);
+	switch (hw->mac.type) {
+	case fm10k_mac_pf:
+		return fm10k_rebind_hw_stats_pf(hw, stats);
+	case fm10k_mac_vf:
+		return fm10k_rebind_hw_stats_vf(hw, stats);
+	default:
+		break;
+	}
 }
 
 /**
diff --git a/drivers/net/fm10k/base/fm10k_pf.c b/drivers/net/fm10k/base/fm10k_pf.c
index db5f4912f..f5b6a9e2e 100644
--- a/drivers/net/fm10k/base/fm10k_pf.c
+++ b/drivers/net/fm10k/base/fm10k_pf.c
@@ -1511,7 +1511,7 @@ const struct fm10k_msg_data fm10k_iov_msg_data_pf[] = {
  *  This function collects and aggregates global and per queue hardware
  *  statistics.
  **/
-STATIC void fm10k_update_hw_stats_pf(struct fm10k_hw *hw,
+void fm10k_update_hw_stats_pf(struct fm10k_hw *hw,
 				     struct fm10k_hw_stats *stats)
 {
 	u32 timeout, ur, ca, um, xec, vlan_drop, loopback_drop, nodesc_drop;
@@ -1584,7 +1584,7 @@ STATIC void fm10k_update_hw_stats_pf(struct fm10k_hw *hw,
  *  This function resets the base for global and per queue hardware
  *  statistics.
  **/
-STATIC void fm10k_rebind_hw_stats_pf(struct fm10k_hw *hw,
+void fm10k_rebind_hw_stats_pf(struct fm10k_hw *hw,
 				     struct fm10k_hw_stats *stats)
 {
 	DEBUGFUNC("fm10k_rebind_hw_stats_pf");
diff --git a/drivers/net/fm10k/base/fm10k_pf.h b/drivers/net/fm10k/base/fm10k_pf.h
index ca125c273..2c22bdd02 100644
--- a/drivers/net/fm10k/base/fm10k_pf.h
+++ b/drivers/net/fm10k/base/fm10k_pf.h
@@ -184,4 +184,10 @@ extern const struct fm10k_msg_data fm10k_iov_msg_data_pf[];
 #endif
 
 s32 fm10k_init_ops_pf(struct fm10k_hw *hw);
+
+void fm10k_update_hw_stats_pf(struct fm10k_hw *hw,
+				     struct fm10k_hw_stats *stats);
+
+void fm10k_rebind_hw_stats_pf(struct fm10k_hw *hw,
+				     struct fm10k_hw_stats *stats);
 #endif /* _FM10K_PF_H */
diff --git a/drivers/net/fm10k/base/fm10k_vf.c b/drivers/net/fm10k/base/fm10k_vf.c
index bd449773a..2f4b5f5d2 100644
--- a/drivers/net/fm10k/base/fm10k_vf.c
+++ b/drivers/net/fm10k/base/fm10k_vf.c
@@ -526,7 +526,7 @@ const struct fm10k_tlv_attr fm10k_1588_msg_attr[] = {
  *
  *  This function collects and aggregates per queue hardware statistics.
  **/
-STATIC void fm10k_update_hw_stats_vf(struct fm10k_hw *hw,
+void fm10k_update_hw_stats_vf(struct fm10k_hw *hw,
 				     struct fm10k_hw_stats *stats)
 {
 	DEBUGFUNC("fm10k_update_hw_stats_vf");
@@ -541,7 +541,7 @@ STATIC void fm10k_update_hw_stats_vf(struct fm10k_hw *hw,
  *
  *  This function resets the base for queue hardware statistics.
  **/
-STATIC void fm10k_rebind_hw_stats_vf(struct fm10k_hw *hw,
+void fm10k_rebind_hw_stats_vf(struct fm10k_hw *hw,
 				     struct fm10k_hw_stats *stats)
 {
 	DEBUGFUNC("fm10k_rebind_hw_stats_vf");
diff --git a/drivers/net/fm10k/base/fm10k_vf.h b/drivers/net/fm10k/base/fm10k_vf.h
index 116c56fcc..d4edd330e 100644
--- a/drivers/net/fm10k/base/fm10k_vf.h
+++ b/drivers/net/fm10k/base/fm10k_vf.h
@@ -89,4 +89,9 @@ extern const struct fm10k_tlv_attr fm10k_1588_msg_attr[];
 	FM10K_MSG_HANDLER(FM10K_VF_MSG_ID_1588, fm10k_1588_msg_attr, func)
 
 s32 fm10k_init_ops_vf(struct fm10k_hw *hw);
+
+void fm10k_update_hw_stats_vf(struct fm10k_hw *hw,
+				     struct fm10k_hw_stats *stats);
+void fm10k_rebind_hw_stats_vf(struct fm10k_hw *hw,
+				     struct fm10k_hw_stats *stats);
 #endif /* _FM10K_VF_H */
-- 
2.20.1.windows.1


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [dpdk-dev] [PATCH v4] net/fm10k: fix fm10k stats crash in multi-process
  2019-08-07  7:20 ` [dpdk-dev] [PATCH v4] " Lu Qiuwen
@ 2019-08-07  7:36   ` Wang, Xiao W
  0 siblings, 0 replies; 3+ messages in thread
From: Wang, Xiao W @ 2019-08-07  7:36 UTC (permalink / raw)
  To: Lu Qiuwen, dev; +Cc: Shaw, Jeffrey B

Hi Qiuwen,

> -----Original Message-----
> From: Lu Qiuwen [mailto:luqiuwen@iie.ac.cn]
> Sent: Wednesday, August 7, 2019 3:21 PM
> To: dev@dpdk.org
> Cc: Shaw, Jeffrey B <jeffrey.b.shaw@intel.com>; Wang, Xiao W
> <xiao.w.wang@intel.com>
> Subject: [PATCH v4] net/fm10k: fix fm10k stats crash in multi-process
> 
> The ops pointers in fm10k_stats_get() is setup from primary process,

s/setup/set up
s/is/are

> when secondary process call these function pointers, a segment fault
> will happened.

s/happened/happen
Please check the words carefully :)

> 
> v2 - delete some empty lines after the function declaration.
> v3 - add patch version, fixes and make title shorter.
> v4 - fix the misspelled word in the commit message.

Do not put these change log into commit log directly. Make it like below,
or use a cover-letter.

Signed-off-by: Lu Qiuwen <luqiuwen@iie.ac.cn>
Acked-by: Xiao Wang <xiao.w.wang@intel.com>
---
V4:
- *..
V3:
- *..
V2:
- *..
---
drivers/net/fm10k/base/fm10k_api.c | 20 ++++++++++++++++----


> 
> Fixes: 7223d200c227 ("fm10k: add base driver")

Cc: stable@dpdk.com, as this is a fix patch.
Also, cc Qi Zhang who is also the maintainer.

-Xiao

> Cc: jeffrey.b.shaw@intel.com
> 
> Signed-off-by: Lu Qiuwen <luqiuwen@iie.ac.cn>
> Acked-by: Xiao Wang <xiao.w.wang@intel.com>
> ---
>  drivers/net/fm10k/base/fm10k_api.c | 20 ++++++++++++++++----
>  drivers/net/fm10k/base/fm10k_pf.c  |  4 ++--
>  drivers/net/fm10k/base/fm10k_pf.h  |  6 ++++++
>  drivers/net/fm10k/base/fm10k_vf.c  |  4 ++--
>  drivers/net/fm10k/base/fm10k_vf.h  |  5 +++++
>  5 files changed, 31 insertions(+), 8 deletions(-)
> 
> diff --git a/drivers/net/fm10k/base/fm10k_api.c
> b/drivers/net/fm10k/base/fm10k_api.c
> index c49d20dfb..e7b2fe710 100644
> --- a/drivers/net/fm10k/base/fm10k_api.c
> +++ b/drivers/net/fm10k/base/fm10k_api.c
> @@ -234,8 +234,14 @@ s32 fm10k_read_mac_addr(struct fm10k_hw *hw)
>   * */
>  void fm10k_update_hw_stats(struct fm10k_hw *hw, struct fm10k_hw_stats
> *stats)
>  {
> -	if (hw->mac.ops.update_hw_stats)
> -		hw->mac.ops.update_hw_stats(hw, stats);
> +	switch (hw->mac.type) {
> +	case fm10k_mac_pf:
> +		return fm10k_update_hw_stats_pf(hw, stats);
> +	case fm10k_mac_vf:
> +		return fm10k_update_hw_stats_vf(hw, stats);
> +	default:
> +		break;
> +	}
>  }
> 
>  /**
> @@ -246,8 +252,14 @@ void fm10k_update_hw_stats(struct fm10k_hw *hw,
> struct fm10k_hw_stats *stats)
>   * */
>  void fm10k_rebind_hw_stats(struct fm10k_hw *hw, struct fm10k_hw_stats
> *stats)
>  {
> -	if (hw->mac.ops.rebind_hw_stats)
> -		hw->mac.ops.rebind_hw_stats(hw, stats);
> +	switch (hw->mac.type) {
> +	case fm10k_mac_pf:
> +		return fm10k_rebind_hw_stats_pf(hw, stats);
> +	case fm10k_mac_vf:
> +		return fm10k_rebind_hw_stats_vf(hw, stats);
> +	default:
> +		break;
> +	}
>  }
> 
>  /**
> diff --git a/drivers/net/fm10k/base/fm10k_pf.c
> b/drivers/net/fm10k/base/fm10k_pf.c
> index db5f4912f..f5b6a9e2e 100644
> --- a/drivers/net/fm10k/base/fm10k_pf.c
> +++ b/drivers/net/fm10k/base/fm10k_pf.c
> @@ -1511,7 +1511,7 @@ const struct fm10k_msg_data
> fm10k_iov_msg_data_pf[] = {
>   *  This function collects and aggregates global and per queue hardware
>   *  statistics.
>   **/
> -STATIC void fm10k_update_hw_stats_pf(struct fm10k_hw *hw,
> +void fm10k_update_hw_stats_pf(struct fm10k_hw *hw,
>  				     struct fm10k_hw_stats *stats)
>  {
>  	u32 timeout, ur, ca, um, xec, vlan_drop, loopback_drop,
> nodesc_drop;
> @@ -1584,7 +1584,7 @@ STATIC void fm10k_update_hw_stats_pf(struct
> fm10k_hw *hw,
>   *  This function resets the base for global and per queue hardware
>   *  statistics.
>   **/
> -STATIC void fm10k_rebind_hw_stats_pf(struct fm10k_hw *hw,
> +void fm10k_rebind_hw_stats_pf(struct fm10k_hw *hw,
>  				     struct fm10k_hw_stats *stats)
>  {
>  	DEBUGFUNC("fm10k_rebind_hw_stats_pf");
> diff --git a/drivers/net/fm10k/base/fm10k_pf.h
> b/drivers/net/fm10k/base/fm10k_pf.h
> index ca125c273..2c22bdd02 100644
> --- a/drivers/net/fm10k/base/fm10k_pf.h
> +++ b/drivers/net/fm10k/base/fm10k_pf.h
> @@ -184,4 +184,10 @@ extern const struct fm10k_msg_data
> fm10k_iov_msg_data_pf[];
>  #endif
> 
>  s32 fm10k_init_ops_pf(struct fm10k_hw *hw);
> +
> +void fm10k_update_hw_stats_pf(struct fm10k_hw *hw,
> +				     struct fm10k_hw_stats *stats);
> +
> +void fm10k_rebind_hw_stats_pf(struct fm10k_hw *hw,
> +				     struct fm10k_hw_stats *stats);
>  #endif /* _FM10K_PF_H */
> diff --git a/drivers/net/fm10k/base/fm10k_vf.c
> b/drivers/net/fm10k/base/fm10k_vf.c
> index bd449773a..2f4b5f5d2 100644
> --- a/drivers/net/fm10k/base/fm10k_vf.c
> +++ b/drivers/net/fm10k/base/fm10k_vf.c
> @@ -526,7 +526,7 @@ const struct fm10k_tlv_attr fm10k_1588_msg_attr[] =
> {
>   *
>   *  This function collects and aggregates per queue hardware statistics.
>   **/
> -STATIC void fm10k_update_hw_stats_vf(struct fm10k_hw *hw,
> +void fm10k_update_hw_stats_vf(struct fm10k_hw *hw,
>  				     struct fm10k_hw_stats *stats)
>  {
>  	DEBUGFUNC("fm10k_update_hw_stats_vf");
> @@ -541,7 +541,7 @@ STATIC void fm10k_update_hw_stats_vf(struct
> fm10k_hw *hw,
>   *
>   *  This function resets the base for queue hardware statistics.
>   **/
> -STATIC void fm10k_rebind_hw_stats_vf(struct fm10k_hw *hw,
> +void fm10k_rebind_hw_stats_vf(struct fm10k_hw *hw,
>  				     struct fm10k_hw_stats *stats)
>  {
>  	DEBUGFUNC("fm10k_rebind_hw_stats_vf");
> diff --git a/drivers/net/fm10k/base/fm10k_vf.h
> b/drivers/net/fm10k/base/fm10k_vf.h
> index 116c56fcc..d4edd330e 100644
> --- a/drivers/net/fm10k/base/fm10k_vf.h
> +++ b/drivers/net/fm10k/base/fm10k_vf.h
> @@ -89,4 +89,9 @@ extern const struct fm10k_tlv_attr
> fm10k_1588_msg_attr[];
>  	FM10K_MSG_HANDLER(FM10K_VF_MSG_ID_1588,
> fm10k_1588_msg_attr, func)
> 
>  s32 fm10k_init_ops_vf(struct fm10k_hw *hw);
> +
> +void fm10k_update_hw_stats_vf(struct fm10k_hw *hw,
> +				     struct fm10k_hw_stats *stats);
> +void fm10k_rebind_hw_stats_vf(struct fm10k_hw *hw,
> +				     struct fm10k_hw_stats *stats);
>  #endif /* _FM10K_VF_H */
> --
> 2.20.1.windows.1


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2019-08-07  7:36 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <b062a6a6-907a-4186-9951-08058ece5b69>
2019-08-07  7:15 ` [dpdk-dev] [PATCH v3] net/fm10k: fix fm10k stats crash in multi-process Lu Qiuwen
2019-08-07  7:20 ` [dpdk-dev] [PATCH v4] " Lu Qiuwen
2019-08-07  7:36   ` Wang, Xiao W

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).