lkml.org 
[lkml]   [2019]   [Aug]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
SubjectRE: Parsing PXM from ACPI (DSDT)
Date


> -----Original Message-----
> From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi-
> owner@vger.kernel.org] On Behalf Of Duran, Leo
> Sent: Wednesday, August 14, 2019 2:30 PM
> To: linux-acpi@vger.kernel.org; linux-kernel@vger.kernel.org
> Cc: Rafael J. Wysocki <rjw@rjwysocki.net>; Len Brown <lenb@kernel.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.

\
 
 \ /
  Last update: 2019-08-14 23:45    [W:0.037 / U:0.252 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site