All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Gibson <david@gibson.dropbear.id.au>
To: peter.maydell@linaro.org, groug@kaod.org
Cc: Daniel Henrique Barboza <danielhb413@gmail.com>,
	qemu-ppc@nongnu.org, qemu-devel@nongnu.org,
	David Gibson <david@gibson.dropbear.id.au>
Subject: [PULL 02/19] spapr.c: add 'name' property for hotplugged CPUs nodes
Date: Wed, 10 Feb 2021 17:17:18 +1100	[thread overview]
Message-ID: <20210210061735.304384-3-david@gibson.dropbear.id.au> (raw)
In-Reply-To: <20210210061735.304384-1-david@gibson.dropbear.id.au>

From: Daniel Henrique Barboza <danielhb413@gmail.com>

In the CPU hotunplug bug [1] the guest kernel throws a scary
message in dmesg:

pseries-hotplug-cpu: Failed to offline CPU <NULL>, rc: -16

The reason isn't related to the bug though. This happens because the
kernel file arch/powerpc/platform/pseries/hotplug-cpu.c, function
dlpar_cpu_remove(), is not finding the device_node.name of the offending
CPU.

We're not populating the 'name' property for hotplugged CPUs. Since the
kernel relies on device_node.name for identifying CPU nodes, and the
CPUs that are coldplugged has the 'name' property filled by SLOF, this
is creating an unneeded inconsistency between hotplug and coldplug CPUs
in the kernel.

Let's fill the 'name' property for hotplugged CPUs as well. This will
make the guest dmesg throws a less intimidating message when we try to
unplug the last online CPU:

pseries-hotplug-cpu: Failed to offline CPU PowerPC,POWER9@1, rc: -16

[1] https://bugzilla.redhat.com/1911414

Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Message-Id: <20210120232305.241521-3-danielhb413@gmail.com>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/ppc/spapr.c | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index e7992c0422..0ecc193468 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -3756,6 +3756,19 @@ int spapr_core_dt_populate(SpaprDrc *drc, SpaprMachineState *spapr,
 
     spapr_dt_cpu(cs, fdt, offset, spapr);
 
+    /*
+     * spapr_dt_cpu() does not fill the 'name' property in the
+     * CPU node. The function is called during boot process, before
+     * and after CAS, and overwriting the 'name' property written
+     * by SLOF is not allowed.
+     *
+     * Write it manually after spapr_dt_cpu(). This makes the hotplug
+     * CPUs more compatible with the coldplugged ones, which have
+     * the 'name' property. Linux Kernel also relies on this
+     * property to identify CPU nodes.
+     */
+    _FDT((fdt_setprop_string(fdt, offset, "name", nodename)));
+
     *fdt_start_offset = offset;
     return 0;
 }
-- 
2.29.2



  parent reply	other threads:[~2021-02-10  6:19 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-10  6:17 [PULL 00/19] ppc-for-6.0 queue 20210210 David Gibson
2021-02-10  6:17 ` [PULL 01/19] spapr.c: use g_auto* with 'nodename' in CPU DT functions David Gibson
2021-02-10  6:17 ` David Gibson [this message]
2021-02-10  6:17 ` [PULL 03/19] spapr: Adjust firmware path of PCI devices David Gibson
2021-02-10  6:17 ` [PULL 04/19] target/ppc: Remove unused MMU definitions David Gibson
2021-02-10  6:17 ` [PULL 05/19] ppc/pnv: Add trace events for PCI event notification David Gibson
2021-02-10  6:17 ` [PULL 06/19] ppc/xive: Add firmware bit when dumping the ENDs David Gibson
2021-02-10  6:17 ` [PULL 07/19] ppc/pnv: Use skiboot addresses to load kernel and ramfs David Gibson
2021-02-10  6:17 ` [PULL 08/19] ppc/pnv: Simplify pnv_bmc_create() David Gibson
2021-02-10  6:17 ` [PULL 09/19] ppc/pnv: Discard internal BMC initialization when BMC is external David Gibson
2021-02-10  6:17 ` [PULL 10/19] ppc/pnv: Remove default disablement of the PNOR contents David Gibson
2021-02-10  6:17 ` [PULL 11/19] ppc/pnv: Introduce a LPC FW memory region attribute to map the PNOR David Gibson
2021-02-10  6:17 ` [PULL 12/19] spapr: move spapr_machine_using_legacy_numa() to spapr_numa.c David Gibson
2021-02-10  6:17 ` [PULL 13/19] spapr_numa.c: create spapr_numa_initial_nvgpu_numa_id() helper David Gibson
2021-02-10  6:17 ` [PULL 14/19] spapr_numa.c: fix ibm, max-associativity-domains calculation David Gibson
2021-02-10  6:17 ` [PULL 15/19] ppc/pnv: Set default RAM size to 1 GB David Gibson
2021-02-10  6:17 ` [PULL 16/19] hw/ppc: e500: Use a macro for the platform clock frequency David Gibson
2021-02-10  6:17 ` [PULL 17/19] hw/ppc: e500: Fill in correct <clock-frequency> for the serial nodes David Gibson
2021-02-10  6:17 ` [PULL 18/19] hw/net: fsl_etsec: Reverse the RCTRL.RSF logic David Gibson
2021-02-10  6:17 ` [PULL 19/19] target/ppc: Add E500 L2CSR0 write helper David Gibson
2021-02-10 15:42 ` [PULL 00/19] ppc-for-6.0 queue 20210210 Peter Maydell

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=20210210061735.304384-3-david@gibson.dropbear.id.au \
    --to=david@gibson.dropbear.id.au \
    --cc=danielhb413@gmail.com \
    --cc=groug@kaod.org \
    --cc=peter.maydell@linaro.org \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    /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.