View previous topic :: View next topic |
Author |
Message |
gbetous l33t
Joined: 15 Jan 2004 Posts: 679 Location: Toulouse
|
Posted: Tue Nov 15, 2005 6:57 am Post subject: [kernel ? X11 ?] priorité de la souris [resolu] |
|
|
salut !
j'ai un soucis que je ne sais pas du tout par quel bout attaquer... (d'où le sujet flou )
quand mon ordi est fortement occupé (par exemple decompactage d'un gros paquetage portage), j'ai la souris qui devient vraiment inutilisable.
je voudrais savoir si je peux changer une priorité quelquepart pour garder un usage de la souris, meme quand le CPU frole les 100% (pour cet exemple précis, je précise que j'ai déjà mis dans mon /etc/make.conf "PORTAGE_NICENESS=15" mais ça ne change rien)
merci !!!
Last edited by gbetous on Tue Nov 15, 2005 6:06 pm; edited 1 time in total |
|
Back to top |
|
|
yoyo Bodhisattva
Joined: 04 Mar 2003 Posts: 4273 Location: Lyon - France
|
Posted: Tue Nov 15, 2005 8:21 am Post subject: |
|
|
Amha c'est plus au niveau du noyau que ça peut se régler : as-tu sélectionné l'option de preemption du kernel dans le menuconfig (section "Processor type and features") ??
Il est également possible que ça soit un problème de DMA non activé puisque tu parles de problème lors d'un décompactage (accès disque important). Que renvoie la commande "hdparm /dev/ton_hdd" ?? _________________ La connaissance s'accroît quand on la partage.
JCB |
|
Back to top |
|
|
spider312 Veteran
Joined: 02 Oct 2004 Posts: 1274 Location: France > Savoie > Chambery
|
Posted: Tue Nov 15, 2005 9:28 am Post subject: |
|
|
yoyo wrote: | Il est également possible que ça soit un problème de DMA non activé puisque tu parles de problème lors d'un décompactage (accès disque important). Que renvoie la commande "hdparm /dev/ton_hdd" ?? | Je dirais en effet que ça ne vient pas d'un problème de CPU, en général c'est plutôt les access aux peripheriques de stoquage (CD, DVD, Disques Durs ...) qui font "ramer" la machine, et provoquent ces saccades de la souris, le DMA réduit ça, mais ne résoud pas completement le problème, la prochaine fois, tu acheteras un disque SCSI
Au niveau du kernel, peut-être que le "I/O Scheduler" dans "block devices" peut jouer là dessus, mais comme c'est un truc sur lequel je viens à peine de me pencher, je ne saurais te confirmer ça, enfin si tu as le temps et la curiosité, essaye ... |
|
Back to top |
|
|
Enlight Advocate
Joined: 28 Oct 2004 Posts: 3519 Location: Alsace (France)
|
Posted: Tue Nov 15, 2005 10:59 am Post subject: |
|
|
spider312 wrote: |
Au niveau du kernel, peut-être que le "I/O Scheduler" dans "block devices" peut jouer là dessus, mais comme c'est un truc sur lequel je viens à peine de me pencher, je ne saurais te confirmer ça, enfin si tu as le temps et la curiosité, essaye ... |
Nop! c'est un caracter device et non pas un block device la souris! Moi je vote aussi DMA et/ou preemptible. |
|
Back to top |
|
|
spider312 Veteran
Joined: 02 Oct 2004 Posts: 1274 Location: France > Savoie > Chambery
|
Posted: Tue Nov 15, 2005 1:02 pm Post subject: |
|
|
Enlight wrote: | spider312 wrote: |
Au niveau du kernel, peut-être que le "I/O Scheduler" dans "block devices" peut jouer là dessus, mais comme c'est un truc sur lequel je viens à peine de me pencher, je ne saurais te confirmer ça, enfin si tu as le temps et la curiosité, essaye ... |
Nop! c'est un caracter device et non pas un block device la souris! Moi je vote aussi DMA et/ou preemptible. | c'est à dire, tu pourrais m'expliquer la nuance là STP ? en fait, je parle de ça au niveau du disque, pas de la souris |
|
Back to top |
|
|
Enlight Advocate
Joined: 28 Oct 2004 Posts: 3519 Location: Alsace (France)
|
Posted: Tue Nov 15, 2005 2:29 pm Post subject: |
|
|
hmmm... grosso merdo, quand tu lis un block device, tu lis bloc par bloc et donc le kernel doit allouer un/des buffer/s, par défaut il me semble que la plupart des file systems se mettent à 4ko par bloc mais c'est paramétrable au moment du mkfs (comme on l'a fait lors du thread gentoo sur un disque de 1.4Go).
Donc si tu fdemande accès a plusieurs blocs, le kernel alloue autant de buffers que de blocs demandés (dans la mesure du possible), garde a l'esprit chaque requete (la queue) et va les "télécharger" sur ton disque dur. là si t'as pas de scheduler (noop) c'est premier arrivé, premier servi, sinon t'as une gestion des priorités plus ou moins complexe selon le design du scheduler.
un character device au contraire ça se lit en stream, donc le programme en userland (X pour la souris par exemple) lis le flux ou ne le lis pas point barre, s'il ne le lit pas l'info est perdue à jamais. Parceque si on utilisait un fifo, au moment ou ton curseur se brancherait dessus, il rattraperai tous les mouvements effectués depuis la dernière connection au pipe. Evidement surtout pas de scheduler parceque si le curseur ne bouge pas dans les même ordre que tu bouges ta souris, risque d'y avoir des crises de nerfs !
Valà j'espère que j'ai réussi à être assez clair et que je ne me suis pas planté, j'suis pas expert du domaine non plus... |
|
Back to top |
|
|
spider312 Veteran
Joined: 02 Oct 2004 Posts: 1274 Location: France > Savoie > Chambery
|
Posted: Tue Nov 15, 2005 3:00 pm Post subject: |
|
|
Ok merci, c'est en effet très interessant, mais là j'ai du mal à comprendre ce que ça fait concretement et le rapport avec l'option du kernel dont je parle, qu'est-ce qu'un character device et un block device ? comment savoir si tel device est l'un ou l'autre ? sur quoi va influer ce scheduler ?
Parceque si j'ai bien compris, le disque dur est un block device, va donc utiliser le scheduler, et donc ce scheduler aura un impact sur l'impression de "ramage" du PC lors d'un gros transfert sur le disque, que la souris soit ou non un character device, puisque je parlais bel et bien du disque et pas de la souris, le problème ne vient pas de la souris en l'occurence, donc je ne vois pas en quoi mon 1er post' est faux |
|
Back to top |
|
|
Enlight Advocate
Joined: 28 Oct 2004 Posts: 3519 Location: Alsace (France)
|
Posted: Tue Nov 15, 2005 4:14 pm Post subject: |
|
|
spider312 wrote: | Ok merci, c'est en effet très interessant, mais là j'ai du mal à comprendre ce que ça fait concretement et le rapport avec l'option du kernel dont je parle, qu'est-ce qu'un character device et un block device ? comment savoir si tel device est l'un ou l'autre ? sur quoi va influer ce scheduler ?
|
ls -l ton_device et tu devrais voir un b (block) ou un c (character). comme dit le scheduler va determiner en cas d'accès concurrents à différents blocs, dans quel ordre ceux-cis vont être placés dans des buffers en RAM.
Il faut bien comprendre que les schedulers que tu choisi dans le kernel sont des I/O scheds. Il ne font que ce que je vien de dire, c'est le CPU sched (différent selon tes sources kernel mais pas à la carte dans le make.conf) qui lui choisi quel segment de code en RAM va être executé. Bref 2 taches biens distinctes.
Chaque scheduler que tu peux choisir à sa propre vision de ce qui doit être bufferisé en premier ou pas et utilise des critères différents.
Bref si tout le reste va bien, il faudrait un design extrèmement pourri de scheduler (un gros mangeur de cycles CPU) pour arriver à faire laguer ce qui tourne.
Quote: |
Parceque si j'ai bien compris, le disque dur est un block device, va donc utiliser le scheduler, et donc ce scheduler aura un impact sur l'impression de "ramage" du PC lors d'un gros transfert sur le disque, que la souris soit ou non un character device, puisque je parlais bel et bien du disque et pas de la souris, le problème ne vient pas de la souris en l'occurence, donc je ne vois pas en quoi mon 1er post' est faux |
Non, pas si le DMA est activé, dans ce cas le scheduler "calcule" juste "qui" est le prochain bloc à être chargé en RAM. Le truc c'est que (en principe c'est pas 100% vrai) sans DMA l'accès disque mobilise le CPU, c'est donc lui qui va lire sur le disque directement puis recopier dans la mémoire, et comme on copie "par blocs" pas moyen de l'interrompre à ce moment pour autre chose => ça laggue.
Aver DMA (Direct memory access pour rappel) le CPU envoie un tout petit ordre aux chipsets et le transfert se fait en n'utilisant plus que le chipset et en laissant le CPU libre de vaquer à autre chose.
Pour la souris c'est le même pricipe que pour le DMA, le chipset copie les données envoyées par la souris à une adresse mémoire spécifique, et le le CPU a le choix de la lire (et de l'exploiter) ou non.
Donc visiblement pour que la souris "se chie dessus" c'est qu'il y'a monopolisation du CPU (bouffage de cycles en raison de l'absence de DMA, ou kernel non preemptible + tache qui refuse de passer la main). Voilà pourquoi le fait que la souris "laggue" ne me semble pas pouvoir provenir d'un problème de scheduler.
Ouf! je fais rarement des posts aussi longs! |
|
Back to top |
|
|
yoyo Bodhisattva
Joined: 04 Mar 2003 Posts: 4273 Location: Lyon - France
|
Posted: Tue Nov 15, 2005 4:17 pm Post subject: |
|
|
Enlight wrote: | Ouf! je fais rarement des posts aussi longs! | Et c'est bien dommage pour nous ... _________________ La connaissance s'accroît quand on la partage.
JCB |
|
Back to top |
|
|
spider312 Veteran
Joined: 02 Oct 2004 Posts: 1274 Location: France > Savoie > Chambery
|
Posted: Tue Nov 15, 2005 4:19 pm Post subject: |
|
|
Je ne suis pas d'accord, quand je fais des grosses copies, j'ai ma souris qui lague et 1% d'utilisation CPU, quand je compile 4 trucs en même temps, j'ai une charge à 12 et mon CPU occupé à 100%, et ma souris est hyper fluide
Je sais que ça va à l'encontre totale de ce que tu dis, mais ce ne sont que des constatations personelles de plusieurs années sous windows et plusieurs années sous plusieures distribs, et ça a toujours été verifié, alors que ce que tu racontes n'est que théorique
Désolé, mais je ne crois que ce que je vois ...
Tout ce que je sais, c'est quand un ordi "rame" vraiment, ça vient du disque dur, comme quand un ordi "gratte" vraiment, c'est pas très pro comme paroles, mais personne n'a jamais réussi à me démontrer le contraire (ni même n'avait essayé jusqu'à ton message) |
|
Back to top |
|
|
Enlight Advocate
Joined: 28 Oct 2004 Posts: 3519 Location: Alsace (France)
|
Posted: Tue Nov 15, 2005 4:28 pm Post subject: |
|
|
La souris "bloquée" je ne l'ai eu que sous win, mais il n'est pas preemptible et NTFS est un gros gros mangeur de cycles CPU.
Par contre sous linux tu me dis avoir eu de faibles charges CPU donc ça m'intrigue total, à tout hasard avais tu des kernels non-preemptibles et/ou une souris usb? |
|
Back to top |
|
|
_droop_ l33t
Joined: 30 May 2004 Posts: 957
|
Posted: Tue Nov 15, 2005 4:50 pm Post subject: |
|
|
spider312 wrote: | Je ne suis pas d'accord, quand je fais des grosses copies, j'ai ma souris qui lague et 1% d'utilisation CPU, quand je compile 4 trucs en même temps, j'ai une charge à 12 et mon CPU occupé à 100%, et ma souris est hyper fluide. |
T'aurais pas un problème de DMA ? |
|
Back to top |
|
|
gbetous l33t
Joined: 15 Jan 2004 Posts: 679 Location: Toulouse
|
Posted: Tue Nov 15, 2005 5:18 pm Post subject: |
|
|
merci pour ce beau thread, on en apprend pas mal
sinon, pour commencer (une chose à la fois), j'ai en effet un pb de DMA.
Code: |
coyote ~ # hdparm /dev/hda
/dev/hda:
multcount = 16 (on)
IO_support = 0 (default 16-bit)
unmaskirq = 0 (off)
using_dma = 0 (off)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
geometry = 16383/255/63, sectors = 80026361856, start = 0
coyote ~ # hdparm -tT /dev/hda
/dev/hda:
Timing cached reads: 584 MB in 2.01 seconds = 290.01 MB/sec
Timing buffered disk reads: 6 MB in 3.08 seconds = 1.95 MB/sec
|
Malheureusement :
Code: | coyote ~ # hdparm -d1 /dev/hda
/dev/hda:
setting using_dma to 1 (on)
HDIO_SET_DMA failed: Operation not permitted
using_dma = 0 (off)
|
C'est bien l'option -d1 pour activer le DMA ? Une idée d'où cela peu bien venir ? |
|
Back to top |
|
|
kernelsensei Bodhisattva
Joined: 22 Feb 2004 Posts: 5619 Location: Woustviller/Moselle/FRANCE (49.07°N;7.02°E)
|
Posted: Tue Nov 15, 2005 5:20 pm Post subject: |
|
|
tu peux nous donner la section IDE de ton kernel stp ? _________________ $ ruby -e'puts " .:@BFegiklnorst".unpack("x4ax7aaX6ax5aX15ax4aax6aaX7ax2aX5aX8 \
axaX3ax8aX4ax6aX3aX6ax3ax3aX9ax4ax2aX9axaX6ax3aX2ax4ax3aX4aXaX12ax10aaX7a").join' |
|
Back to top |
|
|
yoyo Bodhisattva
Joined: 04 Mar 2003 Posts: 4273 Location: Lyon - France
|
Posted: Tue Nov 15, 2005 5:22 pm Post subject: |
|
|
kernel_sensei wrote: | tu peux nous donner la section IDE de ton kernel stp ? | Et le nom de ton chipset ... _________________ La connaissance s'accroît quand on la partage.
JCB |
|
Back to top |
|
|
gbetous l33t
Joined: 15 Jan 2004 Posts: 679 Location: Toulouse
|
Posted: Tue Nov 15, 2005 5:26 pm Post subject: |
|
|
Qu'est-ce que vous entendez pas "section IDE du kernel" ???
A tout hasard :
Code: | coyote ~ # dmesg | grep -i ide
BIOS-provided physical RAM map:
CPU: After generic identify, caps: 0383f9ff c1c3f9ff 00000000 00000000 00000000 00000000 00000000
CPU: After vendor identify, caps: 0383f9ff c1c3f9ff 00000000 00000000 00000000 00000000 00000000
Boot video device is 0000:01:00.0
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
Probing IDE interface ide0...
Probing IDE interface ide1...
Probing IDE interface ide2...
Probing IDE interface ide3...
Probing IDE interface ide4...
Probing IDE interface ide5...
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
ide1 at 0x170-0x177,0x376 on irq 15
|
Mon chipset c'est... heu... un KT266 je crois bien. (Si c'est pas ca, c'est un KT133A. J'ai changé de CM il y a peu dans l'urgence, et j'avoue ne pas trop savoir ce que j'ai )
EDIT : C'est sur, c'est un KT266A
Code: |
coyote ~ # dmesg | grep -i kt
ACPI: RSDP (v000 KT266A ) @ 0x000f73f0
ACPI: RSDT (v001 KT266A AWRDACPI 0x42302e31 AWRD 0x00000000) @ 0x1fff3000
ACPI: FADT (v001 KT266A AWRDACPI 0x42302e31 AWRD 0x00000000) @ 0x1fff3040
ACPI: DSDT (v001 KT266A AWRDACPI 0x00001000 MSFT 0x0100000c) @ 0x00000000
agpgart: Detected VIA KT266/KY266x/KT333 chipset
|
|
|
Back to top |
|
|
yuk159 Veteran
Joined: 18 Apr 2003 Posts: 1803 Location: noumea ,nouvelle-caledonie
|
Posted: Tue Nov 15, 2005 5:30 pm Post subject: |
|
|
Code: | grep -i IDE /usr/src/linux/.config |
Plutot ça je pense _________________ The box said: "Requires Windows 98/2000/XP/NT, or better."
So, I installed LINUX!
Instagram |
|
Back to top |
|
|
gbetous l33t
Joined: 15 Jan 2004 Posts: 679 Location: Toulouse
|
Posted: Tue Nov 15, 2005 5:43 pm Post subject: |
|
|
go !
Code: | coyote ~ # grep -i IDE /usr/src/linux/.config | grep -v -i video
# CONFIG_PARIDE is not set
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y
# Please see Documentation/ide.txt for help/info on IDE drives
# CONFIG_BLK_DEV_IDE_SATA is not set
# CONFIG_BLK_DEV_HD_IDE is not set
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_IDEDISK_MULTI_MODE=y
CONFIG_BLK_DEV_IDECD=y
# CONFIG_BLK_DEV_IDETAPE is not set
CONFIG_BLK_DEV_IDEFLOPPY=m
# CONFIG_BLK_DEV_IDESCSI is not set
# CONFIG_IDE_TASK_IOCTL is not set
# IDE chipset support/bugfixes
CONFIG_IDE_GENERIC=y
# CONFIG_BLK_DEV_IDEPNP is not set
# CONFIG_BLK_DEV_IDEPCI is not set
# CONFIG_IDE_ARM is not set
# CONFIG_BLK_DEV_IDEDMA is not set
# CONFIG_IDEDMA_AUTO is not set
CONFIG_JOYSTICK_SIDEWINDER=m
# CONFIG_FB_TRIDENT is not set
|
|
|
Back to top |
|
|
yoyo Bodhisattva
Joined: 04 Mar 2003 Posts: 4273 Location: Lyon - France
|
Posted: Tue Nov 15, 2005 5:56 pm Post subject: |
|
|
Bon et bien tu n'as tout simplement pas sélectionné le chipset de ta carte mère dans la config de ton noyau : Code: | cd /usr/src/linux
make menuconfig | ensuite : Quote: | Device Drivers ---> ATA/ATAPI/MFM/RLL support --->
<*> ATA/ATAPI/MFM/RLL support
[*] PCI IDE chipset support
<*> Include IDE/ATA-2 DISK support
<*> Include IDE/ATAPI CDROM support
< > Generic PCI IDE Chipset Support
[*] Generic PCI bus-master DMA support
[*] Use PCI DMA by default when available
[ ] Enable DMA only for disks
<*> VIA82CXXX chipset support | sauvegarde de la nouvelle config en sortant et pour finir : Code: | make && make modules_install | Puis copie du noyau (après montage de /boot) édition du grub/lilo.conf si besoin et réinstallation des modules externes au noyau (nvidia etc.).
Reboot et "hdparm /dev/hda" pour voir si le dma est activé.
Enjoy ! _________________ La connaissance s'accroît quand on la partage.
JCB |
|
Back to top |
|
|
gbetous l33t
Joined: 15 Jan 2004 Posts: 679 Location: Toulouse
|
Posted: Tue Nov 15, 2005 6:06 pm Post subject: |
|
|
ok, je viens de faire la modif, recompil et reboot :
Code: | coyote ~ # hdparm /dev/hda
/dev/hda:
multcount = 16 (on)
IO_support = 1 (32-bit)
unmaskirq = 1 (on)
using_dma = 1 (on)
keepsettings = 0 (off)
readonly = 0 (off)
readahead = 256 (on)
geometry = 16383/255/63, sectors = 80026361856, start = 0
coyote ~ # hdparm -tT /dev/hda
/dev/hda:
Timing cached reads: 652 MB in 2.00 seconds = 325.24 MB/sec
Timing buffered disk reads: 122 MB in 3.00 seconds = 40.65 MB/sec
|
Ca tourne déjà bcp mieux
Un petit coup de "emerge ut2004-demo" me permet de rebalancer mon decompactage de l'autre jour. Résultat : le système reste fluide et parfaitement utilisable !!!
Merci a tous, c'était plutôt réussi comme diagnostic |
|
Back to top |
|
|
_droop_ l33t
Joined: 30 May 2004 Posts: 957
|
Posted: Wed Nov 16, 2005 11:01 am Post subject: |
|
|
gbetous wrote: | Merci a tous, c'était plutôt réussi comme diagnostic |
C'est un grand classique quand même... (le dma)
Bonne journée. |
|
Back to top |
|
|
Enlight Advocate
Joined: 28 Oct 2004 Posts: 3519 Location: Alsace (France)
|
Posted: Wed Nov 16, 2005 12:30 pm Post subject: |
|
|
_droop_ wrote: | gbetous wrote: | Merci a tous, c'était plutôt réussi comme diagnostic |
C'est un grand classique quand même... (le dma)
Bonne journée. |
Mais les bons diagnostiques aussi sont un grand classique môoooooooooossieur! |
|
Back to top |
|
|
spider312 Veteran
Joined: 02 Oct 2004 Posts: 1274 Location: France > Savoie > Chambery
|
Posted: Wed Nov 16, 2005 4:27 pm Post subject: |
|
|
Euh, bin kernel préemptible et aucun soucis de DMA non, par contre, la souris USB ça change quoi ? |
|
Back to top |
|
|
_droop_ l33t
Joined: 30 May 2004 Posts: 957
|
Posted: Wed Nov 16, 2005 5:17 pm Post subject: |
|
|
Enlight wrote: | Mais les bons diagnostiques aussi sont un grand classique môoooooooooossieur! |
spider312 wrote: | Euh, bin kernel préemptible et aucun soucis de DMA non, par contre, la souris USB ça change quoi ? |
A priori, ca doit pas changer grand chose... |
|
Back to top |
|
|
|