On 08/28/2014 09:22 AM, Benoît Canet wrote: > The Thursday 28 Aug 2014 à 13:53:11 (+0800), Fam Zheng wrote : >> This is an analogue to Linux null_blk. It can be used for testing block >> device emulation and general block layer functionalities such as >> coroutines and throttling, where disk IO is not necessary or wanted. >> >> Use null:// for AIO version, and null-co:// for coroutine version. >>
>> +++ b/qapi/block-core.json
>> @@ -1150,7 +1150,8 @@
>> 'data': [ 'archipelago', 'file', 'host_device', 'host_cdrom',
>> 'host_floppy',
>> 'http', 'https', 'ftp', 'ftps', 'tftp', 'vvfat', 'blkdebug',
>> 'blkverify', 'bochs', 'cloop', 'cow', 'dmg', 'parallels',
>> 'qcow',
>> - 'qcow2', 'qed', 'raw', 'vdi', 'vhdx', 'vmdk', 'vpc', 'quorum' ]
>> }
>> + 'qcow2', 'qed', 'raw', 'vdi', 'vhdx', 'vmdk', 'vpc', 'quorum',
>> + 'null' ] }
>
> Why not also adding null-co to QMP ?
Or have just one driver 'null', but...
>
>>
>> ##
>> # @BlockdevOptionsBase
>> @@ -1203,6 +1204,19 @@
>> 'data': { 'filename': 'str' } }
>>
>> ##
>> +# @BlockdevOptionsNull
>> +#
>> +# Driver specific block device options for the null backend.
>> +#
>> +# @size: size of the device in bytes.
>> +#
>> +# Since: 2.2
>> +##
>> +{ 'type': 'BlockdevOptionsNull',
>> + 'base': 'BlockdevOptionsFile',
>> + 'data': { '*size': 'int' } }
have a '*coroutine':'bool' flag here that chooses between the null: and
the null-co: protocol. (I suspect we would do the same when finaly
adding gluster to BlockdevOptions: rather than having 'gluster+tcp' and
'gluster+udp', it would be a single 'gluster' element that can then
select transport of tcp vs. udp as an option).
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
