Parallelizing Compilations

Linux, Microprocesseur | Publié par cpb
Jan 14 2012

(Version originale en français)

I very frequently compile Linux kernels, often during training sessions or engineering services (mainly in the field of embedded systems or drivers development), sometimes while writing articles or books.

Compilation time varies greatly depending on the amount of code (drivers, filesystems, protocols, etc.) and on the CPU power of the host machine. On a mid-range PC, compiling a kernel adjusted for an embedded system (with very few drivers) lasts about three minutes. On an entry level machine (or a little old one), compiling a generic kernel for PC (with hundreds of drivers as modules) can last an hour.

Lire la suite de cette entrée »

Linux 3.2 – CFS CPU Bandwidth

Linux, Temps-réel | Publié par cpb
Jan 07 2012

(English translation here)

Linus Torvalds a publié le noyau Linux 3.2 il y a deux jours. Ce dernier contient comme d’habitude de nombreux ajouts. L’un d’eux a attiré mon attention et j’ai souhaité observer son fonctionnement, il s’agit du contrôleur de consommation CPU pour l’ordonnanceur CFS.

Lire la suite de cette entrée »

Linux 3.2 – CFS CPU bandwidth (english version)

Linux | Publié par cpb
Jan 07 2012

(Version originale en français)

Linus Torvalds released the Linux 3.2 kernel two days ago. As usual, it contains many additions and improvements. One of them caught my attention and I wanted to see how it works, it is the controller for the CFS CPU scheduler.

Lire la suite de cette entrée »

Xenomai 2.6.0 sur Ubuntu 11.10

Linux, Temps-réel | Publié par cpb
Déc 28 2011

J’ai voulu comparer certains résultats obtenus avec Xenomai sur une carte Pandaboard avec ceux d’un PC classique. J’ai choisi un poste de travail (type bureautique) fonctionnant avec une distribution Ubuntu récente, afin de disposer d’une configuration la plus courante possible.

Lire la suite de cette entrée »

Recommandations de lecture

Linux, Livres | Publié par cpb
Déc 16 2011

On m’a souvent demandé durant des sessions de formations des bibliographies ou des conseils de lecture sur certains sujets. J’ai décidé de mentionner ici quelques ouvrages qui me semblent particulièrement judicieux pour étudier ou approfondir des domaines liés à la programmation, aux systèmes Unix et Linux, ou aux environnements temps-réel et embarqués.

Cette bibliographie est incomplète. Je ne me suis occupé que de la première étagère de ma bibliothèque. Je la complèterai prochainement…

 

Xenomai sur Pandaboard

Embarqué, Linux, Temps-réel | Publié par cpb
Nov 27 2011

L’installation de la dernière version de Xenomai (2.6.0) sur une carte Pandaboard ne devrait en principe pas présenter de difficultés. En principe. Mais en pratique je crois être tombé dans tous les pièges possibles avant d’arriver à faire fonctionner correctement mon système. Je vous fais grâce de mes mésaventures, et voici donc un petit résumé des opérations à réaliser pour pouvoir disposer de temps-réel strict sur la carte Pandaboard.

Lire la suite de cette entrée »

[ACTU] RTwiki de retour !

Actualité | Publié par cpb
Nov 15 2011

Le site RTwiki, victime collatérale de l’attaque d’août dernier sur Kernel.org, a longtemps été désactivé. Le voici de retour depuis quelques heures.

Comme d’habitude on y trouve de nombreuses informations sur le projet Linux-rt qui visiblement suit au plus près les évolutions du noyau standard (version 3.2-rc1 en l’occurrence).

Les patches de Thomas Gleixner vont progressivement regagner leur répertoire d’origine, toutefois, les plus récents se trouvent encore sur son site personnel.

 

 

Expérimentation sur la préemptibilité du noyau Linux

Embarqué, Linux, Microprocesseur, Temps-réel | Publié par cpb
Nov 04 2011

Cet article est extrait de la version préparatoire de mon livre « Solutions temps-réel sous Linux » (parution envisagée au début 2012).

J’ai eu envie de mettre en évidence la différence de comportement entre un noyau préemptible (avec l’option CONFIG_PREEMPT activée durant sa compilation) et un noyau non-préemptible classique. Toutefois, cette mise en évidence n’est pas très simple, car elle concerne précisément des cas rares et difficiles à  reproduire.

Nous allons nous intéresser à une interruption déclenchée par le port de communication série RS-232. Nous allons envoyer un caractère sur une liaison série à destination d’un système Linux sur lequel fonctionnera un processus temps-réel qui renverra le même caractère dans l’autre sens sur la même liaison série.

Lire la suite de cette entrée »

[ACTU] (defun message() (print « Bye John! »)) (message)

Actualité | Publié par cpb
Oct 25 2011

Après Dennis Ritchie il y a quelques jours, c’est John McCarthy qui nous a quitté hier.

Il s’agissait d’un pionnier de l’Intelligence Artificielle (dont il a inventé le nom), créateur de nombreux concepts-clés de l’informatique système (garbage collector, temps-partagé, etc.) et l’IA (élagage alpha-béta, etc.).
Lire la suite de cette entrée »

Prises de mutex et priorités

Linux, Temps-réel | Publié par cpb
Oct 22 2011

Cet article est extrait de la version préparatoire de mon livre à venir « Solutions temps-réel sous Linux« . Le sujet m’en a été inspiré par des expériences réalisées lors d’une récente session de formation (merci entre autres à Alejandro, Manuel et Sebastien pour m’avoir encouragé et aidé à explorer ce sujet).

 

Prise de mutex en temps-partagé

Lorsqu’une application multi-tâches utilise des ressources partagées, il est généralement nécessaire d’utiliser des mécanismes de synchronisation afin d’éviter les problèmes de concurrence d’accès. Dans le cas d’un programme multi-threads on utilisera des mutex Posix. Une question peut se poser quand plusieurs threads sont en attente pour tenter de prendre un mutex alors que ce dernier est verrouillé : qui va l’obtenir lorsqu’il sera libéré par son actuel détenteur ?

Lire la suite de cette entrée »