From: Krzysztof Kozlowski <krzk@kernel.org>
To: "Philippe Mathieu-Daudé" <f4bug@amsat.org>
Cc: Peter Maydell <peter.maydell@linaro.org>,
qemu-arm@nongnu.org, qemu-devel@nongnu.org,
Igor Mitsyanko <i.mitsyanko@gmail.com>
Subject: Re: [Qemu-devel] [Qemu-arm] [PATCH v2 1/5] hw/intc/exynos4210_gic: Fix GIC memory mappings for secondary CPU
Date: Sun, 7 May 2017 12:55:53 +0200 [thread overview]
Message-ID: <20170507105553.4xoq7obdc2bjx26x@kozik-lap> (raw)
In-Reply-To: <cf23c2b4-c4c1-bb46-626e-a54851b25cbb@amsat.org>
On Mon, Mar 13, 2017 at 04:32:40PM -0300, Philippe Mathieu-Daudé wrote:
> On 03/13/2017 03:04 PM, Krzysztof Kozlowski wrote:
> > Recent Linux kernel (tested next-20170224) was complaining about missing
> > GIC mask and was unable to bring up secondary CPU:
> >
> > [ 0.000000] NR_IRQS:16 nr_irqs:16 16
> > [ 0.000000] GIC CPU mask not found - kernel will fail to boot.
> > ...
> > [ 0.400492] smp: Bringing up secondary CPUs ...
> > [ 1.413184] CPU1: failed to boot: -110
> > [ 1.423981] smp: Brought up 1 node, 1 CPU
> >
> > In its instance_init() call, the Exynos GIC driver was setting GIC
> > memory mappings for each CPU, from 1 up to "num-cpu" property. The
> > Exynos4210 machine init call on the other hand, first created Exynos GIC
> > device and then set the "num-cpu" property which was too late. The init
> > already happened with default "num-cpu" value of 1 thus GIC mappings
> > were created only for the first CPU.
> >
> > Split the Exynos GIC init code into realize function so the code will
> > see updated "num-cpu" property. This fixes the warning and brings
> > second CPU:
> > [ 0.435780] CPU1: thread -1, cpu 1, socket 9, mpidr 80000901
> > [ 0.451838] smp: Brought up 1 node, 2 CPUs
> >
> > Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
> > Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
>
> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Beside bringing secondary CPU, this patch fixes also Software Generated
Interrupts. Without it, none of the SGIs are coming (except CPU wakeup):
IPI0: 6281 CPU wakeup interrupts
IPI1: 0 Timer broadcast interrupts
IPI2: 0 Rescheduling interrupts
IPI3: 0 Function call interrupts
IPI4: 0 CPU stop interrupts
IPI5: 0 IRQ work interrupts
IPI6: 0 completion interrupts
This is pretty annoying because lack of SGIs means lack of IPIs thus for
example IRQ work cannot be executed. Without IRQ work, the kernel hangs
on power down on cpufreq shutdown because in cpufreq_dbs_governor_stop()
there is irq_work_sync() but none of irq_work interrupts were handled.
I still did not solve the issue with cpuidle (AFTR). I am trying to
implement CPU power off (needed for AFTR) but it is one-way so far (no
wakeup). Anyway the workaround is to just disable cpuidle.
Overall, what is the status of this patch? Should I resend? I can also
extend the commit description with paragraph about SGI/IPI.
Best regards,
Krzysztof
next prev parent reply other threads:[~2017-05-07 10:56 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-13 18:04 [Qemu-devel] [PATCH v2 0/5] hw: arm: exynos: Bring up secondary CPU + CPUIDLE issue Krzysztof Kozlowski
2017-03-13 18:04 ` [Qemu-devel] [PATCH v2 1/5] hw/intc/exynos4210_gic: Fix GIC memory mappings for secondary CPU Krzysztof Kozlowski
2017-03-13 19:32 ` [Qemu-devel] [Qemu-arm] " Philippe Mathieu-Daudé
2017-05-07 10:55 ` Krzysztof Kozlowski [this message]
2017-03-13 18:04 ` [Qemu-devel] [PATCH v2 2/5] hw/intc/exynos4210_gic: Use more meaningful name for local variable Krzysztof Kozlowski
2017-03-13 19:30 ` [Qemu-devel] [Qemu-arm] " Philippe Mathieu-Daudé
2017-03-13 18:04 ` [Qemu-devel] [PATCH v2 3/5] hw/timer/exynos4210_mct: Fix checkpatch style errors Krzysztof Kozlowski
2017-03-13 19:31 ` [Qemu-devel] [Qemu-arm] " Philippe Mathieu-Daudé
2017-03-13 18:04 ` [Qemu-devel] [PATCH v2 4/5] hw/timer/exynos4210_mct: Cleanup indentation and empty new lines Krzysztof Kozlowski
2017-03-13 19:32 ` [Qemu-devel] [Qemu-arm] " Philippe Mathieu-Daudé
2017-03-13 18:04 ` [Qemu-devel] [PATCH v2 5/5] hw/timer/exynos4210_mct: Remove unused defines Krzysztof Kozlowski
2017-03-14 16:55 ` [Qemu-devel] [Qemu-arm] [PATCH v2 0/5] hw: arm: exynos: Bring up secondary CPU + CPUIDLE issue Alex Bennée
2017-03-14 17:35 ` Krzysztof Kozlowski
2017-03-14 18:24 ` Alex Bennée
2017-03-14 18:56 ` Krzysztof Kozlowski
2017-03-15 8:05 ` Alex Bennée
2017-03-15 16:47 ` Krzysztof Kozlowski
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=20170507105553.4xoq7obdc2bjx26x@kozik-lap \
--to=krzk@kernel.org \
--cc=f4bug@amsat.org \
--cc=i.mitsyanko@gmail.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@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 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).