Software Tuning, Performance Optimization & Platform Monitoring
Discussion regarding monitoring and software tuning methodologies, Performance Monitoring Unit (PMU) of Intel microprocessors, and platform updating.

QPI Link Layer Packet Matching Reference "Gen By"

Paul_C_11
Beginner
453 Views

Hi,

 

Regarding the Intel Xeon Processor E5 and E7 v3 Family Uncore Performance Monitoring Reference Manual (June 2015):

https://www-ssl.intel.com/content/www/us/en/processors/xeon/xeon-e5-v3-uncore-performance-monitoring.html

The last table in this document, "Table 2-265. Opcodes" lists various coherence transaction messages and their opcodes & msg classes. It also has a column labeled "Gen By" in which there are entries such as, for example, Co, Ci, Ho, Hi, Uo. Can someone clarify the meaning of the entries in this column?

 

Regards,

Paul.

 

 

 

0 Kudos
1 Solution
McCalpinJohn
Honored Contributor III
453 Views

From a brief look at the transactions, I would guess that the "Gen By" fields indicate which functional units generate (or use?) this message opcode (C=CBox, H=Home Agent, U=UBox).  

The "i" and "o" sort of look like they represent "inbound" and "outbound" opcodes at each of the agents.  This is not particularly consistent with the "Generated By" column label, but a spot check of the transactions that I think I understand is consistent with this interpretation. E.g.

  • All of the "Rd" opcodes (except RdDataMigratory) include Co and Hi,
    • Hi makes sense -- these should be inputs to the Home Agent.
    • Co makes sense -- they should be sent from the CBox(es).
  • The Data Response opcodes all list Ho and Ci -- from the Home Agent to the CBox
    • The Data Response (excluding completion) transaction also lists Co, since it can come from a CBox.
  • All the "Interrupt" transactions (except IntAck) are listed as Ui, Uo, and Co.
    • Ui makes sense -- the UBox receives interrupts.
    • Uo makes sense -- the UBox sends interrupts.
    • Co makes sense -- the CBox could be the intermediary that sends the output of the INTR instruction to the Ubox.
  • All the configuration space reads and writes are Co and Ui, which fits with the description of the UBox.

 

View solution in original post

0 Kudos
2 Replies
McCalpinJohn
Honored Contributor III
454 Views

From a brief look at the transactions, I would guess that the "Gen By" fields indicate which functional units generate (or use?) this message opcode (C=CBox, H=Home Agent, U=UBox).  

The "i" and "o" sort of look like they represent "inbound" and "outbound" opcodes at each of the agents.  This is not particularly consistent with the "Generated By" column label, but a spot check of the transactions that I think I understand is consistent with this interpretation. E.g.

  • All of the "Rd" opcodes (except RdDataMigratory) include Co and Hi,
    • Hi makes sense -- these should be inputs to the Home Agent.
    • Co makes sense -- they should be sent from the CBox(es).
  • The Data Response opcodes all list Ho and Ci -- from the Home Agent to the CBox
    • The Data Response (excluding completion) transaction also lists Co, since it can come from a CBox.
  • All the "Interrupt" transactions (except IntAck) are listed as Ui, Uo, and Co.
    • Ui makes sense -- the UBox receives interrupts.
    • Uo makes sense -- the UBox sends interrupts.
    • Co makes sense -- the CBox could be the intermediary that sends the output of the INTR instruction to the Ubox.
  • All the configuration space reads and writes are Co and Ui, which fits with the description of the UBox.

 

0 Kudos
Paul_C_11
Beginner
453 Views

Thanks John, much appreciated. The interpretation of inbound/outbound for the three boxes had crossed my mind but didn't seem to fit with the 'Gen By' column header. Upon closer inspection (and as you showed) that interpretation does seem correct and the column header a little misleading. I guess a more appropriate column title might be 'Generated/Consumed By'

Best Regards,

Paul.

0 Kudos
Reply