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


Reply via email to