qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 14/20] memory-device: ids of virtio based dev


From: David Hildenbrand
Subject: Re: [Qemu-devel] [PATCH v2 14/20] memory-device: ids of virtio based devices are special
Date: Fri, 31 Aug 2018 13:18:10 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1

On 31.08.2018 12:43, Dr. David Alan Gilbert wrote:
> * David Hildenbrand (address@hidden) wrote:
>>
>>>>  static gint memory_device_addr_sort(gconstpointer a, gconstpointer b)
>>>>  {
>>>>      const MemoryDeviceState *md_a = MEMORY_DEVICE(a);
>>>> @@ -168,6 +184,7 @@ static uint64_t 
>>>> memory_device_get_free_addr(MachineState *ms,
>>>>      for (item = list; item; item = g_slist_next(item)) {
>>>>          MemoryDeviceState *md = item->data;
>>>>          const MemoryDeviceClass *mdc = 
>>>> MEMORY_DEVICE_GET_CLASS(OBJECT(md));
>>>> +        const char *id = memory_device_id(md);
>>>>          uint64_t md_size, md_addr;
>>>>  
>>>>          md_addr = mdc->get_addr(md);
>>>> @@ -178,8 +195,8 @@ static uint64_t 
>>>> memory_device_get_free_addr(MachineState *ms,
>>>>  
>>>>          if (ranges_overlap(md_addr, md_size, new_addr, size)) {
>>>>              if (hint) {
>>>> -                const DeviceState *d = DEVICE(md);
>>>> -                error_setg(errp, "address range conflicts with '%s'", 
>>>> d->id);
>>>> +                error_setg(errp, "address range conflicts with '%s'",
>>>> +                           id ? id : 0);
>>>
>>> What's that 'id ? id : 0' trick for?
>>
>> 0 -> "", then it actually makes sense :)
>>
>> I'll fix this up, thanks!
> 
> Except that:
> 
>    address range conflicts with ''
> isn't very helpful.
> Why would you get a NULL id ?

This is easy: don't specify an id for a memory device:

Unfortunately, if the user does not give ids to devices, there is no way
of telling him what we are talking about.

qemu-system-x86_64 -machine pc -m 4G,maxmem=20G,slots=4 \
        -object memory-backend-ram,id=mem0,size=4G \
        -object memory-backend-ram,id=mem1,size=4G \
        -device pc-dimm,memdev=mem0,addr=0x140000000 \
        -device pc-dimm,memdev=mem1,addr=0x140000000

qemu-system-x86_64: -device pc-dimm,memdev=mem1,addr=0x140000000:
address range conflicts with '(null)'

(I thought providing NULL would lead to a crash, but it is actually
handled properly)

So while not being able to indicate an id is not nice, I can simply
forward the id directly here.

Thanks!

> 
> Dave
> 
>>
>> -- 
>>
>> Thanks,
>>
>> David / dhildenb
> --
> Dr. David Alan Gilbert / address@hidden / Manchester, UK
> 


-- 

Thanks,

David / dhildenb



reply via email to

[Prev in Thread] Current Thread [Next in Thread]