-> je lance mon programme avec sudo chrt -f 99 ./a.out
-> je ne pense pas qu'il soit necessaire de passer sur du PREMPT_RT ou xenomai pour avoir un timer de 1ms avec une marge d'erreur seulement de 10%
-> pour moi le fait d'utiliser timerfd_create ou timer_create ou setitimer revient au meme.
j'ai remarqué que j'avais une erreur seulement de 2 à 3% (au lieu des 10 à 40%) quand mon systeme était stressé (avec le programme stress). On me renseignant un peu j'ai appris que le systeme pouvait entrer dans des niveaux de sommeil (suspend, hibernation), et lorsque l'interruption de mon timer se déclenche ca met un certain temps avant de pouvoir déclencher le handler associé. J'ai l'impression que le probleme vient de là.
Je vais donc essayer de changer certain parametre noyau. Peut etre retiré le mode tickless, mettre une frequence de timer à 1000Hz (au lieu des 250Hz par défaut) et essayer de retirer les états de sommeil de mes cpu
# le probleme vient peut etre que mes cpu entre dans un etat de sommeil
Posté par cosmoff . En réponse au message probleme pour faire un timer précis de l'ordre de la milliseconde. Évalué à 1. Dernière modification le 29 janvier 2022 à 13:41.
merci pour vos messages,
-> je lance mon programme avec sudo chrt -f 99 ./a.out
-> je ne pense pas qu'il soit necessaire de passer sur du PREMPT_RT ou xenomai pour avoir un timer de 1ms avec une marge d'erreur seulement de 10%
-> pour moi le fait d'utiliser timerfd_create ou timer_create ou setitimer revient au meme.
j'ai remarqué que j'avais une erreur seulement de 2 à 3% (au lieu des 10 à 40%) quand mon systeme était stressé (avec le programme stress). On me renseignant un peu j'ai appris que le systeme pouvait entrer dans des niveaux de sommeil (suspend, hibernation), et lorsque l'interruption de mon timer se déclenche ca met un certain temps avant de pouvoir déclencher le handler associé. J'ai l'impression que le probleme vient de là.
Je vais donc essayer de changer certain parametre noyau. Peut etre retiré le mode tickless, mettre une frequence de timer à 1000Hz (au lieu des 250Hz par défaut) et essayer de retirer les états de sommeil de mes cpu