Replace per-netdev dummy_netdev_hw_offload_run() callback with PMD thread infrastructure. Move offload work processing into dummy_pmd_thread_work_cb().
Signed-off-by: Eelco Chaudron <[email protected]> --- lib/dpif-offload-dummy.c | 24 +++++++++--------------- lib/dummy.h | 1 - lib/netdev-dummy.c | 1 - 3 files changed, 9 insertions(+), 17 deletions(-) diff --git a/lib/dpif-offload-dummy.c b/lib/dpif-offload-dummy.c index 80d6ce67c3..4335b199b9 100644 --- a/lib/dpif-offload-dummy.c +++ b/lib/dpif-offload-dummy.c @@ -972,15 +972,16 @@ dummy_netdev_simulate_offload(struct netdev *netdev, struct dp_packet *packet, return packet_stolen; } -void -dummy_netdev_hw_offload_run(struct netdev *netdev) +static void +dummy_pmd_thread_work_cb(unsigned core_id OVS_UNUSED, int numa_id OVS_UNUSED, + void *ctx) { - const struct dpif_offload *offload = ovsrcu_get( - const struct dpif_offload *, &netdev->dpif_offload); + const struct dpif_offload *offload = ctx; struct dpif_offload_port *port_; - if (!dpif_offload_enabled() || !offload - || strcmp(dpif_offload_type(offload), "dummy")) { + COVERAGE_INC(dummy_offload_do_work); + + if (!offload) { return; } @@ -1023,13 +1024,6 @@ dummy_netdev_hw_offload_run(struct netdev *netdev) } } -static void -dummy_pmd_thread_work_cb(unsigned core_id OVS_UNUSED, int numa_id OVS_UNUSED, - void *ctx OVS_UNUSED) -{ - COVERAGE_INC(dummy_offload_do_work); -} - static void dummy_pmd_thread_lifecycle(const struct dpif_offload *dpif_offload, bool exit, unsigned core_id, int numa_id, @@ -1050,9 +1044,9 @@ dummy_pmd_thread_lifecycle(const struct dpif_offload *dpif_offload, ovs_assert(!*callback || *callback == dummy_pmd_thread_work_cb); if (exit) { - free(*ctx); + *ctx = NULL; } else { - *ctx = *ctx ? *ctx : xstrdup("DUMMY_OFFLOAD_WORK"); + *ctx = (void *) dpif_offload; *callback = dummy_pmd_thread_work_cb; } } diff --git a/lib/dummy.h b/lib/dummy.h index f250ae5933..312fbed17c 100644 --- a/lib/dummy.h +++ b/lib/dummy.h @@ -49,6 +49,5 @@ void ofpact_dummy_enable(void); bool is_dummy_netdev_class(const struct netdev_class *); bool dummy_netdev_simulate_offload(struct netdev *, struct dp_packet *, int queue_id, struct flow *); -void dummy_netdev_hw_offload_run(struct netdev *); #endif /* dummy.h */ diff --git a/lib/netdev-dummy.c b/lib/netdev-dummy.c index d5e8599349..17ff436290 100644 --- a/lib/netdev-dummy.c +++ b/lib/netdev-dummy.c @@ -695,7 +695,6 @@ netdev_dummy_run(const struct netdev_class *netdev_class) ovs_mutex_lock(&dev->mutex); dummy_packet_conn_run(dev); ovs_mutex_unlock(&dev->mutex); - dummy_netdev_hw_offload_run(&dev->up); } ovs_mutex_unlock(&dummy_list_mutex); } -- 2.52.0 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
