Bug #3078
closedLes valeurs HK_LFR_CPU_LOAD, HK_LFR_CPU_LOAD_MAX et HK_LFR_CPU_LOAD_AVE sont erronées dans FSW <=3.2.0.18
Description
Contexte :
FSW <= 3.2.0.18
Suite à la correction/modification du calcul du CPU load par Alexis dans FSW >=3.2.0.17, les valeurs apparaissant dans le GSE sont incohérentes i.e. >> 100 (255, 192, ...) or le CPU load devrait être compris entre 0 et 100. La revue du code 3.2.0.18 par inspection confirme cela : Alexis (et Paul avant ça) sont censé renvoyer des valeurs entières entre 0 et 100 (CONST_100 - ival où ival est un entier compris normalement entre 0 et 100).
Il apparait de fait que le bug doit exister depuis le début pour toutes les versions du logiciel mais l'ancienne configuration (<=3.2.0.15) sans la tache de scrubbing faisait que les valeurs du CPU load (déjà fausses) se retrouvaient entre 0 et 100 et cohérentes avec les valeurs relevés pour le budget avec la sortie série (option --cpu-usage-report du FSW).
Autre problème : l'ICD dit bien que ces champs HK sont des unsigned char et qu'il faut leur appliquer une fonction de transfert (bijection de [0,255] vers [0,100]) : c'est ce que font les scripts de validation de Gerald/Vero :
tmp += (
"HK_LFR_CPU_LOAD=" + str(0.392156862745 * tm_ccsds26) + ', ' +
"HK_LFR_CPU_LOAD_MAX=" + str(0.392156862745 * tm_ccsds27) + ', ' +
"HK_LFR_CPU_LOAD_AVE=" + str(0.392156862745 * tm_ccsds28) + ', ')
DONC ce calcul est aussi faux car à priori les valeurs envoyées par Alexis/Paul sont <=100.
CONCLUSION : le calcul des CPU load est faux depuis toujours + il semblerait que Plasson attendent des valeurs 0-255.
Related issues