From: David Gibson <david@gibson.dropbear.id.au>
To: "Cédric Le Goater" <clg@kaod.org>
Cc: Laurent Vivier <lvivier@redhat.com>,
peter.maydell@linaro.org, qemu-devel@nongnu.org, groug@kaod.org,
qemu-ppc@nongnu.org, rth@twiddle.net
Subject: Re: [Qemu-devel] [Qemu-ppc] [PULL 41/44] spapr: change default interrupt mode to 'dual'
Date: Tue, 16 Jul 2019 12:14:44 +1000 [thread overview]
Message-ID: <20190716021444.GA7525@umbus.fritz.box> (raw)
In-Reply-To: <cd2e72a2-c252-2305-b070-95c6f3d39d5c@kaod.org>
[-- Attachment #1: Type: text/plain, Size: 4061 bytes --]
On Mon, Jul 15, 2019 at 12:19:03PM +0200, Cédric Le Goater wrote:
> On 11/07/2019 03:26, David Gibson wrote:
> > On Wed, Jul 10, 2019 at 06:26:09PM +0200, Laurent Vivier wrote:
> >> On 29/05/2019 08:50, David Gibson wrote:
> >>> From: Cédric Le Goater <clg@kaod.org>
> >>>
> >>> Now that XIVE support is complete (QEMU emulated and KVM devices),
> >>> change the pseries machine to advertise both interrupt modes: XICS
> >>> (P7/P8) and XIVE (P9).
> >>>
> >>> The machine default interrupt modes depends on the version. Current
> >>> settings are:
> >>>
> >>> pseries default interrupt mode
> >>>
> >>> 4.1 dual
> >>> 4.0 xics
> >>> 3.1 xics
> >>> 3.0 legacy xics (different IRQ number space layout)
> >>>
> >>> Signed-off-by: Cédric Le Goater <clg@kaod.org>
> >>> Message-Id: <20190522074016.10521-3-clg@kaod.org>
> >>> Reviewed-by: Greg Kurz <groug@kaod.org>
> >>> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
> >>> ---
> >>> hw/ppc/spapr.c | 3 ++-
> >>> 1 file changed, 2 insertions(+), 1 deletion(-)
> >>>
> >>> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> >>> index 39e698e9b0..4fd16b43f0 100644
> >>> --- a/hw/ppc/spapr.c
> >>> +++ b/hw/ppc/spapr.c
> >>> @@ -4352,7 +4352,7 @@ static void spapr_machine_class_init(ObjectClass *oc, void *data)
> >>> smc->default_caps.caps[SPAPR_CAP_LARGE_DECREMENTER] = SPAPR_CAP_ON;
> >>> smc->default_caps.caps[SPAPR_CAP_CCF_ASSIST] = SPAPR_CAP_OFF;
> >>> spapr_caps_add_properties(smc, &error_abort);
> >>> - smc->irq = &spapr_irq_xics;
> >>> + smc->irq = &spapr_irq_dual;
> >>> smc->dr_phb_enabled = true;
> >>> }
> >>>
> >>> @@ -4430,6 +4430,7 @@ static void spapr_machine_4_0_class_options(MachineClass *mc)
> >>> spapr_machine_4_1_class_options(mc);
> >>> compat_props_add(mc->compat_props, hw_compat_4_0, hw_compat_4_0_len);
> >>> smc->phb_placement = phb_placement_4_0;
> >>> + smc->irq = &spapr_irq_xics;
> >>> }
> >>>
> >>> DEFINE_SPAPR_MACHINE(4_0, "4.0", false);
> >>>
> >>
> >> This patch breaks the '-no-reboot' parameter (I think the "dual" mode
> >> breaks the -no-reboot parameter)
> >>
> >> After grub loads the kernel and starts it, the kernel aborts:
> >>
> >> OF stdout device is: /vdevice/vty@71000000
> >> Preparing to boot Linux version 4.18.0-112.el8.ppc64le
> >> (mockbuild@ppc-061.build.eng.bos.redhat.com) (gcc version 8.3.1 20190507
> >> (Red Hat 8.3.1-4) (GCC)) #1 SMP Fri Jul 5 11:21:28 UTC 2019
> >> Detected machine type: 0000000000000101
> >> command line: BOOT_IMAGE=/vmlinuz-4.18.0-112.el8.ppc64le
> >> root=/dev/mapper/rhel_ibm--p8--kvm--03--guest--02-root ro
> >> crashkernel=auto rd.lvm.lv=rhel_ibm-p8-kvm-03-guest-02/root
> >> rd.lvm.lv=rhel_ibm-p8-kvm-03-guest-02/swap
> >> Max number of cores passed to firmware: 256 (NR_CPUS = 2048)
> >> Calling ibm,client-architecture-support...[lvivier@localhost ~]$
> >>
> >> I bisected to this patch, and then after I understood the problem is
> >> with the -no-reboot parameter as the machine is reset by the CAS
> >> negotiation... and the -no-reboot prevents this reset.
> >>
> >> I don't know if it's a real problem or not.
> >
> > Ah, bother. I didn't think of the interaction between the CAS reboot
> > and -no-reboot. I guess that's more reason to work out a way to do
> > the xics/xive switch without a full reset. People were already not
> > thrilled with the extra reboots here.
>
> QEMU builds a device tree depending on the interrupt mode negotiated
> at CAS time. Can we dynamically add/remove nodes ?
I believe we can make essentially arbitrary change to the device tree
as part of the CAS process without a reboot.
Re-doing this is kind of awkward with the current structure, but it's
probably what we're going to want.
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
next prev parent reply other threads:[~2019-07-16 2:30 UTC|newest]
Thread overview: 63+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-29 6:49 [Qemu-devel] [PULL 00/44] ppc-for-4.1 queue 20190529 David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 01/44] tests: Fix up docker cross builds for ppc64 (BE) targets David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 02/44] configure: Distinguish ppc64 and ppc64le hosts David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 03/44] configure: Use quotes around uses of $CPU_CFLAGS David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 04/44] target/ppc/kvm: Fix trace typo David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 05/44] hw/ppc/prep: use TYPE_MC146818_RTC instead of a hardcoded string David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 06/44] hw/ppc/40p: Move the MC146818 RTC to the board where it belongs David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 07/44] hw/ppc/40p: use 1900 as a base year David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 08/44] target/ppc: Add ibm, purr and ibm, spurr device-tree properties David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 09/44] target/ppc: Fix xvxsigdp David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 10/44] target/ppc: Fix xxbrq, xxbrw David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 11/44] target/ppc: Fix vslv and vsrv David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 12/44] target/ppc: Fix vsum2sws David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 13/44] target/ppc: Fix xxspltib David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 14/44] spapr/xive: EQ page should be naturally aligned David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 15/44] spapr/xive: fix EQ page addresses above 64GB David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 16/44] spapr/xive: print out the EQ page address in the monitor David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 17/44] Fix typo on "info pic" monitor cmd output for xive David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 18/44] target/ppc: Optimise VSX_LOAD_SCALAR_DS and VSX_VECTOR_LOAD_STORE David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 19/44] target/ppc: Fix xvabs[sd]p, xvnabs[sd]p, xvneg[sd]p, xvcpsgn[sd]p David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 20/44] spapr/xive: Sanity checks of OV5 during CAS David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 21/44] target/ppc: Set PSSCR_EC on cpu halt to prevent spurious wakeup David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 22/44] spapr: Add forgotten capability to migration stream David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 23/44] target/ppc: Use vector variable shifts for VSL, VSR, VSRA David Gibson
2019-06-07 9:29 ` Laurent Vivier
2019-06-07 14:09 ` Laurent Vivier
2019-06-07 14:28 ` Richard Henderson
2019-06-11 2:43 ` David Gibson
2019-06-11 7:05 ` Laurent Vivier
2019-06-11 7:35 ` Laurent Vivier
2019-05-29 6:49 ` [Qemu-devel] [PULL 24/44] spapr: Fix phb_placement backwards compatibility David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 25/44] spapr: Print out extra hints when CAS negotiation of interrupt mode fails David Gibson
2019-05-29 6:49 ` [Qemu-devel] [PULL 26/44] spapr/xive: add KVM support David Gibson
2019-06-04 7:23 ` Alexey Kardashevskiy
2019-06-04 7:54 ` Cédric Le Goater
2019-06-04 8:05 ` Greg Kurz
2019-06-05 7:24 ` Alexey Kardashevskiy
2019-05-29 6:50 ` [Qemu-devel] [PULL 27/44] spapr/xive: add hcall support when under KVM David Gibson
2019-05-29 6:50 ` [Qemu-devel] [PULL 28/44] spapr/xive: add state synchronization with KVM David Gibson
2019-05-29 6:50 ` [Qemu-devel] [PULL 29/44] spapr/xive: introduce a VM state change handler David Gibson
2019-06-04 7:49 ` Alexey Kardashevskiy
2019-06-04 8:10 ` Cédric Le Goater
2019-06-05 7:20 ` Alexey Kardashevskiy
2019-05-29 6:50 ` [Qemu-devel] [PULL 30/44] spapr/xive: add migration support for KVM David Gibson
2019-05-29 6:50 ` [Qemu-devel] [PULL 31/44] spapr/xive: activate KVM support David Gibson
2019-05-29 6:50 ` [Qemu-devel] [PULL 32/44] sysbus: add a sysbus_mmio_unmap() helper David Gibson
2019-05-29 6:50 ` [Qemu-devel] [PULL 33/44] spapr: introduce routines to delete the KVM IRQ device David Gibson
2019-05-29 6:50 ` [Qemu-devel] [PULL 34/44] spapr: check for the activation of " David Gibson
2019-05-29 6:50 ` [Qemu-devel] [PULL 35/44] spapr/irq: introduce a spapr_irq_init_device() helper David Gibson
2019-05-29 6:50 ` [Qemu-devel] [PULL 36/44] spapr/irq: initialize the IRQ device only once David Gibson
2019-05-29 6:50 ` [Qemu-devel] [PULL 37/44] ppc/xics: fix irq priority in ics_set_irq_type() David Gibson
2019-05-29 6:50 ` [Qemu-devel] [PULL 38/44] spapr/irq: add KVM support to the 'dual' machine David Gibson
2019-05-29 6:50 ` [Qemu-devel] [PULL 39/44] docs: provide documentation on the POWER9 XIVE interrupt controller David Gibson
2019-05-29 6:50 ` [Qemu-devel] [PULL 40/44] spapr/xive: fix multiple resets when using the 'dual' interrupt mode David Gibson
2019-05-29 6:50 ` [Qemu-devel] [PULL 41/44] spapr: change default interrupt mode to 'dual' David Gibson
2019-07-10 16:26 ` [Qemu-devel] [Qemu-ppc] " Laurent Vivier
2019-07-11 1:26 ` David Gibson
2019-07-15 10:19 ` Cédric Le Goater
2019-07-16 2:14 ` David Gibson [this message]
2019-05-29 6:50 ` [Qemu-devel] [PULL 42/44] spapr: Don't migrate the hpt_maxpagesize cap to older machine types David Gibson
2019-05-29 6:50 ` [Qemu-devel] [PULL 43/44] ppc/pnv: introduce new skiboot platform properties David Gibson
2019-05-29 6:50 ` [Qemu-devel] [PULL 44/44] ppc/pnv: add dummy XSCOM registers for PRD initialization David Gibson
2019-05-30 15:32 ` [Qemu-devel] [PULL 00/44] ppc-for-4.1 queue 20190529 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=20190716021444.GA7525@umbus.fritz.box \
--to=david@gibson.dropbear.id.au \
--cc=clg@kaod.org \
--cc=groug@kaod.org \
--cc=lvivier@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-ppc@nongnu.org \
--cc=rth@twiddle.net \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).