[ovs-dev] [PATCH 00/11] Reconfigure netdev at runtime
Kavanagh, Mark B
mark.b.kavanagh at intel.com
Tue Mar 1 17:10:34 UTC 2016
Hi Daniele,
Thanks for this patchset!
I like the approach you've taken - it really lends itself to maintainability and extensibility, and the implementation that you've provided is quite elegant.
I've reviewed the entire patchset, but have only found the need to comment on three of the patches. For the sake of brevity, consider this mail as confirmation that I'm happy with patches 2,3,4,5,6,8,9,10. I'll send on comments shortly for the other three. Oh, and please forgive any oversights/omissions on my part, as I'm still ramping on the upper OVS layers.
Thanks again,
Mark
>Currently we treat set_multiq() calls specially in netdev and dpif-netdev:
>every pmd thread must be stopped and set_multiq() is allowed to destroy and
>recreate the device.
>
>I think we can improve this by:
>* Generalizing the mechanism to allow changing other parameters at runtime
> (such as MTU).
>* Involving less the above layer (dpif-netdev). The request for changes
> often comes from below (netdev_dpdk_set_config(), or the vhost new_device()
> callback). There's no need for dpif-netdev to remember the requested value,
> all that it needs to know is that a configuration change is requested.
>
>This series implements exactly this: a mechanism to allow a netdev provider
>to request configuration changes, to which dpif-netdev will respond by
>stopping rx/tx and calling a netdev function to appy the new configuration.
>
>The new mechanism is used in this series to replace the set_multiq() call,
>but the idea is to use it also at least for:
>
>* Changing the MTU at runtime
>* Automatically detecting the number of rx queues for a vhost-user device
>
>The first commits also clean up some code in dpif-netdev and make the ports
>cmap fully RCU protected.
>
>Daniele Di Proietto (11):
> dpif-netdev: Proper error handling in do_add_port().
> dpif-netdev: Keep count of elements in port->rxq[].
> dpif-netdev: Do not keep refcount for ports.
> dpif-netdev: Remove useless dpif-dummy/delete-port appctl.
> dpif-netdev: Wait an RCU grace period before freeing ports.
> ofproto-dpif: Call dpif_poll_threads_set() before dpif_run()
> dpif-netdev: Change pmd thread configuration in dpif_netdev_run().
> dpif-netdev: Document locking discipline for non_pmd_mutex.
> dpif-netdev: Fix reconfigure_pmd_threads().
> netdev: Add reconfigure request mechanism.
> netdev-dpdk: Use ->reconfigure() call to change rx/tx queues.
>
> lib/dpif-netdev.c | 435 +++++++++++++++++++++++++++----------------------
> lib/dpif-provider.h | 3 +-
> lib/netdev-bsd.c | 1 +
> lib/netdev-dpdk.c | 166 +++++++++++--------
> lib/netdev-dummy.c | 1 +
> lib/netdev-linux.c | 1 +
> lib/netdev-provider.h | 42 +++--
> lib/netdev-vport.c | 1 +
> lib/netdev.c | 59 ++++---
> lib/netdev.h | 7 +-
> ofproto/ofproto-dpif.c | 4 +-
> tests/bridge.at | 4 +-
> 12 files changed, 410 insertions(+), 314 deletions(-)
>
>--
>2.1.4
>
>_______________________________________________
>dev mailing list
>dev at openvswitch.org
>http://openvswitch.org/mailman/listinfo/dev
More information about the dev
mailing list