From: Jan Beulich <jbeulich@suse.com>
To: Dylanger Daly <dylangerdaly@protonmail.com>
Cc: "xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>,
Andrew Cooper <Andrew.Cooper3@citrix.com>
Subject: Re: Ryzen 6000 (Mobile)
Date: Tue, 16 Aug 2022 13:22:58 +0200 [thread overview]
Message-ID: <7807b9cf-a09e-a393-ee7a-dc220a68e56e@suse.com> (raw)
In-Reply-To: <QUNqwybRmGkA3A2mUhDhAo-9qWFOaa1hpbwQG_GhKmVTf70L7qcvpw7ekgAz1S9N1eWVhFChE8KTll9jxNrPF5r2-RC9O3ao2CXL3PHNBlc=@protonmail.com>
On 15.08.2022 18:54, Dylanger Daly wrote:
> Please see the attached dom0 dmesg log, verbose lspci output and a tar of all SSDT and DSDT decompiled ACPI tables.
The only way I can currently explain all aspects of the behavior that
I'm aware of is for Dom0's kernel somehow not identifying the page
that ACPI wants to map (via ioremap_cache()) as identity mapped. As
far as ACPI goes, this is what I read out of the tables:
In SSDT27.dsl we have
Scope (\_SB.PCI0.GP17.AZAL)
{
Method (_PS0, 0, NotSerialized) // _PS0: Power State 0
{
Acquire (\M27E, 0xFFFF)
M460 ("FEA-ASL-\\_SB.PCI0.PBC.AZAL._PS0 CpmAzaliaPresentState = 1\n", Zero, Zero, Zero, Zero, Zero, Zero)
M279 = One
M276 ()
Release (\M27E)
}
M276() then invokes
Local0 = M017 (Zero, 0x08, One, 0x19, Zero, 0x08)
with M017() located in SSDT16.dsl:
Method (M017, 6, Serialized)
{
Local0 = M083 /* \M083 */
Local1 = (M083 >> 0x14)
Local2 = (Local1 & 0x0F00)
Local2 += 0x0100
If (((Local1 + Arg0) >= Local2))
{
Local3 = 0x7FFFFFFF
Local3 |= 0x80000000
Local4 = ((Local3 >> Arg4) & (Local3 >> (0x20 - Arg5)
))
Return (Local4)
}
Local0 += (Arg0 << 0x14)
Local0 += (Arg1 << 0x0F)
Local0 += (Arg2 << 0x0C)
Return (M013 (Local0, Arg3, Arg4, Arg5))
}
M013 carries out the actual memory access (32 bits at offset 0x19 from
Local0 that was determined here; oddly enough a mis-aligned access,
but that itself isn't a problem). The base address therefore is M083
offset by (0 << 0x14) + (8 << 0xf) + (1 << 0xc) = 0x41000 if I got
things right.
M083 in turn is a field in
OperationRegion (CPNV, SystemMemory, 0x7AF67018, 0x000100F7)
Field (CPNV, AnyAcc, Lock, Preserve)
{
M082, 32,
M083, 32,
M084, 32,
...
so the first few words of machine memory at 0x7af67018 would be of
interest (assuming of course that address doesn't change across
boots). 0x7af67018 itself is within the ACPI NVS range. Could you
perhaps obtain this from one of the /proc or /sys interfaces (perhaps
from a native kernel), or should I make a debugging patch for the
hypervisor? (Making one right away, with further logging added,
doesn't seem useful until it's clear whether you can actually also
observe output slightly before the actual crash, which has a risk of
being overwritten or scrolling off the screen.)
The situation of course isn't helped by the kernel's PFN <-> MFN
translation asymmetry in pte_pfn_to_mfn() nor pte_mfn_to_pfn()'s
anomaly (as already noted over two years ago in
https://lists.xen.org/archives/html/xen-devel/2020-05/msg00549.html),
albeit the exception error code suggests that the former is what is
getting in the way (and what would then also result in entirely
silent mapping failure). While I would like to patch the kernel at
least as much for the PFN/MFN to survive and hence appear in the page
table entry dump associated with the page fault, I'm afraid the
resulting entry could be recognized as a swap one. Such a patch could
hence only be used for debugging purposes when no swap space is in
use.
Jan
next prev parent reply other threads:[~2022-08-16 11:23 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-18 23:04 Ryzen 6000 (Mobile) Dylanger Daly
2022-07-19 6:29 ` Jan Beulich
2022-07-19 6:47 ` Dylanger Daly
2022-07-19 6:58 ` Jan Beulich
2022-07-19 6:50 ` Dylanger Daly
2022-07-19 9:34 ` Andrew Cooper
2022-07-20 0:33 ` Dylanger Daly
2022-07-20 8:11 ` Jan Beulich
2022-07-20 8:13 ` Jan Beulich
2022-08-15 11:07 ` Dylanger Daly
2022-08-15 11:30 ` Jan Beulich
2022-08-15 11:50 ` Dylanger Daly
2022-08-15 11:55 ` Jan Beulich
2022-08-15 12:03 ` Andrew Cooper
2022-08-15 15:39 ` Dylanger Daly
2022-08-15 16:19 ` Jan Beulich
2022-08-15 16:54 ` Dylanger Daly
2022-08-16 6:17 ` Jan Beulich
2022-08-16 8:34 ` Dylanger Daly
2022-08-16 8:59 ` Jan Beulich
2022-08-16 9:19 ` Dylanger Daly
2022-08-16 9:30 ` Jan Beulich
2022-08-16 11:22 ` Jan Beulich [this message]
2022-08-24 18:15 ` Dylanger Daly
2022-08-25 8:35 ` Jan Beulich
2022-08-25 11:10 ` Dylanger Daly
2022-08-25 14:55 ` Jan Beulich
2022-08-29 15:26 ` Dylanger Daly
2022-09-06 10:52 ` Jan Beulich
2022-09-06 11:45 ` Dylanger Daly
2022-08-31 22:12 ` Dylanger Daly
2022-09-06 10:50 ` Jan Beulich
2022-09-03 15:59 ` Dylanger Daly
2022-09-05 20:44 ` Dylanger Daly
[not found] ` <6JMvOsjmpWkAsnm6AXzNsjtj5_jy5vG_vG_PwTyDzX0z1buoX89r5UEpSGKf-H7CTBtg9gNlq4Icy7Q9OIDjfrxp2AqNMXbyKTCD0y_d0Hc=@protonmail.com>
2022-09-06 11:51 ` Jan Beulich
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=7807b9cf-a09e-a393-ee7a-dc220a68e56e@suse.com \
--to=jbeulich@suse.com \
--cc=Andrew.Cooper3@citrix.com \
--cc=dylangerdaly@protonmail.com \
--cc=xen-devel@lists.xenproject.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.