[virtio-dev] Re: [RFC PATCH net-next v6 4/4] netvsc: refactor notifier/event handling code to use the bypass framework
On Tue, Apr 10, 2018 at 4:28 PM, Michael S. Tsirkin wrote: > On Tue, Apr 10, 2018 at 02:26:08PM -0700, Stephen Hemminger wrote: >> On Tue, 10 Apr 2018 11:59:50 -0700 >> Sridhar Samudrala wrote: >> >> > Use the registration/notification framework supported by the generic >> > bypass infrastructure. >> > >> > Signed-off-by: Sridhar Samudrala >> > --- >> >> Thanks for doing this. Your current version has couple show stopper >> issues. >> >> First, the slave device is instantly taking over the slave. >> This doesn't allow udev/systemd to do its device rename of the slave >> device. Netvsc uses a delayed work to workaround this. > > Interesting. Does this mean udev must act within a specific time window > then? Sighs, lots of hacks. Why propgating this from driver to a common module. We really need a clean solution. -Siwei > >> Secondly, the select queue needs to call queue selection in VF. >> The bonding/teaming logic doesn't work well for UDP flows. >> Commit b3bf5666a510 ("hv_netvsc: defer queue selection to VF") >> fixed this performance problem. >> >> Lastly, more indirection is bad in current climate. >> >> I am not completely adverse to this but it needs to be fast, simple >> and completely transparent. - To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org
[virtio-dev] Re: [RFC PATCH net-next v6 4/4] netvsc: refactor notifier/event handling code to use the bypass framework
On Tue, Apr 10, 2018 at 02:26:08PM -0700, Stephen Hemminger wrote: > On Tue, 10 Apr 2018 11:59:50 -0700 > Sridhar Samudrala wrote: > > > Use the registration/notification framework supported by the generic > > bypass infrastructure. > > > > Signed-off-by: Sridhar Samudrala > > --- > > Thanks for doing this. Your current version has couple show stopper > issues. > > First, the slave device is instantly taking over the slave. > This doesn't allow udev/systemd to do its device rename of the slave > device. Netvsc uses a delayed work to workaround this. Interesting. Does this mean udev must act within a specific time window then? > Secondly, the select queue needs to call queue selection in VF. > The bonding/teaming logic doesn't work well for UDP flows. > Commit b3bf5666a510 ("hv_netvsc: defer queue selection to VF") > fixed this performance problem. > > Lastly, more indirection is bad in current climate. > > I am not completely adverse to this but it needs to be fast, simple > and completely transparent. - To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org
[virtio-dev] Re: [RFC PATCH net-next v6 4/4] netvsc: refactor notifier/event handling code to use the bypass framework
On 4/10/2018 2:26 PM, Stephen Hemminger wrote: On Tue, 10 Apr 2018 11:59:50 -0700 Sridhar Samudrala wrote: Use the registration/notification framework supported by the generic bypass infrastructure. Signed-off-by: Sridhar Samudrala --- Thanks for doing this. Your current version has couple show stopper issues. First, the slave device is instantly taking over the slave. This doesn't allow udev/systemd to do its device rename of the slave device. Netvsc uses a delayed work to workaround this. OK. I guess you are referring to the dev_set_mtu() and dev_open() calls that are made in bypass_slave_register() and you want to defer them to be done after a delay. I could avoid these calls in case of netvsc based on bypass_ops. Secondly, the select queue needs to call queue selection in VF. The bonding/teaming logic doesn't work well for UDP flows. Commit b3bf5666a510 ("hv_netvsc: defer queue selection to VF") fixed this performance problem. netvsc should not be using bypass_select_queue() as that ndo op gets used only with 3-netdev model. Anyway, will look into updating bypass_select_queue() based on your fix. Lastly, more indirection is bad in current climate. I am not completely adverse to this but it needs to be fast, simple and completely transparent. Not sure we can avoid this indirection if we want to commonize the code, but use different models for virtio-net and netvsc. On the other hand, these patches avoid calls to get_netvsc_bymac() and get_netvsc_by_ref() that go through all the devices for all the netdev events. netvsc lookups should be much faster. Thanks Sridhar - To unsubscribe, e-mail: virtio-dev-unsubscr...@lists.oasis-open.org For additional commands, e-mail: virtio-dev-h...@lists.oasis-open.org