[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CF6A88132359CE47947DB4C6E1709ED53C61A2BC@ORSMSX122.amr.corp.intel.com>
Date: Wed, 14 Aug 2019 21:44:19 +0000
From: "Schmauss, Erik" <erik.schmauss@...el.com>
To: "Duran, Leo" <leo.duran@....com>,
"linux-acpi@...r.kernel.org" <linux-acpi@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
CC: "Rafael J. Wysocki" <rjw@...ysocki.net>,
Len Brown <lenb@...nel.org>
Subject: RE: Parsing PXM from ACPI (DSDT)
> -----Original Message-----
> From: linux-acpi-owner@...r.kernel.org [mailto:linux-acpi-
> owner@...r.kernel.org] On Behalf Of Duran, Leo
> Sent: Wednesday, August 14, 2019 2:30 PM
> To: linux-acpi@...r.kernel.org; linux-kernel@...r.kernel.org
> Cc: Rafael J. Wysocki <rjw@...ysocki.net>; Len Brown <lenb@...nel.org>
> Subject: Parsing PXM from ACPI (DSDT)
>
Hi Leo,
> Hello,
> Is not clear or evident to me if the kernel parses _PXM values below (or under)
> the root-complex.
Build with CONFIG_ACPI_DEBUG=y and boot with acpi.debug_layer=0xffffffff acpi.debug_level=0x80000
This will print all of the AcpiEvaluateObject queries to the dmesg.
>
> For example, in my experience:
> This ASL sample for PXM at the root-complex level produces the expected
> NUMA assignment from “lstopo”:
> Scope (\_SB) {
> // ...
> Device (PCI0) { // Root PCI Bus (Host-Bridge)
> Name (_HID, EISAID("PNP0A08"))
> Name (_CID, EISAID("PNP0A03"))
> Name (_BBN, 0)
> Method (_CRS,0) {
> // Return current resources for host bridge 0
> }
> Name (_PRT, Package() {
> // Package with PCI IRQ routing table information
> })
> Method (_PXM, 0, NotSerialized) {
> Return (0)
> }
> }
> // ...
> }
>
> However,
> This ASL sample for PXM at the P2P root-bridge level does not produce the
> expected NUMA assignment from “lstopo”:
> (Of course, the assumption is that multiple NUMA nodes actually exist on the
> system)
>
> Scope (\_SB) {
> // ...
> Device (PCI0) { // Root PCI Bus (Host-Bridge)
> Name (_HID, EISAID ("PNP0A08"))
> Name (_CID, EISAID ("PNP0A03"))
> Name (_BBN, 0)
> Method (_CRS,0) {
> // Return current resources for host bridge 0
> }
> Name (_PRT, Package() {
> // Package with PCI IRQ routing table information
> })
>
> Device (P2P0) { // First PCI-to-PCI bridge (Port0)
> Name (_ADR, 0x00070001) // Device#7h, Func#1 on bus PCI0
> Name (_PRT, Package() {
> // Package with PCI IRQ routing table information
> })
> Method (_PXM, 0, NotSerialized) {
> Return (0)
> }
> }
>
> Device (P2P1) { // Second PCI-to-PCI bridge (Port1)
> Name (_ADR ,0x00080001) // Device#8h, Func#1 on bus PCI0
> Name (_PRT, Package() {
> // Package with PCI IRQ routing table information
> })
> Method (_PXM, 0, NotSerialized) {
> Return (1)
> }
> }
> }
> // ...
> }
>
> Thanks,
> Leo.
Powered by blists - more mailing lists