@@ -601,12 +601,15 @@ def irq_counters_tooltip(self, cpus: set[int]) -> str:
601601 return format_label (tooltip )
602602
603603 def phy_numa (self , numa : D ):
604- model = "<b>Unknown Processor Model</b>"
605604 for i , proc in enumerate (self .report .hardware .processor ):
606605 if i == numa .id :
607606 model = f"<b>{ proc .model } </b>"
607+ break
608+ else :
609+ model = "<b>Unknown Processor Model</b>"
608610 with self .cluster (model , style = "dotted" , color = "blue" ):
609- housekeeping_cpus = set (numa .cpus )
611+ housekeeping_cpus = set (numa .housekeeping_cpus )
612+ isolated_cpus = set (numa .isolated_cpus )
610613
611614 ovs_pmds = {}
612615 for pmd in self .report .ovs .pmds .values ():
@@ -637,6 +640,7 @@ def phy_numa(self, numa: D):
637640 )
638641
639642 housekeeping_cpus -= ovs_pmds .keys ()
643+ isolated_cpus -= ovs_pmds .keys ()
640644
641645 for vm in self .report .get ("vms" , {}).values ():
642646 for vnuma in vm .numa .values ():
@@ -652,6 +656,18 @@ def phy_numa(self, numa: D):
652656 color = "blue" ,
653657 )
654658 housekeeping_cpus -= host_cpus
659+ isolated_cpus -= host_cpus
660+
661+ if isolated_cpus :
662+ self .node (
663+ f"phy_cpus_isolated_{ numa .id } " ,
664+ [
665+ "<b><i>Isolated</i></b>" ,
666+ f"<i>CPUs { bit_list (isolated_cpus )} </i>" ,
667+ ],
668+ tooltip = self .irq_counters_tooltip (isolated_cpus ),
669+ color = "cornflowerblue" ,
670+ )
655671
656672 self .node (
657673 f"phy_cpus_housekeeping_{ numa .id } " ,
0 commit comments