On Tue, Aug 29, 2017 at 4:40 PM, Michael S. Tsirkin <m...@redhat.com> wrote: > On Tue, Aug 29, 2017 at 03:53:08PM -0400, Willem de Bruijn wrote: >> On Tue, Aug 29, 2017 at 3:42 PM, Michael S. Tsirkin <m...@redhat.com> wrote: >> > On Tue, Aug 29, 2017 at 03:35:38PM -0400, Willem de Bruijn wrote: >> >> By the way, I have had an unrelated patch outstanding for a while >> >> to have virtio-net support the VIRTIO_CONFIG_S_NEEDS_RESET >> >> command. Will send that as RFC. >> > >> > Oh nice. >> >> Great :) >> >> > One needs to be careful about locking there which is why >> > no devices support that yet. >> >> I originally wrote it based on the virtnet_reset function introduced >> for xdp. Calling this from virtnet_config_changed_work is non trivial, >> as virtnet_freeze_down waits until no config worker is running. >> >> Otherwise, I could not find any constraints on when freeze may be >> called, and it largely follows the same path. I hope I didn't miss anything. > > The issue is that on freeze processes are not running so we > generally know no new packets will arrive (might be wrong > for bridging, then it's a bug). On device error you must > prevent new skbs from coming in, etc.
Thanks a lot for the quick review. I had indeed not yet figured out which invariants freeze can depend on that are not universal. Same for the virtnet_reset call from the .ndo_xdp. Will need to take a much better look at that.