Xen dom0: Edera schließt die NUMA-Lücke im I/O-Pfad
Making Xen's dom0 I/O path NUMA aware

Im vierten Teil ihrer Serie zeigt Edera, wie sie Xen's dom0 NUMA-fähig machen. Zuerst beheben sie ein grundlegendes Problem: dom0's Speicher war auf den falschen NUMA-Knoten platziert, da Xen den BIOS-Speicher in physischer Reihenfolge zuteilt. Ein proportionaler Ansatz verteilt den Speicher nun gleichmäßig über alle Knoten. Anschließend synthetisieren sie SRAT, SLIT und x2APIC-IDs für dom0, sodass Tools wie numactl und hwloc die echte Topologie sehen. Dabei stoßen sie auf Bugs, darunter eine falsche Knotennummerierung und unvollständige SRAT-Speicherbereiche. Die Arbeit verbessert auch die Leistung von nicht-virtualisierten Containern auf Edera-Hosts.
Auf einem Xen-Gast, wo die x2APIC-IDs standardmäßig auf einem einzigen Socket bleiben, während SRAT und SLIT korrekt sind, schließt OpenMP, dass die Maschine nur einen Socket hat, und weist seine Worker-Threads entsprechend zu – was auf einem Multi-Socket-Host bedeutet, dass jeder Worker in die Kerne eines einzigen Knotens gequetscht wird.