Hi, I am trying to fix a problem in the netmap reg/dereg where it removes the old rx virt_queue data and replaces it with the netmap slot buffers and vice versa. To do so the virtnet_close is called which calls napi_disable() which stops the callback processing of new packets in the guest but the host side seems to be still consuming vq buffers.
I've tried calling netif_carrier_off() and netif_tx_disable()/netif_stop_queue() to stop new packets from entering the queue but it doesn't seem to have any effect on the connection as reported by getting virtio_net_config status as is done in virtnet_update_status(). I need a reliable way to clean up the used and unused rx queue buffers while the network is possibly under load. Is there a virtnet function call or something else I'm missing that can quiesce the traffic so that can happen? Thanks, James