[libvirt] [PATCH 06/12] qemu: add id when build RNG device and rename object id

Peter Krempa pkrempa at redhat.com
Mon Jan 5 15:45:20 UTC 2015


On 01/05/15 15:51, Peter Krempa wrote:
> On 01/03/15 06:06, Luyao Huang wrote:
>> We didn't set a id when we build RNG device cmdline before.
>> Give a id to every RNG device and we can hotunplug it via
>> QMP cmd device_del.
>>
>> Signed-off-by: Luyao Huang <lhuang at redhat.com>
>> ---
>>  src/qemu/qemu_command.c | 12 ++++++------
>>  1 file changed, 6 insertions(+), 6 deletions(-)
>>
>> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
>> index 46e289d..a4073ee 100644
>> --- a/src/qemu/qemu_command.c
>> +++ b/src/qemu/qemu_command.c
>> @@ -5761,7 +5761,7 @@ qemuBuildRNGBackendArgs(virCommandPtr cmd,
>>              goto cleanup;
>>          }
>>  
>> -        virBufferAsprintf(&buf, "rng-random,id=%s,filename=%s",
>> +        virBufferAsprintf(&buf, "rng-random,id=obj%s,filename=%s",
>>                            dev->info.alias, dev->source.file);
>>  
>>          virCommandAddArg(cmd, "-object");
>> @@ -5784,7 +5784,7 @@ qemuBuildRNGBackendArgs(virCommandPtr cmd,
>>          virCommandAddArgList(cmd, "-chardev", backend, NULL);
>>  
>>          virCommandAddArg(cmd, "-object");
>> -        virCommandAddArgFormat(cmd, "rng-egd,chardev=char%s,id=%s",
>> +        virCommandAddArgFormat(cmd, "rng-egd,chardev=char%s,id=obj%s",
>>                                 dev->info.alias, dev->info.alias);
>>          break;
>>  
>> @@ -5816,13 +5816,13 @@ qemuBuildRNGDevStr(virDomainDefPtr def,
>>      }
>>  
>>      if (dev->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_CCW)
>> -        virBufferAsprintf(&buf, "virtio-rng-ccw,rng=%s", dev->info.alias);
>> +        virBufferAsprintf(&buf, "virtio-rng-ccw,rng=obj%s,id=%s", dev->info.alias, dev->info.alias);
>>      else if (dev->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_S390)
>> -        virBufferAsprintf(&buf, "virtio-rng-s390,rng=%s", dev->info.alias);
>> +        virBufferAsprintf(&buf, "virtio-rng-s390,rng=obj%s,id=%s", dev->info.alias, dev->info.alias);
>>      else if (dev->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_VIRTIO_MMIO)
>> -        virBufferAsprintf(&buf, "virtio-rng-device,rng=%s", dev->info.alias);
>> +        virBufferAsprintf(&buf, "virtio-rng-device,rng=obj%s,id=%s", dev->info.alias, dev->info.alias);
>>      else
>> -        virBufferAsprintf(&buf, "virtio-rng-pci,rng=%s", dev->info.alias);
>> +        virBufferAsprintf(&buf, "virtio-rng-pci,rng=obj%s,id=%s", dev->info.alias, dev->info.alias);
>>  
>>      if (dev->rate > 0) {
>>          virBufferAsprintf(&buf, ",max-bytes=%u", dev->rate);
>>
> 
> 
> This breaks the testsuite as you didn't fix the expected outputs after
> such a change. Please always run "make check" before posting patches.
> 
> Additional question. Is this change even necessary? The RNG device does
> have it's alias already whithout the "obj" prefix ... thus it's just
> "rng0" for example.

I misread the code. This is actually necessary as otherwise the -device
would have the same ID as the backend object. That makes sense to
change, although we need to make sure then that the code will work in
case of a long running VM (with the incorrect name) and a new libvirt
instance.

At any rate ... you need to fix the tests after this commit

> 

Peter


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20150105/1de2ccc6/attachment-0001.sig>


More information about the libvir-list mailing list