On 16/03/2016 13:22, Cornelia Huck wrote: >> > Yeah, it doesn't help that the functions are underdocumented (as in the >> > "assign" parameter above). > My understanding is: > > - 'assign': set up a new notifier (true) or disable it (false) > - 'set_handler': use our handler (true) or have it handled elsewhere > (false)
Right. So if we're setting up a new notifier in virtio_queue_aio_set_host_notifier_handler, virtio_pci_stop_ioeventfd should > > > I don't think the ->set_host_notifiers() api really allows for this. > > > > I think it does, assign is the last argument to k->set_host_notifier(). > > This depends on whether we want 'assign' to clean up any old notifiers > before setting up new ones. I think we want different behaviour for > dataplane and vhost. I think dataplane and vhost are the same. The question is whether ioeventfd=off,vhost=on or ioeventfd=off,dataplane=on are valid combinations; I think they aren't. If they aren't, it should be okay to remove the virtio_queue_host_notifier_read call in virtio_queue_set_host_notifier_fd_handler and virtio_queue_aio_set_host_notifier_handler. That's because a handler for the notifier will always be set _somewhere_. It could be the usual ioeventfd handler, the vhost handler or the dataplane handler, but one will be there. Paolo