lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 14 Aug 2019 21:29:49 +0000
From:   "Duran, Leo" <leo.duran@....com>
To:     "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: Parsing PXM from ACPI (DSDT)

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.

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ