From: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
To: Guenter Roeck <linux@roeck-us.net>
Cc: Mark Rutland <mark.rutland@arm.com>,
Peter Maydell <peter.maydell@linaro.org>,
Will Deacon <will.deacon@arm.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
QEMU Developers <qemu-devel@nongnu.org>,
"linux-arm-kernel@lists.infradead.org"
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [Qemu-devel] arm64 qemu tests failing in linux-next since 'arm64: kernel: enforce pmuserenr_el0 initialization and restore'
Date: Thu, 7 Jan 2016 18:31:44 +0000 [thread overview]
Message-ID: <20160107183144.GA3869@red-moon> (raw)
In-Reply-To: <568E9BF6.6020809@roeck-us.net>
On Thu, Jan 07, 2016 at 09:10:14AM -0800, Guenter Roeck wrote:
[...]
> >If that's the case, that was the wrong approach IMHO. QEMU has to comply
> >with the Aarch64 architecture which means that either the CPU it models
> >has a Performance Monitors extension or it does not. If reading pmcr_el0
> >does not fault I could tell you this is a QEMU regression because currently
> >it _does_ model pmcr_el0 while (hopefully) ID_AA64DFR0_EL1 PMUVer reports
> >it should not.
> >
>
> Strictly speaking you may be right (regression is a bit strong, though),
> but for my part I tend to be pragmatic.
It is a kernel bug and I will fix it. Regardless, I still think that
modelling pmcr_el0 to make sure the kernel boot even with ID_AA64DFR0_EL1
PMUVer reporting that the CPU is not implementing a Performance Monitors
extension was wrong.
> A warning message such as "Access to unimplemented register X" may be useful,
> but effectively disabling all (older) aarch64 Linux kernels in qemu could be
> seen as a bit dogmatic and would not be very helpful.
>
> >I will add code that guards both register accesses to fix both bugs at
> >once.
> >
>
> I assume you'll fix the the unconditional access(es) to pmcr_el0.
Yes.
> Question here is the scope of registers associated with PMUVer. Are there
> any other registers which would need to be guarded ?
None that I am aware of, other PMU registers are accessed only if PMUs
are probed (since they are present in DT or ACPI), which means that at
that point QEMU will have to model the Performance Monitors extension
entirely since it advertises them in the respective FW.
I could add a warning in the v8 PMU probing path to check PMUVer if we
think that's helpful.
Lorenzo
next prev parent reply other threads:[~2016-01-07 18:30 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-12-24 0:52 [Qemu-devel] arm64 qemu tests failing in linux-next since 'arm64: kernel: enforce pmuserenr_el0 initialization and restore' Guenter Roeck
2016-01-06 11:21 ` Lorenzo Pieralisi
2016-01-07 13:25 ` Peter Maydell
2016-01-07 15:53 ` Lorenzo Pieralisi
2016-01-07 15:58 ` Peter Maydell
2016-01-07 16:37 ` Lorenzo Pieralisi
2016-01-07 16:56 ` Peter Maydell
2016-01-07 17:13 ` Guenter Roeck
2016-01-07 17:10 ` Guenter Roeck
2016-01-07 17:19 ` Peter Maydell
2016-01-07 18:31 ` Lorenzo Pieralisi [this message]
2016-01-07 16:21 ` Guenter Roeck
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=20160107183144.GA3869@red-moon \
--to=lorenzo.pieralisi@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=mark.rutland@arm.com \
--cc=peter.maydell@linaro.org \
--cc=qemu-devel@nongnu.org \
--cc=will.deacon@arm.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 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).