Articles précédents : Développeur
- [0] PTT 1.0 : outil de trace pour la NPTL
- [11] PyQt v4 et Python 2.5 beta 1
- [38] OpenWengo lance son premier OpenWengo Code Camp
- [106] Été féminin pour le projet GNOME
- [3] Tsung, l'outil de mesure de performance en version 1.2
- [21] Linux Driver Kit
- [114] Erlang/OTP R11B supporte les architectures multiprocesseur
- [84] Sortie de TOM 2.3
- [54] Le Google Summer of Code 2006 arrive !
- [4] Ruby On Rails 1.1 et conférence RoR
Liens connexes
- Annonce dans la LKML (454 hits)
- Patch (372 hits)
- Article KernelTrap (328 hits)
- MacBook Pro noise complaints (303 hits)
Dépêche modérée par
Dépêche éditée par
Développeur : Timers haute résolution et horloge dynamique.
Posté par Sébastien Koechlin (). Modéré le 30 juin 2006.La première amélioration concerne la précision de l'horloge, cette modification permet aux timers POSIX et à la fonction nanosleep() d'atteindre la précision offerte par le matériel, typiquement 1µs sur un PC classique, et ceci de manière totalement transparente. L'implémentation classique du noyau s'appuie sur la valeur de HZ, ce qui offre une précision médiocre de 1ms à 10 ms (1ms pour les noyaux compilés avec HZ=1000Hz)
La seconde amélioration appelée "tickless kernel" pourrait être traduite par "Noyau sans tic d'horloge" ou "sans métronome". Il est possible de choisir à la compilation un mode dans lequel il n'y a plus de signal d'horloge périodique, l'horloge est alors programmée à chaque fois en fonction de la prochaine interruption d'horloge nécessaire. S'il n'y a aucun besoin pendant 1,5 secondes, le processeur restera réellement en état IDLE pendant 1,5 secondes. D'après les développeurs, les interruptions d'horloge sont réduites à 1 ou 2 par seconde. L'implémentation actuelle du noyau fait qu'une interruption d'horloge arrive avec la périodicité définie à la compilation (100Hz, 250Hz ou 1000Hz) même lorsque cela n'est pas nécessaire.
Cette amélioration permet de réduire la consommation du processeur et de ce fait, réduire la chaleur dégagée et augmenter l'autonomie de la batterie dans le cas d'ordinateurs portables. En prime c'est une solution à un problème récent: certains utilisateurs des Core-Duo d'Intel, en particulier sur les MacBook d'Apple, se plaignent d'entendre les interruptions de l'horloge lorsque leur processeur est au repos (probablement à cause des pics de courant générés avec une fréquence audible et d'un couplage inductif), l'absence de ces interruptions devrait leur permettre de retrouver le silence.
Annonce dans la LKML (454 hits)
Patch (372 hits)
Article KernelTrap (328 hits)
MacBook Pro noise complaints (303 hits)
> Lire la dépêche (20 commentaires, moyenne: 3,9).
bravo pour la qualité de la dépêche
Ben oui.. je ne sais pas si ça se fait, mais voilà une belle dépêche concise mais précise, alors bravo au contributeur.
-
[^]Re: bravo pour la qualité de la dépêche
Posté par Jean-Philippe (page perso, ) le 30/06/2006 à 16:40. (lien). Évalué à 4.Complètement.
Même un non éclairé peut saisir les avantages techniques.
Bravo au rédacteur, et merci aux devs
supaire...
c'est une très bonne idée... mais pas si nouvelle que ça :)
-
[^]Re: supaire...
Posté par baud123 (Jabber id, page perso, ) le 30/06/2006 à 17:36. (lien). Évalué à 5.un argumentaire ? des liens ? cela avait été implémenté auparavant ?
-
[^]Re: supaire...
Posté par Francois Revol (page perso, ) le 01/07/2006 à 09:13. (lien). Évalué à 8.N'en déplaise à ceux qui m'on mis -2, et pour avoir vu le code en question, BeOS a toujours fait ça.
D'ailleurs c'est ce qui faisait qu'il ne bootait pas sur mon portable, à cause du chipset ATI IXP buggué qui ne supportait pas le mode du PIT qu'il utilisait, tous les autres OS utilisant le mode 0 (de mémoire) qui est l'interruption périodique.
BeOS reprogrammait le PIT à chaque fois suivant les besoins.
Et Haiku fait la même chose, il suffit d'aller voir dans le SVN !-
[^]Re: supaire...
Posté par Olivier Serve (Jabber id, page perso, ) le 03/07/2006 à 15:37. (lien). Évalué à 4.Tu vois, c'est tout de suite mieux quand tu expliques...
-
-
phénomène récent, ... ou pas
En prime c'est une solution à un problème récent: certains utilisateurs des Core-Duo d'Intel, en particulier sur les MacBook d'Apple, se plaignent d'entendre les interruptions de l'horloge lorsque leur processeur est au repos (probablement à cause des pics de courant générés avec une fréquence audible et d'un couplage inductif), l'absence de ces interruptions devrait leur permettre de retrouver le silence.
C'est pas un phénomène récent. J'ai un laptop qui à 3 ans avec un AMD qui doit tourner autour de 1.4GHz si mes souvenirs sont bon, et qui produit le même sifflement, vraissemblablement pour les mêmes raisons. Perso ça ne me gène pas mais je conçois que ça peut déranger certains.
-
[^]Re: phénomène récent, ... ou pas
Posté par karteum59 () le 30/06/2006 à 22:16. (lien). Évalué à 4.Donc en résumé il suffirait de recompiler son noyau en modifiant la valeur de HZ pour atténuer le problème ? (à 100 ça doit être moins audible qu'à 1000 j'imagine)
Corollaire : y'a moyen de faire de la musique avec un module noyau ad'hoc ? (OK je sors... :)-
[^]Re: phénomène récent, ... ou pas
Posté par Khanh-Dang (page perso, ) le 01/07/2006 à 06:36. (lien). Évalué à 6.J'avais fait un programme faisait de la musique grâce au processeur de ma HP49, sans l'aide du buzzer intégré à la calculatrice. Mais comme on ne pouvait pas descendre dans la plage des fréquences audibles, il a fallu faire de la modulation de signal. Du coup, il fallait un poste de radio AM pour écouter le signal électromagnétique émis par le processeur (un Saturn à 4 MHz).
Mais même sans mon petit programme de démo, on peut déjà entendre sur le poste radio le cliquetis à 16 Hz des interruptions du système, et le son aigü des interruptions beaucoup plus rapprochées lorsque la touche ON est appuyée.-
[^]Re: phénomène récent, ... ou pas
Posté par Jimmy (page perso, ) le 02/07/2006 à 20:48. (lien). Évalué à 1.Ca devait ressembler un peu à ca :
http://www.linuxdevices.com/articles/AT3239582376.html
ou à ca :
http://www.erikyyy.de/tempest/
sauf que le signal n'était pas émis par l'écran ...
-
-
-
[^]Re: phénomène récent, ... ou pas
Nouveau?? Comment çà marche?
La seconde amélioration appelée "tickless kernel" pourrait être traduite par "Noyau sans tic d'horloge" ou "sans métronome".
C'est nouveau ce truc là?
C'est la première implémentation ou certains SE le font déjà?
S'il n'y a aucun besoin pendant 1,5 secondes, le processeur restera réellement en état IDLE pendant 1,5 secondes.
Et comment on sait quand il n'y a aucun besoin?
On baisse la fréquence en fonction de la charge processeur, c'est çà?
Interessant en tout cas cette (très bien rédigée) info.
-
[^]Re: Nouveau?? Comment çà marche?
Posté par Ph Husson (page perso, ) le 30/06/2006 à 17:58. (lien). Évalué à 5.Je ne connais pas cette implémentation mais c'est pas en fonction de la charge processeur qu'il faut compter
mais en fonction du nombre de processus qui ont besoin du CPU
si un seul a besoin du CPU ca sert à rien de relancer l'ordonanceur si c'est pour réélire le meme process
-
[^]Re: Nouveau?? Comment çà marche?
Posté par KiKouN (Jabber id, ) le 30/06/2006 à 18:17. (lien). Évalué à 4.Je ne sais pas si d'autre SE pour ordinateur de bureau, serveur utilise ceci. Certains systèmes embarqués l'utilisent.
En regardant l'ordancement des tâches, la plus par des tâches ne demandant pas beaucoup de calcul sont toutes en attente d'un évenement. Cet évenement fait toujours suite à une interruption (donnée sur carte réseau, disque, timer) même si le processus demandait une donnée d'un autre processus. Ainsi, si aucun processus ne demande pas du temps cpu sans condition (typiquement le cas de gros calcul), le système peut se mettre en attente d'une interruption materiel. Les 1.5secondes sont alors le temps entre la dernière utilisation du cpu et la première interruption matériel. Ce temps ne peut-être prédit par définition.
Le timer n'est par la suite utilisé uniquement dans le cas d'un sleep ou après l'allocation de temps cpu à une application afin que celle-ci n'utilise pas le cpu indéfiniment si d'autre applications demande aussi du temps cpu.
Sinon, la fréquence du cpu n'intervient pas ici même si on pourrais coupler ces deux fonctionnalités.
En espérant être clair et non alice.--
KiKouN, Bucheron-Geek
-
[^]Re: Nouveau?? Comment çà marche?
Posté par Francois Revol (page perso, ) le 01/07/2006 à 09:14. (lien). Évalué à 2.> C'est la première implémentation ou certains SE le font déjà?
BeOS, Haiku...
-
[^]Re: Nouveau?? Comment çà marche?
Posté par Francois Revol (page perso, ) le 01/07/2006 à 09:17. (lien). Évalué à 2.Pour faire simple, avant, quand tu avais un rendez-vous, tu regardait ta montre toutes les 5 minutes.
Maintenant, tu utilise ton portable/PDA qui te bippe au bon moment.
= moins de temps gaspillé.-
[^]Re: Nouveau?? Comment çà marche?
Posté par karteum59 () le 01/07/2006 à 10:19. (lien). Évalué à 2.Donc si je comprends bien ça veut dire que là où avant le noyau programmait une fois pour toutes le timer pour fixer des rendez-vous périodiques, maintenant ce dernier est constamment reprogrammé pour chaque rendez-vous suivant ?
OK, mais je me demande un truc : est-ce que la reprogrammation du timer est coûteuse en nombre de cycles CPU ? Si oui, ça veut dire qu'on risque de perdre un peu en performances non ?-
[^]Re: Nouveau?? Comment çà marche?
Posté par Francois Revol (page perso, ) le 01/07/2006 à 10:51. (lien). Évalué à 3.C'est possible qu'en performance brute avec beaucoup d'évènement à gérer on perde quelques cycles... mais la souplesse gagnée compense largement.
-
[^]Re: Nouveau?? Comment çà marche?
Posté par Jimmy (page perso, ) le 02/07/2006 à 21:19. (lien). Évalué à 4.est-ce que la reprogrammation du timer est coûteuse en nombre de cycles CPU ? Si oui, ça veut dire qu'on risque de perdre un peu en performances non ?
Ca consiste juste à écrire une valeur (le nombre de coups d'horloge à compter jusqu'à la prochaine interruption) dans un registre du timer. C'est un seul accès sur le bus, a mon avis c'est négligeable.
Sur le principe, je pense que dans les cas où on a beaucoup d'entrées-sorties (donc des attentes d'interruption) et/ou plein de process qui se synchronisent (sémaphores et mutexes), ce système est positif car il évite d'appeler le séquenceur pour rien (de toute façon il est appelé assez souvent).
-
-
patch sur le patch
Si vous êtes un utilisateur du kernel 2.6.17.1 vous aurez peut-être besoin de la petite correction disponible a l'adresse suivante :
http://lkml.org/lkml/2006/6/25/58
En effet, sans cette petite correction vous aller essuyer un ennuieux :
WARNING: /lib/modules/2.6.17.1-1xxx/kernel/drivers/acpi/processor.ko needs unknown symbol hrtimer_restart_sched_tick
WARNING: /lib/modules/2.6.17.1-1xxx/kernel/drivers/acpi/processor.ko needs unknown symbol hrtimer_stop_sched_tick
Vala bonne chance ;)




Cette discussion est archivée, il n'est plus possible de laisser des commentaires.
Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.