RE: Parsing PXM from ACPI (DSDT)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




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





[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux