Question

Je suis nouveau au développement du noyau et je suis en train de comprendre au sujet nouveau patch du noyau

Était-ce utile?

La solution

Mon impression du patch (lumière en détail si la plupart des articles à ce sujet sont) est qu'il peut plus équilibrer uniformément les proportions CPU de façon automatique.

Le Linux CFS Completely Fair Scheduler a eu un comportement d'équilibrage groupe pendant un certain temps. Ce que cela signifie est que si l'utilisateur A commence 500 tâches et l'utilisateur B ne démarre que l'un, l'équité devrait équilibre entre les utilisateurs , pas les tâches.

À cette fin, tous les utilisateurs d'emplois A devrait être dans un groupe et l'ensemble des emplois de l'utilisateur B dans une autre, et la CPU seront partagées également entre eux - l'utilisateur A ne reçoit pas plus de capacité juste parce qu'ils sont antisocial en cours d'exécution de plusieurs tâches.

Cependant, l'équité a été soit selon l'ID d'utilisateur (dynamique) ou des groupes de contrôle (une méthode de configuration relativement pénible, statique).

Qu'est-ce que ce patch semble faire est d'attribuer automatiquement des emplois à un groupe en fonction de leur ATS. De cette façon, la séparation en groupe devient une fonction automatique (pas de mise en place des groupes de contrôle), et qui se produit sur un grain plus fin que l'ID utilisateur (depuis les postes de travail typiques que Vous un utilisateur effectuant la plupart des emplois, au moins les non-auto-admin).

Alors, quand Linus assoit pour compiler le prochain noyau pour nous, le processus de construction massivement parallèle a toutes ses tâches mises dans un groupe et Linus peut alors lancez VLC pour regarder le dernier épisode de même chose avec des modifications à votre .bashrc et quelques autres ajustements mineurs. Cette enveloppe essentiellement un outil « automatisé » autour des groupes témoins je l'ai mentionné précédemment.

Linus a déjà rejeté cette solution userland car il veut que ce soit la coquille agnostique et ce n'est pas les utilisateurs doivent avoir quelque chose à faire:

  

Parce qu'il est quelque chose que nous voulons le faire pour tous les utilisateurs, et pour toutes les coquilles, et assurez-vous qu'il se fait automatiquement. Y compris pour les utilisateurs qui ont de vieilles distributions etc, et le rendent facile à faire dans un seul endroit. Et vous le faites pour tous les autres heuristiques on peut voir facilement dans le noyau. Et puis vous le faites par magie sans que les utilisateurs même avoir à avis .

     

Tout à coup, il ne semble pas que plus merveilleux de jouer avec bashrc, non?

     

C'est le point. Nous pouvons pousser le changement du noyau, et tout sera « juste ». Nous pouvons faire cette fonctionnalité, nous avons déjà être dans le noyau en fait utile .

     

configuration de niveau utilisateur pour quelque chose qui devrait justravail t est ennuyeux. Nous pouvons faire mieux.

     

Autrement dit: si nous trouvons une meilleure façon de faire quelque chose, nous devrions pas dire « bien, si les utilisateurs veulent, ils peuvent le faire ». Si c'est vraiment une meilleure façon de faire quelque chose, nous devrions le faire. Exiger la configuration utilisateur est pas une fonction.

     

Maintenant, je ne dis pas que nous ne devrions pas permettre aux utilisateurs d'utiliser des groupes de contrôle. Bien sûr, ils peuvent faire des choses manuellement aussi. Mais nous ne devrions pas obliger les utilisateurs à faire des choses stupides que nous pouvons plus facilement nous faire.

     

Si le choix est entre dire que tout le monde « vous devriez le faire », et « nous devrions le faire pour vous », je vais prendre la seconde à chaque fois. Nous savons que cela devrait être fait. Pourquoi devrions-nous alors dire à quelqu'un d'autre de le faire pour nous?

Je suis d'accord avec ce sentiment - si vous venez le droit de dire à l'utilisateur qu'ils devaient faire quelque chose de spécial pour une performance supplémentaire, vous pouvez simplement les amener à utiliser "nice make -j64" plutôt que "make -j64"

.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top