From: Igor Mammedov <imammedo@redhat.com>
To: Auger Eric <eric.auger@redhat.com>
Cc: peter.maydell@linaro.org, drjones@redhat.com, david@redhat.com,
qemu-devel@nongnu.org, shameerali.kolothum.thodi@huawei.com,
dgilbert@redhat.com, qemu-arm@nongnu.org,
david@gibson.dropbear.id.au, eric.auger.pro@gmail.com
Subject: Re: [Qemu-arm] [Qemu-devel] [PATCH v6 12/18] hw/arm/boot: Expose the PC-DIMM nodes in the DT
Date: Thu, 21 Feb 2019 10:27:11 +0100 [thread overview]
Message-ID: <20190221102711.4ad80d72@redhat.com> (raw)
In-Reply-To: <8f8abcb6-6665-dc89-b836-6e9d131f6f44@redhat.com>
On Wed, 20 Feb 2019 16:30:13 +0100
Auger Eric <eric.auger@redhat.com> wrote:
> Hi Igor,
>
> On 2/18/19 9:58 AM, Igor Mammedov wrote:
> > On Tue, 5 Feb 2019 18:33:00 +0100
> > Eric Auger <eric.auger@redhat.com> wrote:
> >
> >> From: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
> >>
> >> This patch add memory nodes corresponding to PC-DIMM regions.
> > s/add/adds/ or s/This patch add/Add/
> >
> >>
> >> NV_DIMM and ACPI_NVDIMM configs are not yet set for ARM so we
> >> don't need to care about NV-DIMM at this stage.
> >>
> >> Signed-off-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
> >> Signed-off-by: Eric Auger <eric.auger@redhat.com>
> >>
> >> ---
> >> v3 -> v4:
> >> - git rid of @base and @len in fdt_add_hotpluggable_memory_nodes
> >>
> >> v1 -> v2:
> >> - added qapi_free_MemoryDeviceInfoList and simplify the loop
> >> ---
> >> hw/arm/boot.c | 35 +++++++++++++++++++++++++++++++++++
> >> 1 file changed, 35 insertions(+)
> >>
> >> diff --git a/hw/arm/boot.c b/hw/arm/boot.c
> >> index 2ef367e15b..2a70e8aa82 100644
> >> --- a/hw/arm/boot.c
> >> +++ b/hw/arm/boot.c
> >> @@ -19,6 +19,7 @@
> >> #include "sysemu/numa.h"
> >> #include "hw/boards.h"
> >> #include "hw/loader.h"
> >> +#include "hw/mem/memory-device.h"
> >> #include "elf.h"
> >> #include "sysemu/device_tree.h"
> >> #include "qemu/config-file.h"
> >> @@ -526,6 +527,34 @@ static void fdt_add_psci_node(void *fdt)
> >> qemu_fdt_setprop_cell(fdt, "/psci", "migrate", migrate_fn);
> >> }
> >>
> >> +static int fdt_add_hotpluggable_memory_nodes(void *fdt,
> >> + uint32_t acells, uint32_t scells) {
> >> + MemoryDeviceInfoList *info, *info_list = qmp_memory_device_list();
> >> + MemoryDeviceInfo *mi;
> >> + PCDIMMDeviceInfo *di;
> >> + bool is_nvdimm;
> >> + int ret = 0;
> >> +
> >> + for (info = info_list; info != NULL; info = info->next) {
> >> + mi = info->value;
> >> + is_nvdimm = (mi->type == MEMORY_DEVICE_INFO_KIND_NVDIMM);
> >> + di = !is_nvdimm ? mi->u.dimm.data : mi->u.nvdimm.data;
> >> +
> >> + if (is_nvdimm) {
> >> + ret = -ENOENT; /* NV-DIMM not yet supported */
> >> + } else {
> >> + ret = fdt_add_memory_node(fdt, acells, di->addr,
> >> + scells, di->size, di->node);
> >> + }
> >> + if (ret < 0) {
> >> + goto out;
> >> + }
> >> + }
> >> +out:
> >> + qapi_free_MemoryDeviceInfoList(info_list);
> >> + return ret;
> >> +}
> >> +
> >> int arm_load_dtb(hwaddr addr, const struct arm_boot_info *binfo,
> >> hwaddr addr_limit, AddressSpace *as)
> >> {
> >> @@ -621,6 +650,12 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_info *binfo,
> >> }
> >> }
> >>
> >> + rc = fdt_add_hotpluggable_memory_nodes(fdt, acells, scells);
> >> + if (rc < 0) {
> >> + fprintf(stderr, "couldn't add hotpluggable memory nodes\n");
> > error message is rather vague, user using nvdimms + pc-dimms on CLI won't have
> > a clue that the former is not supported.
> > Suggest pass in error_fatal as argument and report more specific error from
> > fdt_add_hotpluggable_memory_nodes()
> >
> > does this run on reboot?
>
> Yes after a QMP system_reset I can see the DIMMS on guest in /proc/meminfo
it siims that dimms come from ACPI and not DTB.
My worry was that arm_load_dtb() always end up with exit(1) on failure but it seems
that it's not called on reboot so it should be fine.
>
> Thanks
>
> Eric
> >
> >> + goto fail;
> >> + }
> >> +
> >> rc = fdt_path_offset(fdt, "/chosen");
> >> if (rc < 0) {
> >> qemu_fdt_add_subnode(fdt, "/chosen");
> >
WARNING: multiple messages have this Message-ID (diff)
From: Igor Mammedov <imammedo@redhat.com>
To: Auger Eric <eric.auger@redhat.com>
Cc: eric.auger.pro@gmail.com, qemu-devel@nongnu.org,
qemu-arm@nongnu.org, peter.maydell@linaro.org,
shameerali.kolothum.thodi@huawei.com, david@redhat.com,
drjones@redhat.com, dgilbert@redhat.com,
david@gibson.dropbear.id.au
Subject: Re: [Qemu-devel] [PATCH v6 12/18] hw/arm/boot: Expose the PC-DIMM nodes in the DT
Date: Thu, 21 Feb 2019 10:27:11 +0100 [thread overview]
Message-ID: <20190221102711.4ad80d72@redhat.com> (raw)
In-Reply-To: <8f8abcb6-6665-dc89-b836-6e9d131f6f44@redhat.com>
On Wed, 20 Feb 2019 16:30:13 +0100
Auger Eric <eric.auger@redhat.com> wrote:
> Hi Igor,
>
> On 2/18/19 9:58 AM, Igor Mammedov wrote:
> > On Tue, 5 Feb 2019 18:33:00 +0100
> > Eric Auger <eric.auger@redhat.com> wrote:
> >
> >> From: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
> >>
> >> This patch add memory nodes corresponding to PC-DIMM regions.
> > s/add/adds/ or s/This patch add/Add/
> >
> >>
> >> NV_DIMM and ACPI_NVDIMM configs are not yet set for ARM so we
> >> don't need to care about NV-DIMM at this stage.
> >>
> >> Signed-off-by: Shameer Kolothum <shameerali.kolothum.thodi@huawei.com>
> >> Signed-off-by: Eric Auger <eric.auger@redhat.com>
> >>
> >> ---
> >> v3 -> v4:
> >> - git rid of @base and @len in fdt_add_hotpluggable_memory_nodes
> >>
> >> v1 -> v2:
> >> - added qapi_free_MemoryDeviceInfoList and simplify the loop
> >> ---
> >> hw/arm/boot.c | 35 +++++++++++++++++++++++++++++++++++
> >> 1 file changed, 35 insertions(+)
> >>
> >> diff --git a/hw/arm/boot.c b/hw/arm/boot.c
> >> index 2ef367e15b..2a70e8aa82 100644
> >> --- a/hw/arm/boot.c
> >> +++ b/hw/arm/boot.c
> >> @@ -19,6 +19,7 @@
> >> #include "sysemu/numa.h"
> >> #include "hw/boards.h"
> >> #include "hw/loader.h"
> >> +#include "hw/mem/memory-device.h"
> >> #include "elf.h"
> >> #include "sysemu/device_tree.h"
> >> #include "qemu/config-file.h"
> >> @@ -526,6 +527,34 @@ static void fdt_add_psci_node(void *fdt)
> >> qemu_fdt_setprop_cell(fdt, "/psci", "migrate", migrate_fn);
> >> }
> >>
> >> +static int fdt_add_hotpluggable_memory_nodes(void *fdt,
> >> + uint32_t acells, uint32_t scells) {
> >> + MemoryDeviceInfoList *info, *info_list = qmp_memory_device_list();
> >> + MemoryDeviceInfo *mi;
> >> + PCDIMMDeviceInfo *di;
> >> + bool is_nvdimm;
> >> + int ret = 0;
> >> +
> >> + for (info = info_list; info != NULL; info = info->next) {
> >> + mi = info->value;
> >> + is_nvdimm = (mi->type == MEMORY_DEVICE_INFO_KIND_NVDIMM);
> >> + di = !is_nvdimm ? mi->u.dimm.data : mi->u.nvdimm.data;
> >> +
> >> + if (is_nvdimm) {
> >> + ret = -ENOENT; /* NV-DIMM not yet supported */
> >> + } else {
> >> + ret = fdt_add_memory_node(fdt, acells, di->addr,
> >> + scells, di->size, di->node);
> >> + }
> >> + if (ret < 0) {
> >> + goto out;
> >> + }
> >> + }
> >> +out:
> >> + qapi_free_MemoryDeviceInfoList(info_list);
> >> + return ret;
> >> +}
> >> +
> >> int arm_load_dtb(hwaddr addr, const struct arm_boot_info *binfo,
> >> hwaddr addr_limit, AddressSpace *as)
> >> {
> >> @@ -621,6 +650,12 @@ int arm_load_dtb(hwaddr addr, const struct arm_boot_info *binfo,
> >> }
> >> }
> >>
> >> + rc = fdt_add_hotpluggable_memory_nodes(fdt, acells, scells);
> >> + if (rc < 0) {
> >> + fprintf(stderr, "couldn't add hotpluggable memory nodes\n");
> > error message is rather vague, user using nvdimms + pc-dimms on CLI won't have
> > a clue that the former is not supported.
> > Suggest pass in error_fatal as argument and report more specific error from
> > fdt_add_hotpluggable_memory_nodes()
> >
> > does this run on reboot?
>
> Yes after a QMP system_reset I can see the DIMMS on guest in /proc/meminfo
it siims that dimms come from ACPI and not DTB.
My worry was that arm_load_dtb() always end up with exit(1) on failure but it seems
that it's not called on reboot so it should be fine.
>
> Thanks
>
> Eric
> >
> >> + goto fail;
> >> + }
> >> +
> >> rc = fdt_path_offset(fdt, "/chosen");
> >> if (rc < 0) {
> >> qemu_fdt_add_subnode(fdt, "/chosen");
> >
next prev parent reply other threads:[~2019-02-21 9:28 UTC|newest]
Thread overview: 112+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-05 17:32 [Qemu-devel] [PATCH v6 00/18] ARM virt: Initial RAM expansion and PCDIMM/NVDIMM support Eric Auger
2019-02-05 17:32 ` Eric Auger
2019-02-05 17:32 ` [Qemu-devel] [PATCH v6 01/18] update-linux-headers.sh: Copy new headers Eric Auger
2019-02-05 17:32 ` Eric Auger
2019-02-14 16:36 ` Peter Maydell
2019-02-14 16:36 ` Peter Maydell
2019-02-21 6:15 ` [Qemu-arm] " Alexey Kardashevskiy
2019-02-21 6:15 ` Alexey Kardashevskiy
2019-02-05 17:32 ` [Qemu-arm] [PATCH v6 02/18] linux-headers: Update to v5.0-rc2 Eric Auger
2019-02-05 17:32 ` [Qemu-devel] " Eric Auger
2019-02-05 17:32 ` [Qemu-arm] [PATCH v6 03/18] hw/arm/boot: introduce fdt_add_memory_node helper Eric Auger
2019-02-05 17:32 ` [Qemu-devel] " Eric Auger
2019-02-14 16:49 ` [Qemu-arm] " Peter Maydell
2019-02-14 16:49 ` [Qemu-devel] " Peter Maydell
2019-02-05 17:32 ` [Qemu-arm] [PATCH v6 04/18] hw/arm/virt: Rename highmem IO regions Eric Auger
2019-02-05 17:32 ` [Qemu-devel] " Eric Auger
2019-02-14 16:50 ` [Qemu-arm] " Peter Maydell
2019-02-14 16:50 ` [Qemu-devel] " Peter Maydell
2019-02-05 17:32 ` [Qemu-devel] [PATCH v6 05/18] hw/arm/virt: Split the memory map description Eric Auger
2019-02-05 17:32 ` Eric Auger
2019-02-14 17:07 ` [Qemu-arm] " Peter Maydell
2019-02-14 17:07 ` [Qemu-devel] " Peter Maydell
2019-02-05 17:32 ` [Qemu-arm] [PATCH v6 06/18] hw/boards: Add a MachineState parameter to kvm_type callback Eric Auger
2019-02-05 17:32 ` [Qemu-devel] " Eric Auger
2019-02-14 17:12 ` Peter Maydell
2019-02-14 17:12 ` Peter Maydell
2019-02-05 17:32 ` [Qemu-devel] [PATCH v6 07/18] kvm: add kvm_arm_get_max_vm_phys_shift Eric Auger
2019-02-05 17:32 ` Eric Auger
2019-02-14 17:15 ` Peter Maydell
2019-02-14 17:15 ` Peter Maydell
2019-02-18 18:03 ` [Qemu-arm] " Auger Eric
2019-02-18 18:03 ` [Qemu-devel] " Auger Eric
2019-02-05 17:32 ` [Qemu-devel] [PATCH v6 08/18] vl: Set machine ram_size, maxram_size and ram_slots earlier Eric Auger
2019-02-05 17:32 ` Eric Auger
2019-02-14 17:16 ` [Qemu-arm] " Peter Maydell
2019-02-14 17:16 ` [Qemu-devel] " Peter Maydell
2019-02-05 17:32 ` [Qemu-arm] [PATCH v6 09/18] hw/arm/virt: Implement kvm_type function for 4.0 machine Eric Auger
2019-02-05 17:32 ` [Qemu-devel] " Eric Auger
2019-02-14 17:29 ` Peter Maydell
2019-02-14 17:29 ` Peter Maydell
2019-02-18 21:29 ` [Qemu-arm] " Auger Eric
2019-02-18 21:29 ` [Qemu-devel] " Auger Eric
2019-02-19 7:49 ` [Qemu-arm] " Igor Mammedov
2019-02-19 7:49 ` Igor Mammedov
2019-02-19 8:52 ` [Qemu-arm] " Auger Eric
2019-02-19 8:52 ` Auger Eric
2019-02-18 10:07 ` [Qemu-arm] " Igor Mammedov
2019-02-18 10:07 ` Igor Mammedov
2019-02-19 15:56 ` [Qemu-arm] " Auger Eric
2019-02-19 15:56 ` Auger Eric
2019-02-05 17:32 ` [Qemu-devel] [PATCH v6 10/18] hw/arm/virt: Bump the 255GB initial RAM limit Eric Auger
2019-02-05 17:32 ` Eric Auger
2019-02-07 15:19 ` [Qemu-arm] " Shameerali Kolothum Thodi
2019-02-07 15:19 ` [Qemu-devel] " Shameerali Kolothum Thodi
2019-02-07 15:25 ` [Qemu-arm] " Auger Eric
2019-02-07 15:25 ` [Qemu-devel] " Auger Eric
2019-02-05 17:32 ` [Qemu-devel] [PATCH v6 11/18] hw/arm/virt: Add memory hotplug framework Eric Auger
2019-02-05 17:32 ` Eric Auger
2019-02-14 17:15 ` [Qemu-arm] " David Hildenbrand
2019-02-14 17:15 ` [Qemu-devel] " David Hildenbrand
2019-02-18 18:10 ` [Qemu-arm] " Auger Eric
2019-02-18 18:10 ` [Qemu-devel] " Auger Eric
2019-02-05 17:33 ` [Qemu-devel] [PATCH v6 12/18] hw/arm/boot: Expose the PC-DIMM nodes in the DT Eric Auger
2019-02-05 17:33 ` Eric Auger
2019-02-18 8:58 ` [Qemu-arm] " Igor Mammedov
2019-02-18 8:58 ` Igor Mammedov
2019-02-20 15:30 ` [Qemu-arm] " Auger Eric
2019-02-20 15:30 ` Auger Eric
2019-02-21 9:27 ` Igor Mammedov [this message]
2019-02-21 9:27 ` Igor Mammedov
2019-02-05 17:33 ` [Qemu-arm] [PATCH v6 13/18] hw/arm/virt-acpi-build: Add PC-DIMM in SRAT Eric Auger
2019-02-05 17:33 ` [Qemu-devel] " Eric Auger
2019-02-18 8:14 ` [Qemu-arm] " Igor Mammedov
2019-02-18 8:14 ` [Qemu-devel] " Igor Mammedov
2019-02-05 17:33 ` [Qemu-arm] [PATCH v6 14/18] hw/arm/virt: Allocate device_memory Eric Auger
2019-02-05 17:33 ` [Qemu-devel] " Eric Auger
2019-02-18 9:31 ` [Qemu-arm] " Igor Mammedov
2019-02-18 9:31 ` Igor Mammedov
2019-02-19 15:53 ` [Qemu-arm] " Auger Eric
2019-02-19 15:53 ` Auger Eric
2019-02-19 15:56 ` [Qemu-arm] " David Hildenbrand
2019-02-19 15:56 ` David Hildenbrand
2019-02-21 9:36 ` Igor Mammedov
2019-02-21 9:36 ` Igor Mammedov
2019-02-21 12:37 ` [Qemu-arm] " Auger Eric
2019-02-21 12:37 ` Auger Eric
2019-02-21 12:44 ` [Qemu-arm] " David Hildenbrand
2019-02-21 12:44 ` David Hildenbrand
2019-02-21 13:07 ` [Qemu-arm] " Auger Eric
2019-02-21 13:07 ` Auger Eric
2019-02-05 17:33 ` [Qemu-arm] [PATCH v6 15/18] nvdimm: use configurable ACPI IO base and size Eric Auger
2019-02-05 17:33 ` [Qemu-devel] " Eric Auger
2019-02-18 10:21 ` [Qemu-arm] " Igor Mammedov
2019-02-18 10:21 ` [Qemu-devel] " Igor Mammedov
2019-02-05 17:33 ` [Qemu-devel] [PATCH v6 16/18] hw/arm/virt: Add nvdimm hot-plug infrastructure Eric Auger
2019-02-05 17:33 ` Eric Auger
2019-02-18 10:30 ` [Qemu-arm] " Igor Mammedov
2019-02-18 10:30 ` [Qemu-devel] " Igor Mammedov
2019-02-20 15:21 ` Auger Eric
2019-02-20 15:21 ` Auger Eric
2019-02-21 12:16 ` [Qemu-arm] " Igor Mammedov
2019-02-21 12:16 ` [Qemu-devel] " Igor Mammedov
2019-02-21 12:34 ` [Qemu-arm] " Auger Eric
2019-02-21 12:34 ` Auger Eric
2019-02-05 17:33 ` [Qemu-devel] [PATCH v6 17/18] hw/arm/boot: Expose the pmem nodes in the DT Eric Auger
2019-02-05 17:33 ` Eric Auger
2019-02-05 17:33 ` [Qemu-arm] [PATCH v6 18/18] hw/arm/virt: Add nvdimm and nvdimm-persistence options Eric Auger
2019-02-05 17:33 ` [Qemu-devel] " Eric Auger
2019-02-14 17:35 ` [Qemu-devel] [PATCH v6 00/18] ARM virt: Initial RAM expansion and PCDIMM/NVDIMM support Peter Maydell
2019-02-14 17:35 ` Peter Maydell
2019-02-14 18:00 ` Auger Eric
2019-02-14 18:00 ` Auger Eric
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190221102711.4ad80d72@redhat.com \
--to=imammedo@redhat.com \
--cc=david@gibson.dropbear.id.au \
--cc=david@redhat.com \
--cc=dgilbert@redhat.com \
--cc=drjones@redhat.com \
--cc=eric.auger.pro@gmail.com \
--cc=eric.auger@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=shameerali.kolothum.thodi@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.