[ovs-dev] [PATCH v4 3/7] netdev: Remove unused may_steal.

Ilya Maximets i.maximets at samsung.com
Mon Oct 9 06:16:56 UTC 2017


On 08.10.2017 12:32, Gao Zhenyu wrote:
> Hi llya,
> 
>   Thanks for working it. Your patch tried to eliminate the may_steal in dpdk qos, because may_steal handled on dpif-netdev layer and always true.
>   But in function dpdk_do_tx_copy, it set the may_steal to false, because the packet buffer were not allocated by dpdk side so cannot released by netdev_dpdk_policer_run(). Otherwise it may hit coredump. Did you test that scenario?
> 
> Thanks
> Zhenyu Gao

Good catch. Thanks.

Following incremental can be used to fix the issue:
----------------------------------------------------------------------------
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index 300a0ae..3352ae2 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
@@ -1538,7 +1538,9 @@ netdev_dpdk_policer_run(struct rte_meter_srtcm *meter,
             }
             cnt++;
         } else {
-            rte_pktmbuf_free(pkt);
+            /* In case of calling from 'dpdk_do_tx_copy' 'pkt' could be not
+             * a DPDK allocated mbuf. */
+            dp_packet_delete((struct dp_packet *) pkt);
         }
     }
 
----------------------------------------------------------------------------


Best regards, Ilya Maximets.


More information about the dev mailing list