[Qemu-devel] Re: [PATCH] qemu/virtio: move features to an inline function

Anthony Liguori anthony at codemonkey.ws
Mon Aug 10 13:33:59 PDT 2009


Michael S. Tsirkin wrote:
>> Normally, the common features are transport features and the devices  
>> should have absolutely no knowledge of transport feature (since they're  
>> transport dependent).
>>     
>
> Good point. But
>
> 1. note that with my patch they don't. They call
> virtio_get_common_features and that's all.
>
> 2. some features may not make sense for some devices. For example, it is
> quite possible that indirect ring entries feature improves performance
> on block but hurts on net, as net has a similar merged buffers feature.
> Someone should try benchmarking with it disabled, and it becomes
> possible with my patch.
>   

I don't necessarily disagree but I think your patch goes about it the 
wrong way.

There ought to be a way to layer qdev properties that achieves this goal 
so that when you create a virtio-pci-block device, you have the ability 
to turn off indirect sg without virtio-block having to know what that is.

For your use-case, I wonder if you're integrating at the wrong level.  
If you implement a ring in-kernel, maybe the thing to do is introduce 
more layering in qemu like we have in the kernel so that you can easily 
add a new ring backend type.  At any rate, see if you can achieve the 
same goal with qdev properties.  If you could, you should be able to 
hack something up easily to disable this for vhost without completely 
overhauling qemu's virtio implementation.

Regards,

Anthony Liguori


More information about the Virtualization mailing list