Linux Embedded

Le blog des technologies libres et embarquées

Linux 2.6.37 pour l’embarqué

Quelles sont les nouveautés du noyau 2.6.37, concernant les systèmes embarqués ?

Ordonnancement temps réel

La règle de gestion des tâches temps réel sur une architecture multicœurs a légèrement été revue par Steven Rostedt de RedHat.
Comme suspecté quelques années avant, et après une série de mesures, il s’avère plus efficace de maintenir les tâches temps réel de plus forte priorité sur un même processeur le plus longtemps possible.
commit : git.kernel.org/43fa546

À l’opposé, l’ordonnancement monoprocesseur a été amélioré pour les utilisateurs du RCU léger. RCU (pour Read-Copy-Update) désigne le mécanisme permettant la mise à jour de données tout en laissant se terminer les accès en lecture à l’ancienne version des données. Paul McKenney (IBM), qui avait développé Tiny-RCU, a ajouté une version préemptible. Cette implémentation légère adopte donc un comportement temps réel.
commit : git.kernel.org/a57eb94

Support matériel

Le constructeur Broadcom, qui vient de rejoindre la Linux Foundation, a libéré son driver WiFi 802.11n. Cela semble être un virage dans la stratégie Open Source de la firme.
commits : git.kernel.org/a9533e7, git.kernel.org/cf2b448

La plateforme ARM Tegra de Nvidia, introduite dans le cycle précédent (2.6.36), poursuit son bonhomme de chemin, notamment grâce aux développeurs Android.
commit : git.kernel.org/7056d42 (variation de fréquence grâce au support cpufreq)
commit : git.kernel.org/4de3a8f (transfert rapide de données internes grâce au driver DMA)
commit : git.kernel.org/77ffc14 (driver PCI Express)

Toujours chez les constructeurs, Linus Walleij de ST-Ericsson a ajouté un driver pour flash NAND sur leur contrôleur FSMC (Flexible Static Memory Controller).
commit : git.kernel.org/6c009ab

Structure interne

Grâce au travail conjoint de Dezhong Diao (Cisco) et Grant Likely, les machines MIPS (très utilisées pour les routeurs) peuvent désormais être configurées grâce à un “device tree”. Le travail équivalent sur ARM, poussé par Linaro/Canonical n’est pas encore validé.
commit : git.kernel.org/f2ffa5a

L’optimisation de la consommation des SoC devient plus facile grâce à l’abstraction des OPP (Operating Performance Points) proposée par Texas Instruments. En effet, les SoCs contiennent différents modules regroupés en domaines de fréquences et tensions de fonctionnement, appelés OPP. Cette bibliothèque offre une interface générique pour faire baisser la consommation des modules inutilisés à travers l’API standard de gestion d’énergie telle que cpufreq.
documentation : power/opp.txt

Le support générique des GPIO en mémoire partagée a été implémenté par Anton Vorontsov. Au contraire de gpiolib, cette nouvelle interface est spécifique aux entrées/sorties accessibles à une adresse mémoire.
commit : git.kernel.org/aeec56e (l’en-tête du code mérite le coup d’œil)

L’utilisation de ventilateur connecté par de simples GPIO est maintenant facilité par le driver gpio-fan de Simon Guinot (LaCie).
commit : git.kernel.org/d6fe136

Debug

Le nouveau périphérique virtuel /dev/ttyprintk permet d’écrire dans les logs du noyau depuis un programme utilisateur. La visualisation des messages de l’espace utilisateur intercalés avec ceux du noyau peut faciliter l’analyse des phases de démarrage.
commit : git.kernel.org/24b4b67

Les outils de traçage ont subit de nombreuses améliorations et portages qui ouvrent de nouvelles possibilités.
commit : git.kernel.org/cf6eb48 (perf : variables locales)
commit : git.kernel.org/469b9b8 (perf : modules)
commit : git.kernel.org/359d510 (perf : activité réseau)
commit : git.kernel.org/3a9ab99 (perf-events sur MIPS)
commit : git.kernel.org/86c8c04 (perf-events : compteur matériel pour oprofile sur SH)
commit : git.kernel.org/eaaaeef (kprobe sur SH)
commit : git.kernel.org/80be7a7 (ftrace dynamique sur ARM)
commit : git.kernel.org/f81ef4a (hw-breakpoint sur ARM)

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *