Je cherche à rendre un processus particulier complètement sous-prioritaire
par rapport à l'ensemble de tous les autres processus de ma machine. Je
voudrais que ce processus ne soit ordonnancé uniquement lorsque le
processeur n'a rien à faire d'autre. La solution 'nice -n 19 monexec' ne me
satisfait pas car le processus prend malgré tout du temps cpu même si un
autre processus "normal" de priorité 0 (ou même -19) demande lui aussi 100%
de cpu.
Il semble que la politique SCHED_FIFO (à opposer à SCHED_OTHER qui est la
politique d'ordonnancement par défaut) corresponde à ce que je faire. J'ai
constaté à mes dépends son bon fonctionnement via l'utilitaire chrt du
package schedutils (avec "chrt -f -p 1 n" avec n le pid du script "while
true; do true; done", ce qui a complètement bloqué ma machine sur
l'exécution de ce script...).
Le soucis est qu'il semble qu'il ne soit pas possible de positionner une
priorité négative à la politique SCHED_FIFO (valeur possibles: 1 à 99), ce
qui fait que n'importe quelle processus ordonnancé avec SCHED_FIFO prend
systématiquement le pas sur les processus standards de type SCHED_OTHER de
priorité fixe 0 (moins prioritaire que 1).
Je m'interroge donc sur le moyen de rendre mon processus exclusivement sous
prioritaire - linux 2.4 ou 2.6 -i386:
$ chrt -m
SCHED_FIFO min/max priority : 1/99
SCHED_RR min/max priority : 1/99
SCHED_OTHER min/max priority : 0/0
Merci,
--
david
--
Pour contacter l'équipe de modération : moderateurs-fcolm@efrei.fr
ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans
la liste de distribution des modérateurs.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Francois Romieu
Bonsoir,
In article <c65dp5$67q$, David Gauchard wrote: [...]
Le soucis est qu'il semble qu'il ne soit pas possible de positionner une priorité négative à la politique SCHED_FIFO (valeur possibles: 1 à 99), ce qui fait que n'importe quelle processus ordonnancé avec SCHED_FIFO prend systématiquement le pas sur les processus standards de type SCHED_OTHER de priorité fixe 0 (moins prioritaire que 1).
kernel/sched.c (2.4.26 ou presque): [...] /* * Valid priorities for SCHED_FIFO and SCHED_RR are 1..99, valid * priority for SCHED_OTHER is 0. */ retval = -EINVAL; if (lp.sched_priority < 0 || lp.sched_priority > 99) goto out_unlock;
Vous pouvez modifier le test d'infériorité à 0 précédent.
-- Ueimor
-- Pour contacter l'équipe de modération : ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans la liste de distribution des modérateurs.
Bonsoir,
In article <c65dp5$67q$1@kane.laas.fr>, David Gauchard wrote:
[...]
Le soucis est qu'il semble qu'il ne soit pas possible de positionner une
priorité négative à la politique SCHED_FIFO (valeur possibles: 1 à 99), ce
qui fait que n'importe quelle processus ordonnancé avec SCHED_FIFO prend
systématiquement le pas sur les processus standards de type SCHED_OTHER de
priorité fixe 0 (moins prioritaire que 1).
kernel/sched.c (2.4.26 ou presque):
[...]
/*
* Valid priorities for SCHED_FIFO and SCHED_RR are 1..99, valid
* priority for SCHED_OTHER is 0.
*/
retval = -EINVAL;
if (lp.sched_priority < 0 || lp.sched_priority > 99)
goto out_unlock;
Vous pouvez modifier le test d'infériorité à 0 précédent.
--
Ueimor
--
Pour contacter l'équipe de modération : moderateurs-fcolm@efrei.fr
ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans
la liste de distribution des modérateurs.
In article <c65dp5$67q$, David Gauchard wrote: [...]
Le soucis est qu'il semble qu'il ne soit pas possible de positionner une priorité négative à la politique SCHED_FIFO (valeur possibles: 1 à 99), ce qui fait que n'importe quelle processus ordonnancé avec SCHED_FIFO prend systématiquement le pas sur les processus standards de type SCHED_OTHER de priorité fixe 0 (moins prioritaire que 1).
kernel/sched.c (2.4.26 ou presque): [...] /* * Valid priorities for SCHED_FIFO and SCHED_RR are 1..99, valid * priority for SCHED_OTHER is 0. */ retval = -EINVAL; if (lp.sched_priority < 0 || lp.sched_priority > 99) goto out_unlock;
Vous pouvez modifier le test d'infériorité à 0 précédent.
-- Ueimor
-- Pour contacter l'équipe de modération : ATTENTION: Postez DIRECTEMENT vos articles dans le groupe, PAS dans la liste de distribution des modérateurs.