linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Parsing PXM from ACPI (DSDT)
       [not found]   ` <CY4PR12MB1815E6208E334CE4EA8F2670F9AD0@CY4PR12MB1815.namprd12.prod.outlook.com>
@ 2019-08-14 21:29     ` Duran, Leo
  2019-08-14 21:44       ` Schmauss, Erik
  0 siblings, 1 reply; 2+ messages in thread
From: Duran, Leo @ 2019-08-14 21:29 UTC (permalink / raw)
  To: linux-acpi, linux-kernel; +Cc: Rafael J. Wysocki, Len Brown

Hello,
Is not clear or evident to me if the kernel parses _PXM values below (or under) the root-complex.

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.


^ permalink raw reply	[flat|nested] 2+ messages in thread

* RE: Parsing PXM from ACPI (DSDT)
  2019-08-14 21:29     ` Parsing PXM from ACPI (DSDT) Duran, Leo
@ 2019-08-14 21:44       ` Schmauss, Erik
  0 siblings, 0 replies; 2+ messages in thread
From: Schmauss, Erik @ 2019-08-14 21:44 UTC (permalink / raw)
  To: Duran, Leo, linux-acpi, linux-kernel; +Cc: Rafael J. Wysocki, Len Brown



> -----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.


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-08-14 21:44 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <CY4PR12MB1815927E36A8A9A0E5B18734F9D20@CY4PR12MB1815.namprd12.prod.outlook.com>
     [not found] ` <CY4PR12MB18156AA493BA8F3C28F0377FF9AD0@CY4PR12MB1815.namprd12.prod.outlook.com>
     [not found]   ` <CY4PR12MB1815E6208E334CE4EA8F2670F9AD0@CY4PR12MB1815.namprd12.prod.outlook.com>
2019-08-14 21:29     ` Parsing PXM from ACPI (DSDT) Duran, Leo
2019-08-14 21:44       ` Schmauss, Erik

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).