INSTALLATION - Problème de latence résolu

More
18 Oct 2014 21:17 - 15 Mar 2015 01:01 #52171 by Harpagophytum
Ma platforme de test est la suivante :
- Motherboard : Gigabyte GA-GC230D - Intel Atom 230 | 1.6GHz
- Chipset : North Bridge Intel 945GC Express Chipset | South Bridge Intel ICH7 rev 1
- Lan : Realtek 8101E chip (10/100 Mbit)
- CG - Radeon -rv280 9200 pro
- Ecran yyiama - Prolite E380S
Alors voilà ou j'en suis.
J'ai tout repris de zero et installé ( OS + linuxcnc ) à ma sauce ( on my own way )

L'installation ce fait donc via :

1. debootstrap + paramètrage de apt pour les dépots de linuxcnc - buildbot + tasksel install standard
2. paramètrage de base + xorg + driver radeon

display manager slim ( optionnel )
windows manager pekwm

That's all

Maintenant :

Bios :
Désactivation de tout ce qui n'est pas primordial ( audio - serial port - usb )
Désactivation de tout ce qui peut l'être dans Power Managment Setup : ACPI Suspend Type >> S1 ou S3 ( impossible à désactiver )
PCI1 IRQ assignment >> Auto
CPU Smart FAN Control >> disabled

Grub :
GRUB_CMDLINE_LINUX_DEFAULT="quiet isolcpus=1 lapic apm=off"

Modules :

/etc/modprobe.d/blacklist.conf
blacklist i915
blacklist iTCO_wdt
blacklist iTCO_vendor_support

/etc/modprobe.d/sound.conf
blacklist snd
blacklist snd_timer
blacklist snd_pcsp
blacklist snd-pcm
blacklist snd_page_alloc

/etc/modprobe.d/radeon-kms.conf
options radeon modeset=1

Lancement du latency-test :
# insmod /usr/realtime-3.4-9-rtai-686-pae/modules/rtai_smi.ko

Sans le module chargé - Max Overload = +/- 300 000 - linuxcnc le charge automatiquement si rtapi.conf modifié

Dans /usr/realtime-3.4-9-rtai-686-pae/test-suite/users/latency/
	$ sudo ./run	
	RTAI Testsuite - USER latency (all data in nanoseconds)
	2014/10/16 15:27:14
	RTH|    lat min|    ovl min|    lat avg|    lat max|    ovl max|   overruns
	RTD|         88|         88|        319|       7539|       7539|          0
	RTD|       -386|       -386|        354|       7522|       7539|          0
	RTD|         80|       -386|        318|       7564|       7564|          0
	RTD|       -351|       -386|        407|       7605|       7605|          0
	RTD|         65|       -386|        335|       7263|       7605|          0
	RTD|       -419|       -419|        446|       9044|       9044|          0
	RTD|         88|       -419|        321|       7615|       9044|          0
	RTD|         80|       -419|        319|      10223|      10223|          0 <<<<
	RTD|         88|       -419|        312|       7445|      10223|          0
	../..
	RTD|       -310|       -419|        321|       7738|      10223|          0
	RTD|         80|       -419|        330|       7404|      10223|          0
	RTD|         70|       -419|        314|      12345|      12345|          0 <<<<
	RTD|         83|       -419|        317|       7357|      12345|          0
	RTD|         80|       -419|        312|       7531|      12345|          0
	RTD|         75|       -419|        316|       7406|      12345|          0

Il y a donc un truc qui pique régulièrement à +/- 10 000 mais QUOI ?

1. J'ai essayé divers paramètre de boot - nohalt apm=off pcie_asmp=off nomce acpi=off ( pas bon )... sans résultat.

2. J'ai essayé smictrl - compile + smictrl -c 0 mais pas de résultat non plus.

3. j'ai aussi essayé de désactiver l'hyperthreading dans /etc/rc.local : ** pas d'option dans le Bios
echo 0 > /sys/devices/system/cpu/cpu1/online + isolcpus=1 retiré
Donc là une nette amélioration de la stabilité mais toujours ce "P-&éç_-&é_'à&-tain de pique à +/- 10 000.

Je replonge dans le lexique des paramètres du kernel :

Je m'arrête un nouvelle fois sur nmi_watchdog ( j'avais essayé nmi_watchdog=1/2, l'ordinateur ce bloquait mais ne sachant pas quoi faire je rebootais en faisant un reset. )

Ayant constater via - watch -n 1 cat /proc/interrupts - que les NMI s'incrémentaient toutes les 10 secondes ( au mieux ), j'ai décidé d'arrêter ce service complètement. Histoire de voir...
GRUB_CMDLINE_LINUX_DEFAULT="quiet isolcpus=1 lapic apm=off nmi_watchdog=0"

Et là magique de chez magique plus de pique à +/- 10 000

Je suis encore en phase de test mais - while true ; do echo "nothing" > /dev/null ; done - lancé pendant 2h30 me donne un max overload stable de 9485.

Voilà, c'est un poste un peu long mais je souhaitais partagé le résultat de ce travail avec vous.
Last Edit: 15 Mar 2015 01:01 by Harpagophytum.
More
03 Feb 2015 17:39 #55623 by akex
Bonjour

A premiere vue je ne t arrive pas a la cheville au niveaux de linux :P

Dit moi ta derniere ligne de comande et elle compatible avec tout les pc sous linuxcnc ?

J ai aussi des pique que je n arrive pas a resoudre :(

Merci
Alex
More
03 Feb 2015 22:03 - 03 Feb 2015 22:09 #55646 by Harpagophytum
Bonjour Alex,

Je suppose que tu parles de celle-ci.

echo 0 > /sys/devices/system/cpu/cpu1/online + isolcpus=1 retiré


Tout d'abord, je m'aperçois que je n'ai pas correctement retranscrit ce que j'ai fait. Je parle du fichier [ /ect/rc.local ] et je propose d'écrire dans un autre fichier. Désolé.

Voici un des lien que j'avais consulté : disabling-hyperthreading

Il faut comprendre que [ echo 0 > /sys/devices/system/cpu/cpu1/online ] doit être écrit dans le fichier [ /etc/rc.local ] pour que le système puisse écrire dans le fichier [ .../.../online ] à chaque boot.


Ton fichier [ /etc/rc.local ] doit donc ressembler à ça :
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
echo 0 > /sys/devices/system/cpu/cpu1/online
exit 0


Donc pour te répondre :

- Oui, pour une Debian. Pour d'autres distributions, le fichier n'est peut être pas exactement au même endroit.

- Attention : Mon processeur ( intel atom 230 ) est un double coeur.
* Pour un quad core, il faudra aussi désactiver les autres coeurs. ( cpu2, cpu3 )

J'espère avoir répondu à ta question. Sinon tu n'hésites pas et on voit ça ensemble.

Cordialement
Last Edit: 03 Feb 2015 22:09 by Harpagophytum.
More
04 Feb 2015 03:57 #55654 by akex
Merci beacoup pour tes explications ;)

Je suis sur l instalation du live cd donc ubuntu il me semble que c est debian oui

Mon processeur et un mono core, un athlon 64 4000+ 2,4ghz

Je parlais de cette comande
GRUB_CMDLINE_LINUX_DEFAULT="quiet isolcpus=1 lapic apm=off nmi_watchdog=0"

C est bien celle la qui a resolue tes souci ?

Corfialement
Alex
More
04 Feb 2015 07:04 #55657 by Harpagophytum
re-bonjour Alex,

Je n'avais pas compris. Là, tu parles des paramètres de boot. Situés dans le fichier [ /etc/default/grub ] sur une Debian et donc sur Ubuntu aussi ( j'imagine ).

Donc pour répondre à ta question.
Ce n'est pas vraiment l'ensemble des paramètres qui a réglé les piques mais la désactivation du service nmi_watchdog.

GRUB_CMDLINE_LINUX_DEFAULT="quiet isolcpus=1 lapic apm=off nmi_watchdog=0"


Du moins pour le pique à +/- 10 000.

Cependant, je suis arrivé à un bon résultat, après un long processus de tâtonnements, de tests, d'observations et d'un ensemble de procédures d'installations bien précises et très simples pour m'assurer qu'aucun service inutile ne tourne en arrière plan.

Pour ton athlon 64 4000+ tu peux retirer isolcpus=1 et ne pas tenir compte de mon poste précédent.

GRUB_CMDLINE_LINUX_DEFAULT="quiet lapic apm=off nmi_watchdog=0"


Cordialement,
More
04 Feb 2015 19:58 #55685 by akex
Bonjour

Merci encore pour ces explications
Je vais essayer ca aujourdhui et je posterai ce qu il en resulte

Cordialement
Alex
Moderators: darty367
Time to create page: 0.141 seconds
Powered by Kunena Forum