@@ -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;
}
}
@@ -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 */
@@ -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);
}
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 <echaudro@redhat.com> --- lib/dpif-offload-dummy.c | 24 +++++++++--------------- lib/dummy.h | 1 - lib/netdev-dummy.c | 1 - 3 files changed, 9 insertions(+), 17 deletions(-)