TacOS-team / tacos

Système d'exploitation / Operating System
GNU General Public License v3.0
9 stars 4 forks source link

Le kernel panic n'est pas assez robuste. #217

Open NicolasFloquet opened 9 years ago

NicolasFloquet commented 9 years ago

Avec le problème des instructions SSE, j'ai remarqué que notre kernel panic manquait fortement de robustesse, et ça ne nous facilite pas la tâche quand il s'agit d'identifier un problème.

Dans le cas que l'on a rencontré, le comportement attendu aurait du être, j'imagine, invalid opcode. Au lieu de ça, on a eu un enchaînement de kernel panic jusqu'à arriver au pagefault de dépassement de pile. Il pourrait être utile de créer des tests pour chaque kernel panic possibles (division par 0, page fault, global protection, invalid opcode, etc.), et vérifier que le kernel panic se comporte normalement à chaque fois.

MaximeCheramy commented 9 years ago

Il me semblait que c'était déjà le cas. T'es sûr qu'on aurait dû avoir un invalid opcode ? Le problème c'était surtout l'utilisation d'un registre SSE alors que SSE n'était pas activé.

En tout cas, il y a des choses à améliorer je suis d'accord sur le fond du ticket. J'ai l'impression que c'est surtout n'importe quoi au niveau des plantages qui doivent juste killer un process user et pas tout le kernel. Mais ça rejoint le prob des signaux.

NicolasFloquet commented 9 years ago

En fait, quelque soit l'exception levée, on devrait de toute manière s'assurer que le kernel panic ne provoque pas d'autre exception, ce qui est actuellement le cas :p

MaximeCheramy commented 9 years ago

Que kpanic provoque une autre exception c'est super rare (t'as un exemple ?). Par contre ce qui me gêne c'est la gestion du retour aux choses normales. Si on plante et que derrière on y fait rien, on s'expose à une avalanche de plantages.

NicolasFloquet commented 9 years ago

C'est quasiment systématique, et j'irais même jusqu'à dire que ce qui est rare c'est d'avoir un seul niveau de kpanic sur la stacktrace...