• # Vérifie que tu es vraiment en priorité haute

    Posté par . En réponse au message probleme pour faire un timer précis de l'ordre de la milliseconde. Évalué à 4. Dernière modification le 26 janvier 2022 à 23:13.

    Sans jouer avec les affinités ni rien :

    ~$ ./a.out
    average en ns = 999989, peak = 1236804, base = 815934
    ~$ chrt 99 ./a.out
    average en ns = 999920, peak = 1061961, base = 143937
    

    J'avais conclu que c'est parce que je suis dans le groupe audio qui a le droit de faire du RT (cf /etc/security/limits.conf), mais ça fonctionne avec un autre user qui n'y est pas :-/.

    Tu peux aussi vérifier la prio avec /proc/PID/limits :

    ~$ cat /proc/`pidof a.out`/limits
    Limit Soft Limit Hard Limit Units
    Max cpu time unlimited unlimited seconds
    Max file size unlimited unlimited bytes
    Max data size unlimited unlimited bytes
    Max stack size 8388608 unlimited bytes
    Max core file size unlimited unlimited bytes
    Max resident set unlimited unlimited bytes
    Max processes 31337 31337 processes
    Max open files 1024 524288 files
    Max locked memory 8388608 8388608 bytes
    Max address space unlimited unlimited bytes
    Max file locks unlimited unlimited locks
    Max pending signals 31337 31337 signals
    Max msgqueue size 819200 819200 bytes
    Max nice priority 0 0
    Max realtime priority 99 99
    Max realtime timeout unlimited unlimited us
    

    Je suis d'accord avec totof que si tu veux aller plus loin que jouer un peu avec les timers, il faudra sans doute un kernel spécifique, voire du matériel. Bon, la ms c'est pas trop demander non plus ;).

    (moi là c'est sur un vieux laptop)