[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: |
Dr. David Alan Gilbert |
Subject: |
Re: [Qemu-devel] [PATCH v2 14/20] memory-device: ids of virtio based devices are special |
Date: |
Fri, 31 Aug 2018 12:22:30 +0100 |
User-agent: |
Mutt/1.10.1 (2018-07-13) |
* David Hildenbrand (address@hidden) wrote:
> 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.
OK, or use something like id ? id : "(unnamed)"
Dave
> Thanks!
>
> >
> > Dave
> >
> >>
> >> --
> >>
> >> Thanks,
> >>
> >> David / dhildenb
> > --
> > Dr. David Alan Gilbert / address@hidden / Manchester, UK
> >
>
>
> --
>
> Thanks,
>
> David / dhildenb
--
Dr. David Alan Gilbert / address@hidden / Manchester, UK
- [Qemu-devel] [PATCH v2 10/20] memory-device: complete factoring out plug handling, (continued)
- [Qemu-devel] [PATCH v2 10/20] memory-device: complete factoring out plug handling, David Hildenbrand, 2018/08/29
- [Qemu-devel] [PATCH v2 11/20] memory-device: complete factoring out unplug handling, David Hildenbrand, 2018/08/29
- [Qemu-devel] [PATCH v2 12/20] memory-device: trace when pre_assigning/assigning/unassigning addresses, David Hildenbrand, 2018/08/29
- [Qemu-devel] [PATCH v2 13/20] hw/acpi-build: only indicate nvdimm and pc-dimm, David Hildenbrand, 2018/08/29
- [Qemu-devel] [PATCH v2 14/20] memory-device: ids of virtio based devices are special, David Hildenbrand, 2018/08/29
Re: [Qemu-devel] [PATCH v2 14/20] memory-device: ids of virtio based devices are special, Eduardo Habkost, 2018/08/31
[Qemu-devel] [PATCH v2 15/20] virtio-pmem: prototype, David Hildenbrand, 2018/08/29
[Qemu-devel] [PATCH v2 17/20] hmp: handle virtio-pmem when printing memory device infos, David Hildenbrand, 2018/08/29
[Qemu-devel] [PATCH v2 16/20] virtio-pci: proxy for virtio-pmem, David Hildenbrand, 2018/08/29
[Qemu-devel] [PATCH v2 18/20] numa: handle virtio-pmem in NUMA stats, David Hildenbrand, 2018/08/29
[Qemu-devel] [PATCH v2 19/20] virtio-pmem: hotplug support functions, David Hildenbrand, 2018/08/29