Hello Michael, I am working on the patch to address the question you raised below. I am adding one more function -- destroy_buf in virtqueue_ops, so we don't need to maintain the list of pending buffers in upper layer (like virtio_net), when the device is shutdown or removed, this buffer free func will be called to release all pending buffers in virtio_ring on behalf of virtio_net. The rest of comments are minor. The new patch will defer skb allocation for both mergable and none-mergable buffers. Thanks Shirley On Tue, 2009-08-25 at 14:41 +0300, Michael S. Tsirkin wrote: > > #define VIRTNET_SEND_COMMAND_SG_MAX 2 > > > > +struct page_list > > +{ > > Kernel style is "struct page_list {". > Also, prefix with virtnet_? > > > + struct page *page; > > + struct list_head list; > > +}; > > + > > struct virtnet_info > > { > > struct virtio_device *vdev; > > @@ -72,6 +79,8 @@ struct virtnet_info > > > > /* Chain pages by the private ptr. */ > > struct page *pages; > > Do we need the pages list now? Can we do without? > > Pls document fields below. > > > + struct list_head used_pages; > > Seems a waste to have this list just for dev down. > Extend virtio to give us all buffers from vq > on shutdown? > -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html