Lösung

Durch die Neuzuordnung der IRQ-Prioritäten wurden die Latenzschwankungen nahezu eliminiert:

Table 6: Repriorisierung CPX1 - Supplier - RTCORBA Client
Prozess Priorität Kommentar
Supplier RT (-99) RTCORBA Client
softirq-net-rx -35  
softirq-net-tx -40  
IRQ 6 -50 Digitale Ein/Ausgänge
IRQ 14 -2 ide0
IRQ 17 -80 eth0 (für RT Kommunikation)
IRQ 18 -2 ethX (restliche Ethernetports)
   
Table 7: Repriorisierung CPX2 - Receiver - RTCORBA Server
Prozess Priorität Kommentar
Receiver RT (-99) RTCORBA Server
softirq-net-rx -45  
softirq-net-tx -20 Senden ist rel. unwichtig
IRQ 6 -50 Digitale Ein/Ausgänge
IRQ 14 -2 ide0
IRQ 17 -80 eth0 (für RT Kommunikation)
IRQ 18 -2 ethX (restliche Ethernetports)
   

Beim Supplier wird die Priorität des softirq-net-rx Prozesses erhöht, somit wird sichergestellt, dass die TCP-acknowledge Pakete vom Receiver rechtzeitig empfangen werden können. Dies hat zur Folge, dass die Datenübertragung nicht wegen eines fehlenden acknowledge Pakets eingefroren wird.

Der Receiver bekommt durch die Erhöhung der Priorität von softirq-net-tx die Chance zeitgerecht die TCP-acknowledge Pakete zu versenden.

Figure 19: Supplier u. Receiver o. Last
[width=]./img/v1/v1optOhneLast.jpg
Figure 20: Supplier u. Receiver m. xdd, flood ping u. cpuburnP5 belastet
[width=]./img/v1/v1opt.jpg

Abbildung 19 und 20 zeigen, dass die Latenzzeiten nicht mehr gravierend mit der Systemauslastung korreliert sind. Durch die Repriorisierung der Interruptprozesse wurde die Echtzeitperformance gravierend verbessert. Alle weiteren Versuche werden mit dieser Priorisierung durchgeführt.

Manuel Traut 2007-02-25