This file is indexed.

/usr/share/doc/HOWTO/fr-html/SMP-HOWTO.html is in doc-linux-fr-html 2013.01-3ubuntu1.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

   1
   2
   3
   4
   5
   6
   7
   8
   9
  10
  11
  12
  13
  14
  15
  16
  17
  18
  19
  20
  21
  22
  23
  24
  25
  26
  27
  28
  29
  30
  31
  32
  33
  34
  35
  36
  37
  38
  39
  40
  41
  42
  43
  44
  45
  46
  47
  48
  49
  50
  51
  52
  53
  54
  55
  56
  57
  58
  59
  60
  61
  62
  63
  64
  65
  66
  67
  68
  69
  70
  71
  72
  73
  74
  75
  76
  77
  78
  79
  80
  81
  82
  83
  84
  85
  86
  87
  88
  89
  90
  91
  92
  93
  94
  95
  96
  97
  98
  99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
 181
 182
 183
 184
 185
 186
 187
 188
 189
 190
 191
 192
 193
 194
 195
 196
 197
 198
 199
 200
 201
 202
 203
 204
 205
 206
 207
 208
 209
 210
 211
 212
 213
 214
 215
 216
 217
 218
 219
 220
 221
 222
 223
 224
 225
 226
 227
 228
 229
 230
 231
 232
 233
 234
 235
 236
 237
 238
 239
 240
 241
 242
 243
 244
 245
 246
 247
 248
 249
 250
 251
 252
 253
 254
 255
 256
 257
 258
 259
 260
 261
 262
 263
 264
 265
 266
 267
 268
 269
 270
 271
 272
 273
 274
 275
 276
 277
 278
 279
 280
 281
 282
 283
 284
 285
 286
 287
 288
 289
 290
 291
 292
 293
 294
 295
 296
 297
 298
 299
 300
 301
 302
 303
 304
 305
 306
 307
 308
 309
 310
 311
 312
 313
 314
 315
 316
 317
 318
 319
 320
 321
 322
 323
 324
 325
 326
 327
 328
 329
 330
 331
 332
 333
 334
 335
 336
 337
 338
 339
 340
 341
 342
 343
 344
 345
 346
 347
 348
 349
 350
 351
 352
 353
 354
 355
 356
 357
 358
 359
 360
 361
 362
 363
 364
 365
 366
 367
 368
 369
 370
 371
 372
 373
 374
 375
 376
 377
 378
 379
 380
 381
 382
 383
 384
 385
 386
 387
 388
 389
 390
 391
 392
 393
 394
 395
 396
 397
 398
 399
 400
 401
 402
 403
 404
 405
 406
 407
 408
 409
 410
 411
 412
 413
 414
 415
 416
 417
 418
 419
 420
 421
 422
 423
 424
 425
 426
 427
 428
 429
 430
 431
 432
 433
 434
 435
 436
 437
 438
 439
 440
 441
 442
 443
 444
 445
 446
 447
 448
 449
 450
 451
 452
 453
 454
 455
 456
 457
 458
 459
 460
 461
 462
 463
 464
 465
 466
 467
 468
 469
 470
 471
 472
 473
 474
 475
 476
 477
 478
 479
 480
 481
 482
 483
 484
 485
 486
 487
 488
 489
 490
 491
 492
 493
 494
 495
 496
 497
 498
 499
 500
 501
 502
 503
 504
 505
 506
 507
 508
 509
 510
 511
 512
 513
 514
 515
 516
 517
 518
 519
 520
 521
 522
 523
 524
 525
 526
 527
 528
 529
 530
 531
 532
 533
 534
 535
 536
 537
 538
 539
 540
 541
 542
 543
 544
 545
 546
 547
 548
 549
 550
 551
 552
 553
 554
 555
 556
 557
 558
 559
 560
 561
 562
 563
 564
 565
 566
 567
 568
 569
 570
 571
 572
 573
 574
 575
 576
 577
 578
 579
 580
 581
 582
 583
 584
 585
 586
 587
 588
 589
 590
 591
 592
 593
 594
 595
 596
 597
 598
 599
 600
 601
 602
 603
 604
 605
 606
 607
 608
 609
 610
 611
 612
 613
 614
 615
 616
 617
 618
 619
 620
 621
 622
 623
 624
 625
 626
 627
 628
 629
 630
 631
 632
 633
 634
 635
 636
 637
 638
 639
 640
 641
 642
 643
 644
 645
 646
 647
 648
 649
 650
 651
 652
 653
 654
 655
 656
 657
 658
 659
 660
 661
 662
 663
 664
 665
 666
 667
 668
 669
 670
 671
 672
 673
 674
 675
 676
 677
 678
 679
 680
 681
 682
 683
 684
 685
 686
 687
 688
 689
 690
 691
 692
 693
 694
 695
 696
 697
 698
 699
 700
 701
 702
 703
 704
 705
 706
 707
 708
 709
 710
 711
 712
 713
 714
 715
 716
 717
 718
 719
 720
 721
 722
 723
 724
 725
 726
 727
 728
 729
 730
 731
 732
 733
 734
 735
 736
 737
 738
 739
 740
 741
 742
 743
 744
 745
 746
 747
 748
 749
 750
 751
 752
 753
 754
 755
 756
 757
 758
 759
 760
 761
 762
 763
 764
 765
 766
 767
 768
 769
 770
 771
 772
 773
 774
 775
 776
 777
 778
 779
 780
 781
 782
 783
 784
 785
 786
 787
 788
 789
 790
 791
 792
 793
 794
 795
 796
 797
 798
 799
 800
 801
 802
 803
 804
 805
 806
 807
 808
 809
 810
 811
 812
 813
 814
 815
 816
 817
 818
 819
 820
 821
 822
 823
 824
 825
 826
 827
 828
 829
 830
 831
 832
 833
 834
 835
 836
 837
 838
 839
 840
 841
 842
 843
 844
 845
 846
 847
 848
 849
 850
 851
 852
 853
 854
 855
 856
 857
 858
 859
 860
 861
 862
 863
 864
 865
 866
 867
 868
 869
 870
 871
 872
 873
 874
 875
 876
 877
 878
 879
 880
 881
 882
 883
 884
 885
 886
 887
 888
 889
 890
 891
 892
 893
 894
 895
 896
 897
 898
 899
 900
 901
 902
 903
 904
 905
 906
 907
 908
 909
 910
 911
 912
 913
 914
 915
 916
 917
 918
 919
 920
 921
 922
 923
 924
 925
 926
 927
 928
 929
 930
 931
 932
 933
 934
 935
 936
 937
 938
 939
 940
 941
 942
 943
 944
 945
 946
 947
 948
 949
 950
 951
 952
 953
 954
 955
 956
 957
 958
 959
 960
 961
 962
 963
 964
 965
 966
 967
 968
 969
 970
 971
 972
 973
 974
 975
 976
 977
 978
 979
 980
 981
 982
 983
 984
 985
 986
 987
 988
 989
 990
 991
 992
 993
 994
 995
 996
 997
 998
 999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<html>
<head>
<meta name="generator" content=
"HTML Tidy for HTML5 for Linux version 5.2.0">
<meta name="GENERATOR" content="LinuxDoc-Tools 0.9.72">
<title>Linux SMP HOWTO</title>
</head>
<body>
<h1>Linux SMP HOWTO</h1>
<h2>David Mentré, <code>David.Mentre@irisa.fr</code></h2>
v1.9, 13 janvier 2000
<hr>
<em>Ce HOWTO passe en revue les principaux problèmes et leurs
solutions liés la configuration et à l'emploi d'un système SMP sous
Linux.</em>
<hr>
<h2><a name="s1">1. Introduction</a></h2>
<p>Linux fonctionne sur les machines SMP (Symetric
Multi-Processors). Le support SMP fut introduit dans la version 2.0
du noyau et a été largement amélioré depuis. La gestion est
beaucoup plus fine dans la série 2.2.x que dans la 2.0.x, d'où de
meilleures performances lorsque les processus font appel au noyau
!</p>
<p>HOWTO maintenu par David Mentré ( <a href=
"mailto:David.Mentre@irisa.fr">David.Mentre@irisa.fr</a>). La
dernière version de ce HOWTO peut être obtenue à</p>
<ul>
<li><a href=
"http://www.irisa.fr/prive/mentre/smp-howto/">http://www.irisa.fr/prive/mentre/smp-howto/</a>
(France)</li>
<li><a href=
"http://www.phy.duke.edu/brahma/smp-faq/">http://www.phy.duke.edu/brahma/smp-faq/</a>
(USA)</li>
</ul>
<p>Si vous voulez contribuer à ce HOWTO, je préfère les diffs
<a href=
"http://www.irisa.fr/prive/mentre/smp-howto/smp-howto.sgml">SGML
version</a> de ce document, mais toute remarque (en texte pur) sera
grandement apprécié. Si vous m'envoyez un e-mail à propos de ce
document, insérez s'il vous plaît un tag tel <code>[Linux SMP
HOWTO]</code> dans le champ <code>Suject:</code> de votre e-mail.
Ça m'aide à trier automatiquement mon courrier (et vous recevrez
une réponse plus rapide <code>;)</code>).</p>
<p>Ce HOWTO reprend et enrichit <a href=
"http://www.ihoc.net/linux-smp-faq-draft.html">first draft</a>
écrit par <b>Chris Pirih</b>.</p>
<p>Toutes les informations contenues dans ce HOWTO sont fournies
"tel que". Toute garantie explicite, implicite ou légale,
concernant l'exactitude de l'information, de la convenance à
quelque usage particulier est par la présente spécifiquement
déclinée. Alors que tous les efforts ont été faits pour assurer
l'exactitude des informations contenues dans ce HOWTO, les auteurs
n'assument aucune responsabilité pour les erreurs, omissions ou
dommages résultant de l'utilisation des informations contenues dans
ce document.</p>
<h2><a name="s2">2. Questions indépendantes de
l'architecture.</a></h2>
<h2><a name="ss2.1">2.1 Côté noyau</a></h2>
<ol>
<li><b>Linux supporte-t-il les threads multiples ? Si je lance deux
ou plusieurs processus, seront-ils répartis entre les différents
processeurs disponibles ?</b>
<p>Oui. Les processus et les threads du noyau sont répartis entre
les processeurs. Ceux de l'espace utilisateur ne le sont pas.</p>
</li>
<li><b>Quelles sont les architectures SMP supportées ?</b>
<dl>
<dt><b>D'après Alan Cox&nbsp;:</b></dt>
<dd>
<p>Les versions 2.0 du noyau supportent les systèmes SMP de type
hypersparc (SS20, etc...) et Intel 486, Pentium ou machines
supérieurs compatible avec la norme Intel MP1.1/1.4. <b>Richard
Jelinek</b> ajoute&nbsp;: jusqu'à présent, seul des systèmes ne
comprenant pas plus de 4 processeurs ont été testés. La
spécification MP (et donc Linux) autorise théoriquement jusqu'à 16
processeurs.</p>
<p>Le support SMP pour les architectures UltraSparc, SparcServer,
Alpha et PowerPC est disponible dans le 2.2.x.</p>
</dd>
<dt><b>De Ralf Bächle&nbsp;:</b></dt>
<dd>
<p>MIPS, m68k et ARM ne gèrent pas le SMP; les deux derniers ne le
supporteront probablement jamais.</p>
<p>Ceci étant, je ferai un hack pour MIPS-SMP dès que j'aurais une
machine SMP...</p>
</dd>
</dl>
</li>
<li><b>Comment construire un noyau Linux gérant le SMP ?</b>
<p>La plupart des distributions ne fournissent pas un noyau adapté
au SMP. Vous devrez donc en faire un vous même. Si vous n'avez
encore jamais compilé de noyau, voila une excellente occasion
d'apprendre. Expliquer comment compiler un nouveau noyau dépasse le
cadre de ce document; préférez-vous au Linux Kernel Howto pour de
plus amples informations (<b>C. Polisher</b>). Dans la série 2.0
jusqu'à la version 2.1.132 exclue du noyau, décommentez la ligne
<code>SMP=1</code> dans le Makefile principal
(<code>/usr/src/linux/Makefile</code>).</p>
<p>Dans la version 2.2, configurez le noyau et répondez "oui" à la
question "Symetric multi-processing support" (<b>Michael Elizabeth
Chastain</b>).</p>
<p>Autorisez l'horloge temps réel en cochant l'option "RTC support"
(<b>Robert G. Brown</b>). Notez qu'inclure le support RTC, en
réalité, pour autant que je sache, n'empêche pas le problème connu
de la dérive de l'horloge avec le SMP&nbsp;: activer cette
fonctionnalité avertit en cas de lecture de l'horloge au démarrage.
Une note de <b>Richard Jelinek</b> signale aussi qu'activer
"Enhandced RTC" est nécessaire pour activer le deuxième processeur
(identification) sur certaines cartes mère Intel exotiques.</p>
<p>Enfin, sur plate-forme Intel, N'ACTIVEZ PAS l'option APM
(Advanced Power Management)! APM et SMP sont incompatibles et votre
système plantera certainement (ou du moins probablement
<code>;)</code>) au démarrage si APM est activé (<b>Jakob
Oestergaard</b>). <b>Alan Cox</b> le confirme&nbsp;: désactivez APM
pour les machines SMP en 2.1.x. En gros le comportement APM est
indéfini en présence de systèmes SMP et tout peut arriver. Toujours
sur plate-forme Intel, activez "MTRR (Memory Type Range Register)
support". Certains BIOS sont défectueux et n'activent pas la
mémoire cache du second processeur. Le support MTRR contient le
code pour y remédier.</p>
<p>Vous devez reconstruire votre noyau et vos modules quand vous
passez en SMP et quand vous changez de mode SMP. N'oubliez pas
d'effectuer un <code>make modules</code> et un <code>make
modules_install</code> (<b>Alan Cox</b>).</p>
<p>Si vous obtenez des erreurs au chargement des modules, vous
n'avez probablement pas réinstallé vos modules. Néanmoins, avec
quelques noyaux 2.2.x, certains ont rapporté des problèmes lors de
la recompilation d'un noyau SMP en noyau UP (Uni-Processeur). Afin
de résoudre cela, sauvegardez votre fichier .config, et faites un
<em>make mrproper</em>, restaurez votre fichier <em>.config</em> et
recompilez votre noyau (<em>make dep</em>, etc...) (<b>Wade
Hampton</b>). N'oubliez pas de relancer lilo après avoir recopié
votre nouveau noyau.</p>
<p>Récapitulation :</p>
<hr>
<pre>
make config # ou menuconfig ou xconfig
make dep
make clean
make bzImage # ou ce que vous voulez
# copiez l'image du noyau manuellement puis RELANCER LILO 
# ou make lilo
make modules
make modules_install
</pre>
<hr></li>
<li><b>Comment compile-t-on un noyau Linux non-SMP ?</b>
<p>Dans la série 2.0, <b>commentez</b> la ligne <code>SMP=1</code>
dans le Makefile principal (/usr/src/linux/Makefile).</p>
<p>Pour la série 2.2, configurez le noyau et répondez "no" à la
question "Symmetric multi-processing support" (<b>Michael Elizabeth
Chastain</b>).</p>
<p>Vous devez absolument recompiler votre noyau et ses modules pour
activer ou désactiver le mode SMP. N'oubliez pas de faire
<code>make modules</code>, <code>make modules_install</code> et de
relancer lilo. Voyez les notes plus haut sur les problèmes de
configuration possibles.</p>
</li>
<li><b>Savoir si ça marche</b>
<pre>
 cat /proc/cpuinfo 
</pre>
<p>Sortie typique (bi-PentiumII):</p>
<hr>
<pre>
processor       : 0
cpu             : 686
model           : 3
vendor_id       : GenuineIntel
[...]
bogomips        : 267.06
 
processor       : 1
cpu             : 686
model           : 3
vendor_id       : GenuineIntel
[...]
bogomips        : 267.06
</pre>
<hr></li>
<li><b>Statut de la migration du noyau vers un verrouillage fin et
le multithreading ?</b>
<p>La version 2.2 du noyau possède une gestion des signaux, des
interruptions et de quelque E/S à verrouillage fin (fine grain
locking). Le reste est en cour de migration. En mode SMP, plusieurs
processus peuvent être ordonnancés simultanément.</p>
<p>Les noyaux 2.3 (futur 2.4) possèdent vraiment des verrous noyaux
fins. Dans la série des noyaux 2.3 l'usage des gros blocages noyau
a tout simplement disparu. Tous les sous-systèmes majeurs du noyau
Linux sont complètement codés avec des threads : réseau, VFS, VM,
ES, block/pages de cache, ordonnancement, interruptions, signaux,
etc... (<b>Ingo Molnar</b>)</p>
</li>
<li><b>Linux SMP supporte-t-il les affinités processeur ?</b>
<dl>
<dt><b>Noyaux standard</b></dt>
<dd>
<p>Oui et non. Il n'est pas possible de forcer l'assignation d'un
processus à un processeur spécifique mais l'ordonnanceur Linux
possède un parti-pris pour chaque processus qui tend à conserver
les processus attachés à un processeur spécifique.</p>
</dd>
<dt><b>Noyau patché</b></dt>
<dd>
<p>Oui. Voir <a href=
"http://isunix.it.ilstu.edu/~thockin/pset/">PSET - Processor Sets
for the Linux kernel</a>:</p>
<blockquote>Ce projet a pour but d'offrir une version compatible au
niveau sources et fonctionnalités de pset (tel que défini par SGI -
partiellement retiré de leur noyau 6.4 IRIX) pour Linux. Cela
autorise les utilisateurs à déterminer sur quel processeur ou
ensemble de processeurs un processus peut tourner. Les utilisations
possibles incluent l'assignement de thread à des processeurs
distincts, la synchronisation, la sécurité (un processeur dédié à
`root') et sûrement davantage encore.</blockquote>
<p>Nous nous sommes attachés à concentrer toutes les
fonctionnalités autour de l'appel système sysmp(). Cette routine
accepte un certain nombre de paramètres qui déterminent la
fonctionnalité requise. Ces fonctions comprennent:</p>
<ul>
<li>affecter un processus/thread à un processeur spécifique;</li>
<li>interdire un processeur d'exécuter certains processus;</li>
<li>empêcher strictement l'utilisation d'un processeur;</li>
<li>assigner à un processeur un _unique_ processus (et ses
fils);</li>
<li>information sur l'état du processeur;</li>
<li>créer/supprimer un ensemble de processeurs, sur lesquels les
processus peuvent être limités</li>
</ul>
</dd>
</dl>
</li>
<li><b>A qui rapporter les bogues SMP ?</b>
<p>Signalez s'il vous plaît les bogues à
<code>linux-smp@vger.rutgers.edu</code>.</p>
</li>
<li><b>A propos des performances SMP</b>
<p>Si vous voulez mesurer les performances de votre système SMP,
vous pouvez essayer les tests de Cameron MacKinnon, disponibles à
<a href=
"http://www.phy.duke.edu/brahma/benchmarks.smp">http://www.phy.duke.edu/brahma/benchmarks.smp</a>.</p>
</li>
</ol>
<h2><a name="ss2.2">2.2 Côté utilisateur</a></h2>
<ol>
<li><b>Ai-je vraiment besoin de SMP ?</b>
<p>Si vous vous le demandez, vous n'en avez probablement pas
besoin. <code>:)</code> En général les systèmes multiprocesseurs
offrent de meilleurs performances que les systèmes monoprocesseurs,
mais pour obtenir un gain quelconque vous devez considérer bien
d'autres facteurs que le seul nombre de processeurs. Par exemple,
sur un système donné, si le processeur est en général inactif, la
plupart du temps à cause d'un disque dur lent, alors le système est
bloqué au niveau des entrées/sorties ("input/output bound"); il ne
bénéficiera probablement pas de la puissance d'un processeur
supplémentaire. Si, d'un autre coté, un système doit exécuter
beaucoup de processus simultanément et que l'utilisation processeur
est très forte, alors vous êtes susceptible d'améliorer les
performances de votre système. Les disques dur SCSI peuvent être
très efficaces en utilisation avec plusieurs processeurs. Ils
peuvent gérer plusieurs commandes simultanément sans immobiliser le
processeur (<b>C. Polisher</b>).</p>
</li>
<li><b>Obtient-on les mêmes performances avec un biprocesseur 300
MHz qu'avec un processeur 600 MHz ?</b>
<p>Tout dépend de l'application, mais généralement non. Le SMP
implique quelques "frais de gestion" absents d'une machine
monoprocesseur. (<b>Wade Hampton</b>). <code>:)</code></p>
</li>
<li><b>Comment afficher les performances de plusieurs processeurs
?</b>
<p>Grâce à <b>Samuel S. Chessman</b>, se ici trouvent quelques
utilitaires pratiques&nbsp;:</p>
<dl>
<dt><b>Character based:</b></dt>
<dd>
<p><a href=
"http://www.cs.inf.ethz.ch/~rauch/procps.html">http://www.cs.inf.ethz.ch/~rauch/procps.html</a></p>
<p>En gros, il s'agit de procps v1.12.2 (top, ps, et. al.) et de
quelques patches pour le support SMP.</p>
<p>Pour les 2.2.x, <b>Gregory R. Warnes</b> a rendu disponible un
patch à <a href=
"http://queenbee.fhcrc.org/~warnes/procps">http://queenbee.fhcrc.org/~warnes/procps</a></p>
</dd>
<dt><b>Graphique:</b></dt>
<dd>
<p>xosview-1.5.1 supporte le SMP, les noyaux supérieurs au 2.1.85
(inclus) et l'entrée cpuX dans le fichier /proc/stat.</p>
<p>Page d'accueil officielle pour xosview&nbsp;: <a href=
"http://lore.ece.utexas.edu/~bgrayson/xosview.html">http://lore.ece.utexas.edu/~bgrayson/xosview.html</a></p>
<p>Vous ici trouverez une version patchée par <b>Kumsup Lee</b>
pour les noyaux 2.2.p&nbsp;: <a href=
"http://www.ima.umn.edu/~klee/linux/xosview-1.6.1-5a1.tgz">http://www.ima.umn.edu/~klee/linux/xosview-1.6.1-5a1.tgz</a></p>
<p>Les différents patches noyau de Forissier sont disponibles
à&nbsp;: <a href=
"http://www-isia.cma.fr/~forissie/smp_kernel_patch/">http://www-isia.cma.fr/~forissie/smp_kernel_patch/</a></p>
</dd>
</dl>
<p>Néanmoins, vous ne pouvez pas contrôler l'ordonnancement de
façon précise avec xosview car ce dernier le perturbe (<b>H. Peter
Anvin</b>).</p>
</li>
<li><b>Comment autoriser plus d'un processus lors de la compilation
du noyau ?</b>
<p>Utiliser&nbsp;:</p>
<hr>
<pre>
        # make [modules|zImage|bzImages] MAKE="make -jX"
        où X = nombre maximum de processus.
        Notez que ça ne marche pas avec "make dep".
</pre>
<hr>
<p>Avec un noyau 2.2, référez vous au fichier
<code>/usr/src/linux/Documentation/smp.txt</code> pour des
instructions précises.</p>
<p>Par exemple, comme lancer de multiples compilateurs autorise une
machine avec suffisamment de mémoire à utiliser le temps processeur
autrement perdu durant les délais causés par les E/S, <code>make
MAKE="make -j 2" -j 2</code> aide réellement même sur les machines
monoprocesseurs. (de <b>Ralf Bächle</b>).</p>
</li>
<li><b>Pourquoi le temps donné par la commande <code>time</code>
est-il erroné ?</b> (de <b>Joel Marchand</b>)
<p>Dans la série des 2.0, le résultat de la commande
<code>time</code> est faux. La somme utilisateur+système est juste
*mais* 'l'étendue' entre le temps utilisateur et le temps système
est faux.</p>
<p>Plus précisément&nbsp;: "tout le temps passé sur un processeur
autre que celui de démarrage est comptabilisé comme temps système.
Si vous chronométrez un programme, ajoutez le temps utilisateur et
le temps système. Votre mesure sera alors correcte, à ceci près
qu'elle inclura aussi le temps système qui restera à décompter"
(<b>Jakob Østergaard</b>).</p>
<p>Ce bogue est corrigé dans les versions 2.2.</p>
</li>
</ol>
<h2><a name="ss2.3">2.3 Programmation SMP</a></h2>
<p>Section par <b>Jakob Østergaard</b>.</p>
<p>Cette section a pour but de signaler ce qui fonctionne et ce qui
ne fonctionne pas quand il s'agit de programmer des logiciels avec
des threads pour Linux SMP.</p>
<h3>Méthodes de parallélisation</h3>
<ol>
<li>threads POSIX (POSIX Threads)</li>
<li>PVM / MPI Message Passing Libraries</li>
<li>fork() -- Processus multiples</li>
</ol>
<p>Comme ni fork() ni les processus PVM/MPI ne partagent
généralement la mémoire, mais communiquent au moyen d'IPC ou d'une
API de messagerie, ils ne seront pas décrits davantage dans cette
section. Ils ne sont pas vraiment spécifiques à SMP, puisqu'ils
sont tout autant employés - sinon plus - avec des ordinateurs
monoprocesseurs et des clusters.</p>
<p>Seuls les threads POSIX fournissent des threads multiples
partageant certaines ressources telles la mémoire. Cette propriété
des machines SMP autorise plusieurs processeurs à partager leur
mémoire. Pour employer deux (ou plus ;) ) processeurs avec un
système SMP, utilisez une librairie de thread du noyau. Une bonne
librairie <a href=
"http://pauillac.inria.fr/~xleroy/linuxthreads/">LinuxThreads, une
librairie de thread écrite par Xavier Leroy</a> est maintenant
intégrée avec la glibc2 (aka libc6). Les distributions Linux
récentes intègrent toutes cette librairie par défaut. Vous n'avez
donc pas à obtenir un paquetage séparé pour utiliser les threads du
noyau.</p>
<p>Il existe des mises en oeuvre des threads (et thread POSIX) de
niveau application qui ne tirent pas avantage des threads du noyau.
Ces paquetages gardent le thread dans un seul processus et,
partant, ne profitent pas du SMP. Néanmoins, elles sont bonnes pour
beaucoup d'applications et ont tendance à être plus rapides que les
threads du noyau sur des systèmes monoprocesseurs.</p>
<p>Le multithreading n'a jamais été vraiment populaire dans le
monde UN*X. Pour diverses raisons, les applications exigeant de
multiples processus ou threads ont été pour la plupart écrites en
utilisant fork(). Donc, avec une approche de type threads, on
rencontre des problèmes d'incompatibilités et de non-adaptation aux
thread des librairies, compilateurs et débogueurs. GNU/Linux n'y
fait pas exception. Espérons que les sections qui suivent
apporteront quelques lumières sur ce qui est possible et sur ce qui
ne l'est pas.</p>
<h3>La librairie C</h3>
<p>Les vieilles librairies ne sont pas sûres au niveau des threads.
Il est très important que vous utilisiez la GNU libc
(<b>glibc</b>), aussi connue sous le nom de <b>libc6</b>. Vous
pouvez évidemment utiliser des versions antérieurs, mais cela vous
causera plus de problèmes que mettre à jour votre système. Enfin,
probablement :)</p>
<p>Si vous voulez utiliser GDB pour déboguer vos programmes, voyez
plus bas.</p>
<h3>Langages, compilateurs et débogueurs</h3>
<p>Il existe de nombreux langages de programmation disponibles pour
GNU/Linux et beaucoup d'entre eux utilisent les threads d'une
manière ou d'une autre. Certains langages comme Ada et Java
incluent même les threads dans les primitives du langage.</p>
<p>Cette section, pour l'instant, ne décrira que le C et le C++. Si
vous avez une expérience de programmation SMP avec d'autre
langages, merci de nous en faire part.</p>
<p>Les compilateurs GNU C et C++, tout comme EGCS C et C++,
fonctionnent avec le support thread de la librairie C standard
(<b>glibc</b>). Il y a néanmoins quelques problèmes&nbsp;:</p>
<ol>
<li>Quand vous compilez en C ou C++, incluez <b>-D_REENTRANT</b>
dans la ligne de commande du compilateur. Il est nécessaire
d'activer certaines fonctions de gestion des erreurs telles celles
relatives à la variable errno.</li>
<li>Quand vous utilisez C++, si deux threads rencontrent des
exceptions simultanément, le programme retournera une erreur de
segmentation. Le compilateur génère un code d'exception inadapté
aux threads. Une manière de contourner le problème consiste à
mettre un pthread_mutex_lock(&amp;global_exception_lock) dans le(s)
constructeur(s) de chaque classe que vous throw() et à insérer le
pthread_mutex_unlock(...) correspondant dans le destructeur. Ce
n'est pas très beau mais ça marche. Cette solution a été fournie
par <b>Markus Ferch</b>.</li>
</ol>
<p>Le débogueur GNU <b>GDB</b>, à partir de la version 4.18,
devrait prendre en charge les threads correctement. La plupart des
distributions Linux comprennent une version patchée de gdb qui gère
les threads.</p>
<p>Il n'est pas nécessaire de patcher la <b>glibc</b> pour qu'elle
fonctionne avec des threads. Si vous n'avez pas besoin de déboguer
le logiciel (cela peut-être vrai pour toutes les machines qui ne
sont pas dédiées au développement), il n'y a pas besoin de patcher
la <b>glibc</b>.</p>
<p>Notez que les core-dumps ne sont d'aucune utilité quand vous
utilisez des threads. D'une manière ou d'une autre, le core dump
est attaché au thread courant et non au programme tout entier.
Aussi, pour déboguer quoi que ce soit, faites le depuis le
débogueur.</p>
<p><b>Astuce&nbsp;:</b> si vous avez un thread qui perd la tête, se
met à utiliser 100% du temps CPU et que vous ne voyez pas pourquoi,
voici une méthode élégante de trouver ce qui se passe&nbsp;: lancez
le programme depuis la ligne de commande, sans GDB. Faites
dérailler votre thread. Utilisez <b>top</b> pour obtenir le PID du
processus. Lancez GDB tel que <b>gdb program pid</b>. GDB
s'attachera lui-même au processus dont vous avez spécifié le PID et
arrêtera le thread. Vous disposez maintenant d'une session GDB avec
le thread incriminé et vous pouvez utiliser <b>bt</b> ou d'autres
commandes pour suivre ce qui se passe.</p>
<h3>Autres librairies</h3>
<p><b>ElectricFence&nbsp;:</b> cette librairie n'est pas sûre du
point de vue SMP. Il devrait néanmoins être possible de la faire
fonctionner dans un environnement threadé en insérant des verrous
dans son code source.</p>
<h3>Autres points concernant la programmation SMP</h3>
<ol>
<li><b>Où puis-je trouver plus d'informations sur la programmation
parallèle ?</b>
<p>Voyez <a href=
"http://yara.ecn.purdue.edu/~pplinux/PPHOWTO/pphowto.html">Linux
Parallel Processing HOWTO</a></p>
<p>Beaucoup d'informations utiles se trouvent sur <a href=
"http://yara.ecn.purdue.edu/~pplinux/">Parallel Processing using
Linux</a></p>
<p>Voyez aussi <a href=
"http://linas.org/linux/threads-faq.html">Linux Threads FAQ</a></p>
</li>
<li><b>Existe-t-il des programmes ou des librairies utilisant les
threads ?</b>
<p>Oui. Pour les programmes vous devriez regarder à <a href=
"http://www.informatik.uni-bremen.de/~hollow/mthread.html">Multithreaded
programs on linux</a> (j'adore les liens hypertextes, le saviez
vous ? <code>;)</code>)</p>
<p>En ce qui concerne les librairies&nbsp;:</p>
<dl>
<dt><b>OpenGL Mesa library</b></dt>
<dd>
<p>Grâce à <b>David Buccarelli</b>, <b>andreas Schiffler</b> et
<b>Emil Briggs</b>, il existe une version multithread (à l'heure
actuelle [1998-05-11], une version fonctionne et permet d'obtenir
un accroissement de 5-30% avec certaines suites de test OpenGL). La
partie multithread est maintenant incluse dans la distribution Mesa
officielle comme une option expérimentale. Pour plus d'information,
voyez <a href="http://www.ssec.wisc.edu/~brianp/Mesa.html">Mesa
library</a></p>
</dd>
<dt><b>BLAS</b></dt>
<dd>
<p><a href="http://www.cs.utk.edu/~ghenry/distrib/">BLAS et FFTs
optimisés Pentium pro pour Intel Linux</a></p>
<p>Les routines multithread BLAS ne sont pas disponibles pour
l'instant, mais une librairie multithread est prévue pour
1998-05-27, voir <a href=
"http://www.cs.utk.edu/~ghenry/distrib/blasnews">Blas News</a> pour
plus de détails.</p>
</dd>
<dt><b>The GIMP</b></dt>
<dd>
<p><b>Emil Briggs</b>, la même personne qui est impliquée dans la
version multithread de MESA, est aussi en train de travailler sur
la version multithread des plugins de The Gimp. Voyez <a href=
"http://nemo.physics.ncsu.edu/~briggs/gimp/index.html">http://nemo.physics.ncsu.edu/~briggs/gimp/index.html</a>
pour plus d'info.</p>
</dd>
</dl>
</li>
</ol>
<h2><a name="s3">3. Questions spécifiques à l'architecture
x86</a></h2>
<h2><a name="ss3.1">3.1 Pourquoi cela ne marche-t-il pas avec ma
machine ?</a></h2>
<ol>
<li><b>Puis-je utiliser le mode SMP avec un CPU Cyrix/AMD/non-Intel
?</b>
<p><b>Réponse courte:</b> non.</p>
<p><b>Réponse longue</b> Intel révendique la propriété sur les plan
APIC SMP, et tant qu'une compagnie ne prend pas de licence d'Intel
pour cela, ils ne peuvent pas l'utiliser. Aucune compagnie ne l'a
fait pour l'instant. Cela peut évidement changer dans le futur. A
titre anecdotique, Cyrix et AMD adhèrent au standard
non-propriétaire OpenPIC SMP mais actuellement il n'existe pas de
carte mère l'utilisant.</p>
</li>
<li><b>Pourquoi mon vieux Compaq ne fonctionne-t-il pas ?</b>
<p>Mettez le en mode compatibilité MP1.1/1.4.</p>
<p>Vérifiez "Configure Hardware" -&gt; "View / Edit details" -&gt;
"Advanced mode" (F7 je pense) pour les options de configuration
"APIC mode" et cochez "full Table mode". Il s'agit d'une
recommandation officielle de Compaq (<b>Daniel Roesen</b>).</p>
<p><b>Adrian Portelli</b>&nbsp;:</p>
<ol>
<li>Pressez F10 quand le serveur démarre afin d'entrer dans
l'utilitaire de configuration système (System Configuration
Utility)</li>
<li>Pressez Entrée pour effacer l'écran de démarrage</li>
<li>Pressez immédiatement CTRL+A</li>
<li>Un message apparaîtra vous informant que vous êtes maintenant
en "Advanced Mode"</li>
<li>Sélectionnez ensuite "Configure Hardware" -&gt; "View / Edit
details"</li>
<li>Vous verrez alors les réglages avancés (mélangés avec les
réglages ordinaires)</li>
<li>Descendez jusqu'au "APIC Mode" et sélectionnez alors "Fully
Mapped"</li>
<li>Sauvegardez les changements et redémarrez</li>
</ol>
</li>
<li><b>Pourquoi mon ALR ne fonctionne-t-il pas ?</b>
<p>De <b>Robert Hyatt</b>: ALR Revolution quad-6 semble à peu près
sûre, alors que quelques machines Revolution quad plus vieilles
sans processeurs P6 ne semble pas "fiables"...</p>
</li>
<li><b>Pourquoi ma machine SMP est-elle si lente ?</b> ou
<b>Pourquoi un processeur montre-t-il une valeur bogomips basse et
pas l'autre ?</b>
<p>De <b>Alan Cox</b>: si un de vos processeurs rapporte une valeur
bogomips très basse, son cache n'est pas activé. Votre vendeur vous
à probablement fournis un BIOS bogué. Obtenez un patch pour
contourner cela ou mieux retournez la à votre vendeur et achetez
une carte mère chez un fournisseur compétent.</p>
<p>Un noyau 2.0 (&gt; 2.0.36) contient un patch MTRR qui devrait
résoudre ce problème (sélectionnez l'option "handle buggy SMP
BIOSes with bad MTRR setup" dans le menu "General setup").</p>
<p>Je pense que les BIOS SMP bogués sont pris en charge
automatiquement dans les derniers noyaux 2.2.</p>
</li>
<li><b>J'ai entendu dire que des machines IBM avaient des
problèmes</b>
<p>Certaines machines IBM possèdent le bloc BIOS MP1.4 dans l'EBDA.
C'est autorisé mais pas supporté en dessous des noyaux 2.2.</p>
<p>Il y a une vieille machine IBM SMP basée sur des 486SLC.
Linux/SMP requiert un support FPU matériel.</p>
</li>
<li><b>Les spécification MP 1.4 présentent-elles un quelconque
avantage vis-à-vis des spécifications 1.1 ?</b>
<p>Non (selon Alan <code>:)</code> ), 1.4 est juste une
spécification plus stricte de 1.1.</p>
</li>
<li><b>Pourquoi l'horloge dérive-t-elle si rapidement quand la
machine fonctionne en mode SMP ?</b>
<p>Il s'agit d'un problème connu avec la gestion des IRQ et les
blocages noyau longs dans la série 2.0 des noyaux. Pensez à mettre
à jour votre système vers un 2.2 plus récent.</p>
<p>De <b>Jakob Oestergaard</b>: ou pensez à utiliser xntpd. Cela
devrait garder votre horloge à l'heure. Je pense avoir entendu
qu'activer RTC dans le noyau corrigeait aussi le problème de dérive
de l'horloge. Ça a marché pour moi, mais j'ignore si cela est
général ou si j'ai juste été chanceux !</p>
<p>Certaines corrections du noyau dans les derniers 2.2.x devraient
résoudre ce problème.</p>
</li>
<li><b>Pourquoi mes processeurs sont-ils numérotés 0 et 2 au lieu
de 0 et 1 (ou autre numérotation bizarre) ?</b>
<p>Le numéro du processeur est fixé par le fabricant de la carte
mère et ne veut absolument rien dire. Ignorez le.</p>
</li>
<li><b>Mon système quadruple Xeon plante dès qu'il a décompressé le
noyau</b>
<p>(<b>Doug Ledford</b>) Essayez de recompiler LILO avec le support
LARGE_EBDA et faites attention à bien toujours utiliser bzImage
quand vous compilez le noyau. Cela semble avoir résolu le problème
de plantage au démarrage ici sur une carte mère Intel multi-Xeon.
Notez cependant que cela semble aussi affecter LILO en ceci que
l'option root= ne fonctionne plus. Faites donc bien attention
d'avoir appliqué 'rdev' à votre noyau au moment où vous lancerez
LILO afin d'être sur que votre noyau charge correctement le système
de fichier racine au démarrage.</p>
<p>(<b>Robert M. Hyatt</b>) Avec 3 processeurs, avez-vous un
terminateur dans le 4ème emplacement ?</p>
</li>
<li><b>Durant le démarrage la machine plante en signalant un
problème IOAPIC</b>
<p>Essayez l'option de démarrage "noapic" (<b>John Aldrich</b>)
et/ou "reboot=bios" (<b>Terry Shull</b>).</p>
</li>
<li><b>Mon système se bloque lors de trafic NFS intense</b>
<p>Essayez le dernier noyau 2.2.x et le patch knfsd. Cela est en
cours d'investigation. (<b>Wade Hampton</b>)</p>
</li>
<li><b>Mon système bloque sans message oops</b>
<p>Si vous utilisez les noyaux 2.2.11 ou 2.2.12, récupérez le
dernier noyau. Par exemple 2.2.13 possède de nombreuses corrections
SMP. Plusieurs personnes ont rapporté ces noyaux comme instables
pour le SMP. Ces mêmes noyaux peuvent avoir des problèmes NFS qui
provoqueraient des blocages. Aussi, utilisez une console série pour
capturer vos messages oops. (<b>Wade Hampton</b>)</p>
<p>Si le problème persiste (et que les suggestions sur cette liste
n'ont pas aidé davantage), vous devriez alors essayer les derniers
noyaux 2.3. Ils ont un code SMP/APIC plus bavard (et plus robuste)
et un code de prévention contre les blocages durs qui produit des
oops plus significatifs au lieu de planter en silence (<b>Ingo
Molnar</b>).</p>
<p>(<b>Osamu Aoki</b>) Vous DEVEZ aussi <em>désactiver</em> toutes
les fonctionnalités du BIOS liées à l'économie d'énergie. Exemple
d'une bonne configuration (Dual Celeron 466 Abit BP6)&nbsp;:</p>
<hr>
<pre>
 POWER MANAGEMENT SETUP.
   ACPI:              Disabled
   POWER MANAGEMENT:  Disabled
   PM CONTROL by APM: No
</pre>
<hr>
Si les fonctions d'économie d'énergie sont activées, des plantages
aléatoires peuvent se produire</li>
<li><b>Déboguer des blocages</b>
<p>(item par <b>Wade Hampton</b>)</p>
<p>Un bon moyen de déboguer les blocages consiste à se procurer le
patch ikd de Andrea Arcangeli: <a href=
"ftp://ftp.suse.com/pub/people/andrea/kernel-patches/">ftp://ftp.suse.com/pub/people/andrea/kernel-patches</a></p>
<p>Il y a plusieurs options de débogage. N'utilisez PAS l'option de
blocage logicielle ! Pour des machines SMP récentes, activez
l'option kernel debugging et ensuite l'option NMI oopser. Afin de
vérifier que le NMI oopser fonctionne, après avoir démarré avec
votre nouveau noyau, exécutez un <code>/cat /proc/interrupts</code>
et vérifiez que vous obtenez des NMI. Quand la machine se bloque,
vous devriez obtenir un oops.</p>
<p>Vous pouvez aussi essayer l'option %eip. Elle autorise le noyau
à écrire sur la console l'adresse %eip à chaque fois qu'une
fonction du noyau est appelée. Quand la machine se bloque, écrivez
sur un papier la première colonne ordonnée selon la seconde colonne
et cherchez ensuite les adresses dans le fichier System.map. Ca ne
marche qu'en mode console.</p>
<p>Notez que l'utilisation d'une console série facilite grandement
le débogage des blocages noyau, qu'ils soient SMP ou non !</p>
</li>
<li><b>Messages "APIC error interrupt on CPU#n, should never
happen" dans les logs</b>
<p>Un message comme:</p>
<hr>
<pre>
APIC error interrupt on CPU#0, should never happen.
... APIC ESR0: 00000002
... APIC ESR1: 00000000
</pre>
<hr>
indique la réception d'une erreur de calcul de code d'intégrité.
Linux ne peut en être responsable car la partie calcul des messages
APIC est complètement matérielle. Il peut s'agir d'un problème
matériel marginal. Tant que vous ne percevez pas d'instabilité, ils
ne sont pas problématiques. Les messages APIC sont renvoyés jusqu'à
ce qu'il soient délivrés (<b>Ingo Molnar</b>).</li>
</ol>
<h2><a name="ss3.2">3.2 Causes possibles de plantages</a></h2>
<p>Dans cette section vous trouverez quelques information sur les
causes <b>possibles</b> de plantage sur une machine SMP (merci à
<b>Jakob Østergaard</b> pour cette partie). Autant que je sache
(David), les problèmes évoqués ici sont spécifiques aux
plate-formes Intel.</p>
<ul>
<li><b>Problèmes de refroidissement</b>
<p>De <b>Ralf Bächle</b>: (concernant la taille des boîtiers et les
ventilateurs) il est important que l'air circule. Bien sûr, ce
n'est pas possible quand toutes sortes d'obstacles, tels des
câbles, l'en empêchent dans des boîtiers par trop exigus. D'un
autre côté, j'ai vu des boîtiers surdimensionnés provoquer de gros
problèmes. Il existe des boîtiers au format tour sur le marché qui
s'avèrent actuellement pire à rafraîchir que des boîtiers au format
bureau. En bref, la meilleure chose à faire est de penser à
l'aérodynamique dans le boîtier. Des boîtiers supplémentaires pour
les périphériques dégageant de la chaleur sont également
utiles.</p>
<p>Bien sûr vous pouvez toujours aller chez Radio Shack (ou
similaire) et acheter un ventilateur. Vous pouvez utiliser
lm_sensor pour surveiller la température des processeurs PII et
PIII. Cela peut vous aider à déterminer si la chaleur est un
problème ou non (<b>Wade Hampton</b>).</p>
</li>
<li><b>Mauvaise barrette de mémoire</b>
<p>N'achetez pas de la RAM bon marché et ne mélangez pas des
barrettes différente sur une même carte mère.</p>
<p>Les cartes mères Tyan sont tout particulièrement connues pour
leur susceptibilité sur la vitesse de la RAM (voir le paragraphe
ci-dessous sur Tyan pour une solution éventuelle).</p>
<p>Il y a eu des rapports sur des mémoire RAM PC 100 à 10ns vendues
avec des cartes mères dont le processeur avait vraiment besoin de
RAM à 8ns (<b>Wade Hampton</b>).</p>
</li>
<li><b>Mauvaise combinaison de processeurs de fréquences
différentes</b>
<p>Vérifiez <code>/proc/cpuinfo</code> pour voir si vos processeurs
fonctionnent à la même cadence.</p>
</li>
<li><b>Si votre système est instable, SURTOUT ne l'overclockez pas
!</b>
<p>D'ailleurs, même s'il est stable, ne le surcadencez pas.</p>
<p>De <b>Ralf Bächle</b>: le surcadencement pose des problèmes très
subtils. J'ai un bel exemple: une de mes vieilles machines
surcadencées commet des erreurs de calcul pour quelques pixels
d'une fractale de 640 X 400. Le problème est seulement visible
quand on les compare en utilisant des outils. Le mieux est donc de
ne <em>jamais, never, nuncas, niemals</em> surcadencer.</p>
</li>
<li><b>Noyaux 2.0.x et Ethernet rapide</b> (de <b>Robert G.
Brown</b>)
<p>Les noyaux 2.0.x sur des systèmes Ethernet rapide et hautes
performances ont des problèmes significatifs (et connus) avec les
conditions de course/inter-blocage (race/deadlock) dans la prise en
charge des interruptions réseau.</p>
<p>La solution consiste à obtenir la dernière version des pilotes
100BT en cours de développement à <a href=
"http://cesdis.gsfc.nasa.gov/linux/drivers/">CESDIS Linux Ethernet
device drivers site</a> (ceux qui sont au point définissent
SMPCHECK).</p>
</li>
<li><b>Un bogue dans le chipset 440FX</b> (de <b>Emil Briggs</b>)
<p>Si votre système utilise le chipset 440FX alors les problèmes de
blocage sont peut-être dûs à une erreur (documentée) du chipset. En
voici la référence:</p>
<p>Intel 440FX PCIset 82441FX (PMC) et 82442FX (DBX) Specification
Update. pg. 13</p>
<p><a href=
"http://www.intel.com/design/pcisets/specupdt/297654.htm">http://www.intel.com/design/pcisets/specupdt/297654.htm</a></p>
<p>Le problème peut se résoudre avec un contournement par le BIOS
(ou un patch du noyau). David Wragg a écrit un patch qui est inclus
dans le patch MTRR de Richard Gooch's. Pour plus d'informations
ainsi qu'un descriptif de solution, voyez ici:</p>
<p><a href=
"http://nemo.physics.ncsu.edu/~briggs/vfix.html">http://nemo.physics.ncsu.edu/~briggs/vfix.html</a></p>
</li>
<li><b>NE PAS lancer emm386.exe avant de démarrer Linux SMP</b>
<p>De <b>Mark Duguid</b>, Règle implicite #1 avec une carte mère
W6LI. <code>;)</code></p>
</li>
<li><b>Si la machine redémarre/gèle au bout d'un moment, il peut y
avoir deux bonne raisons liées à la mémoire et au BIOS</b>
(<b>Jakob Østergaard</b>)
<ul>
<li>Si le BIOS est muni de réglages comme "memory hole at 16M"
et/ou "OS/2 memory &gt; 64MB", essayez de les désactiver tous les
deux. Linux ne réagit pas toujours très bien à ces deux
options.</li>
<li>Si vous avez plus de 64 MB de mémoire dans votre machine, et
que vous spécifiez manuellement le chiffre exact dans la
configuration de LILO, vous devriez spécifier 1 MB de moins que ce
vous avez réellement dans votre machine. Si vous avez 128 MB, votre
ligne dans votre lilo.conf ressemble à: append="mem=127M"</li>
</ul>
</li>
<li><b>Soyez avertis des problèmes concernant les IRQ</b>
<p>Parfois, certaines cartes ne sont pas reconnues ou peuvent
déclencher des conflits d'IRQ. Essayez de mettre les cartes sur des
slots différents et si possible de les assigner à des IRQ
différentes.</p>
<p>Contribution de <b>hASCII</b>&nbsp;: enlever la ligne
"append="hisax=9,2,3" dans lilo.conf autorisant à utiliser un noyau
de la série 2.1.xx avec le support ISDN + Hisax activé. Les noyaux
de la série 2.0.xx ne posent pas ce genre de problème.</p>
<p>Essayez aussi de configurer les option de configuration du BIOS
comme "MP 1.4 mode" ou "route PCI interrupts through IOAPIC" ou "OS
Type" configuré ni pour DOS ni pour Novell (<b>Ingo
Molnar</b>).</p>
</li>
<li><b>Utilisation simultanée du lecteur de disquettes de la sortie
son</b>
<p>Si vous bloquez alors que vous essayez d'accéder au lecteur de
disquettes (par exemple pendant que du son est joué) vous devriez
peut-être éditer le fichier drivers/pci/quirks.c et positionner
<code>/int isa_dma_bridge_buggy = 1;</code>. Le problème se
manifeste avec mon Dell WS400 dual PII/300, 2.2.x, SMP (<b>Wade
Hampton</b>).</p>
</li>
</ul>
<h2><a name="ss3.3">3.3 Informations spécifiques aux cartes
mères</a></h2>
<p><em>Notez</em> que des informations plus précises peuvent être
trouvées avec la liste des <a href=
"http://www.nlug.org/smp/">Cartes mère supposées fonctionner sous
Linux SMP</a></p>
<h3>Cartes mères avec des problèmes connus</h3>
<ul>
<li>Aucune pour l'instant</li>
</ul>
<h2><a name="ss3.4">3.4 Machine SMP Linux à bas prix (machine
double Celeron)</a></h2>
<p>(<b>Stéphane Écolivet</b>)</p>
<p>Les machines SMP Linux les moins chères avec des processeurs
disponibles de nos jours sont les systèmes double Celeron. Un tel
système n'est pas officiellement possible selon Intel. On a intérêt
à vérifier qu'il s'agit bien de Celerons de seconde génération,
ceux avec 128 Kb de cache L2.</p>
<h3>Est-il possible de faire fonctionner une machine double Celeron
?</h3>
<p><b>Réponse officielle d'Intel&nbsp;:</b> non, le Celeron ne peut
pas fonctionner en mode SMP.</p>
<p><b>Réponse pratique&nbsp;:</b> c'est possible, mais cela demande
une modification matérielle pour les processeurs Slot 1. La
manipulation est décrite par Tomohiro Kawada sur sa page <a href=
"http://kikumaru.w-w.ne.jp/pc/celeron/index_e.html">Dual Celeron
System</a>. Naturellement, de telles modifications annulent la
garantie... Certaines versions du processeur Celeron sont aussi
disponibles au format Socket 370. Dans ce cas, l'altération
peut-être faite sur l'adaptateur Socket 370 à Slot 1 qui peut même
être vendu pré-cablé pour une utilisation SMP (<b>Andy Poling</b>,
<b>Hans - Erik Skyttberg</b>, <b>James Beard</b>).</p>
<p>Il existe aussi une carte mère (ABIT BP6) autorisant l'insertion
de deux Celerons dans le format Socket 370 (<b>Martijn
Kruithof</b>, <b>Ryan McCue</b>), l'ABIT Computer BP6 vérifiée,
testée et supportée sous linux avec deux ppga socket 370 (<b>Andre
Hedrick</b>).</p>
<h3>Comment Linux se comporte-t-il sur les systèmes double Celeron
?</h3>
<p>Bien, merci.</p>
<h3>Les processeurs Celeron sont réputés pour être facilement
surcadençable. Qu'en est-il des systèmes doubles Celeron ?</h3>
<p>Cela <b>peut</b> marcher. Néanmoins, surcadencer un tel système
n'est pas aussi facile que pour un monoprocesseur. Ce n'est
franchement pas une bonne idée pour un système de production. Pour
une utilisation personnelle, des systèmes double Celeron 300 A
fonctionnant parfaitement à 450 MHz ont été signalés (<b>de
nombreuses personnes</b>).</p>
<h3>Et un système quadruple Celeron ?</h3>
<p>C'est impossible. Les processeurs Celerons possèdent à peu près
les mêmes fonctionnalités qu'un Pentium II basique. Si vous voulez
plus de deux processeur dans votre système, vous devriez regarder
du côté des machines à base de Pentium Pro, Pentium II Xeon ou
Pentium III (?).</p>
<h3>Pourquoi ne pas mélanger Celeron et Pentium II ?</h3>
<p>Un système utilisant un Celeron "ré-autorisé" et un Pentium II à
la même cadence <b>peut théoriquement</b> fonctionner.</p>
<p><b>Alexandre Charbey</b> à fabriqué un tel système:</p>
<ul>
<li>Carte mère Asus P2B-D, proc 1: Celeron 366, proc 2: Pentium II
400@266</li>
<li>Les fréquences de bus 66Mhz et 75Mhz furent fonctionnelles</li>
<li>Le processeur le plus rapide (dans ce cas le Celeron) doit être
placé sur le deuxième slot. Inverser les processeurs (le plus
rapide en premier) conduit rapidement à un échec.</li>
</ul>
<h2><a name="s4">4. Questions spécifiques à l'architecture
Sparc</a></h2>
<h2><a name="ss4.1">4.1 Quellles sont les machines Sparc supportées
?</a></h2>
<p>Citation de la page web <a href=
"http://ultra.linux.cz/">UltraLinux</a> (systèmes SMP
seulement):</p>
<ul>
<li>Workstation UltraSPARC à base de PCI: Ultra60, Ultra450</li>
<li>Serveurs UltraSPARC à base de SBUS: Enterprise 1, 2, 150</li>
<li>Serveurs large UltraSPARC à base de SBUS: Enterprise 3000,
4000, 5000, 6000, 10000</li>
<li>Serveurs UltraSPARC à base de PCI : Enterprise 250, 450</li>
<li>Machines SPARC sun4m SMP (<b>Anton Blanchard</b>)</li>
</ul>
<p>UltraLinux a fonctionné sur une machine de 14 processeurs (voir
la <a href="http://lwn.net/1998/1210/a/dm-sparc.html">sortie
dmesg</a>).</p>
<h2><a name="ss4.2">4.2 Problèmes spécifiques au support SMP
Sparc</a></h2>
<p>(<b>David Miller</b>) Il ne devrait pas y avoir
d'inquiétudes.</p>
<p>Le seul problème connu et que nous n'avons pas l'intention de
corriger, consiste en ce qu'un noyau SMP compilé pour des systèmes
32bits (ie. non-ultrasparc) ne fonctionnera pas sur les systèmes
sun4c.</p>
<h2><a name="ss4.3">4.3 Limites SMP spécifiques au noyau courant
(2.2)</a></h2>
<p><b>David Miller</b>: il y a un bug dans le fichier d'en-tête
include/linux/tasks.h, cela nécessite de définir NR_CPUS à 64 sur
UltraSparc puisqu'il s'agit de la limite supérieure pour le
matériel que nous supportons :-)</p>
<h2><a name="s5">5. Questions spécifiques à l'architecture
PowerPC</a></h2>
<h2><a name="ss5.1">5.1 Quellles sont les machines PPC supportées
?</a></h2>
<ul>
<li>Cartes mères PowerSurge (incluant UMAX s900)</li>
<li>PowerMac</li>
<li>Motorola MTX&nbsp;: support en cours de développement. Les
patches ne sont pas encore inclus dans le noyau principal (<b>Troy
Benjegerdes</b>).</li>
</ul>
<p>(<b>Cort Dougan</b>) Non supporté: Systèmes PPC RS/6000</p>
<h2><a name="ss5.2">5.2 Problèmes spécifiques concernant le support
SMP PPC</a></h2>
<p>Rien. Compilation SMP normale (voir plus haut). Comme
d'habitude, soyez attentif. Les modules sont spécifiques pour UP ou
pour SMP. Recompilez les (<b>Paul Mackerras</b>).</p>
<h2><a name="s6">6. Questions spécifiques à l'architecture
Alpha</a></h2>
<h2><a name="ss6.1">6.1 Quelles sont les machines Alpha supportées
?</a></h2>
<p><b>Geerten Kuiper</b>&nbsp;: le SMP marche pour la plupart des
serveurs AXP, sinon pour tous.</p>
<p><b>Jay A Estabrook</b>&nbsp;: le SMP semble fonctionner sur la
plupart de nos machines [Compaq] avec deux processeurs ou plus. La
liste de celles-ci comprend&nbsp;:</p>
<ul>
<li>AS2000/2100 (SABLE)</li>
<li>AS4000/4100 (RAWHIDE)</li>
<li>DS20 (DP264)</li>
</ul>
<p>En sont exclus&nbsp;:</p>
<ul>
<li>AS2100A (LYNX)</li>
<li>TurboLaser bigboys (8200/8400)</li>
</ul>
<h2><a name="ss6.2">6.2 Problèmes spécifiques au support SMP
Alpha</a></h2>
<p>Aucun (vraiment ? :-) ).</p>
<h2><a name="s7">7. Pointeurs utiles</a></h2>
<h2><a name="ss7.1">7.1 Divers</a></h2>
<ul>
<li><a href="http://yara.ecn.purdue.edu/~pplinux/">Parallel
Processing en utilisant Linux</a></li>
<li><a href=
"http://yara.ecn.purdue.edu/~pplinux/PPHOWTO/pphowto.html">Linux
Parallel Processing HOWTO</a></li>
<li><b>(dépassé)</b> <a href=
"http://www.uk.linux.org/SMP/title.html">Page d'acceuille SMP
Linux</a></li>
<li>linux-smp mailing list
<p>Pour <b>souscrire</b>, envoyez <code>subscribe linux-smp</code>
dans le corps du message à <a href=
"mailto:majordomo@vger.rutgers.edu">majordomo@vger.rutgers.edu</a></p>
<p>Pour se <b>désinscrire</b>, envoyez <code>unsubscribe
linux-smp</code> dans le corps du message à <a href=
"mailto:majordomo@vger.rutgers.edu">majordomo@vger.rutgers.edu</a></p>
<p><a href="http://www.linuxhq.com/lnxlists/linux-smp/">Archives
Linux SMP</a></p>
<p><a href=
"http://www.progressive-comp.com/Lists/?l=linux-smp&amp;r=1&amp;w=2#linux-smp">
Archives Linux SMP à progressive-comp.com</a></p>
</li>
<li><a href="http://pauillac.inria.fr/~xleroy/linuxthreads/">La
librairie pthread de Xavier Leroy</a></li>
<li><a href="http://www.nlug.org/smp/">Les Cartes mères qui
paraît-il marche avec Linux SMP</a></li>
<li><a href=
"http://www.cs.inf.ethz.ch/~rauch/procps.html">procps</a></li>
<li><a href="http://queenbee.fhcrc.org/~warnes/procps">patch pour
procps pour 2.2.x</a></li>
<li><a href=
"http://lore.ece.utexas.edu/~bgrayson/xosview.html">xosview</a></li>
<li><a href=
"http://www.ima.umn.edu/~klee/linux/xosview-1.6.1-5a1.tgz">xosview
pour 2.2.x</a></li>
<li><a href=
"http://www.phy.duke.edu/brahma/benchmarks.smp">Performance SMP de
Linux</a></li>
<li><a href="http://cesdis.gsfc.nasa.gov/linux/drivers/">CESDIS
Linux Ethernet device drivers site</a></li>
<li><a href=
"http://kikumaru.w-w.ne.jp/pc/celeron/index_e.html">Systèmes Double
Celeron</a></li>
</ul>
<h2><a name="ss7.2">7.2 Programmes et librairies
multithread</a></h2>
<ul>
<li><a href="http://linas.org/linux/threads-faq.html">Linux Threads
FAQ</a></li>
<li><a href=
"http://www.informatik.uni-bremen.de/~hollow/mthread.html">Programmes
multithread sur linux</a></li>
<li><a href="http://www.cs.utk.edu/~ghenry/distrib/">BLAS et FFTs
optimisé Pentium pro pour Intel Linux</a> (pas disponible tout de
suite, mais une librairie double processeurs est prévue pour le
5/27/98. Pour plus de détails, voir <a href=
"http://www.cs.utk.edu/~ghenry/distrib/blasnews">Blas
News</a>).</li>
<li><a href="http://www.ssec.wisc.edu/~brianp/Mesa.html">Librairie
Mesa</a> (support multithread expérimental)</li>
<li><a href=
"http://nemo.physics.ncsu.edu/~briggs/gimp/index.html">Plugins
parallèles pour The GIMP</a></li>
</ul>
<h2><a name="ss7.3">7.3 Patches spécifiques SMP</a></h2>
<ul>
<li><a href=
"http://www-isia.cma.fr/~forissie/smp_kernel_patch/">Patches noyau
de Forissier</a></li>
<li><a href="http://nemo.physics.ncsu.edu/~briggs/vfix.html">Patch
pour un bug dans le chipset 440FX</a></li>
<li><a href=
"http://www.atnf.csiro.au/~rgooch/kernel-patches.html">Patch MTRR
(dernière version: 1.9)</a></li>
<li><a href="http://isunix.it.ilstu.edu/~thockin/pset/">PSET -
Processor Sets for the Linux kernel</a></li>
<li><a href="http://www.redhat.com/~mingo/">Patches SMP de Ingo
Molnar</a> (pour les esthètes seulement, s'il vous plaît lisez
linux-smp@vger.rutgers.edu)</li>
</ul>
<h2><a name="ss7.4">7.4 Compilateurs parallèliseurs/optimiseurs
pour les machines 586/686 (<b>Sumit Roy</b>)</a></h2>
<ul>
<li><a href="http://www.goof.com/pcg/">Pentium Compiler Group</a>
créateur de pgcc</li>
<li><a href="http://www.absoft.com/">Absoft</a> compilateur Fortran
90 et Fortran 77</li>
<li><a href="http://www.pgroup.com/">The Portland Group, Inc.</a>
supporte le standard <a href="http://www.openmp.org">OpenMP</a>
pour la parallèlisation Fortran sur Linux</li>
<li><a href="http://www.psrv.com/">Pacific-Sierra Research
Corporation</a> contient un compilateur gratuit F90 pour Linux et
aussi des compilateurs parallèlisant pour SMP Linux</li>
<li><a href="http://s006.infomall.org/index.html">Applied Parallel
Research</a> inclut actuellement des compilateurs parallèlisant
pour NT</li>
<li><a href="http://www.kai.com">KAI</a> offre un compilateur C++
pour Linux qui inclut OpenMPI. Il s'appelle Guide_OpenMP.
Information à <a href=
"http://www.kai.com/parallel/kappro/guide">http://www.kai.com/parallel/kappro/guide</a>
(<b>Gero Wedemann</b>).</li>
</ul>
<h2><a name="s8">8. Glossary</a></h2>
<ul>
<li><b>SMP</b> Multi-Processeur Symmétrique</li>
<li><b>APIC</b> Contrôleur d'Interruptions Programmable Avancé</li>
<li><b>thread</b> Un thread est l'activité processeur dans un
processus. Un même processus peut avoir de multiples thread. Ces
threads partagent l'espace adresse du processus et peuvent donc
par-là partager des données.</li>
<li><b>pthread</b> Posix thread, threads définie par le standard
Posix.</li>
<li><b>APM</b> Gestion avancée de l'énergie</li>
</ul>
<h2><a name="s9">9. Quoi de neuf ?</a></h2>
<dl>
<dt><b>v1.9, 13 janvier 2000</b></dt>
<dd>
<ul>
<li>Rappel, désactivation de toutes les fonctions de gestion
d'énergie du BIOS (<b>Osamu Aoki</b>)</li>
<li>Explication sur la manière d'accéder au mode de configuration
avancé du serveur Compaq (<b>Adrian Portelli</b>)</li>
</ul>
</dd>
<dt><b>v1.8, 8 novembre 1999</b></dt>
<dd>
<ul>
<li>La carte mère quadruple celeron était un canular, restauration
de l'ancien paragraphe (<b>Simen Timian Thoresen</b>)</li>
</ul>
</dd>
<dt><b>v1.7, 6 novembre 1999</b></dt>
<dd>
<ul>
<li>Nouvelle introduction (<b>C. Polisher</b> aka cp)</li>
<li>De nombreuses corrections typographiques et grammaticales
(cp)</li>
<li>Paragraphe d'introduction sur la compilation du noyau (cp)</li>
<li>Paragraphe d'introduction sur les besoins SMP (cp)</li>
<li>Référence sur KAI un compilateur optimisé (<b>Gero
Wedemann</b>)</li>
<li>Les cartes mères quadruple celeron existent (<b>Jeffrey H.
Ingber</b>)</li>
</ul>
</dd>
<dt><b>v1.6, 21 octobre 1999</b></dt>
<dd>
<ul>
<li>Ajout d'information sur la perturbation horaire de xosview</li>
<li>Ajout du message d'information "Erreur d'interruption APIC sur
le CPU#n"</li>
<li>Ajout d'information sur les blocages matériels</li>
<li>Suppression de la section "Comment obtenir un maximum de
performance" (obsolète)</li>
<li>Ajout d'information sur les systèmes double processeurs avec
différents processeurs x86 (un Celeron et un PII)</li>
</ul>
</dd>
<dt><b>v1.5, 4 octobre 1999</b></dt>
<dd>
<ul>
<li>Plus de précision dans la description de PSET</li>
</ul>
</dd>
<dt><b>v1.4, 30 septembre 1999</b></dt>
<dd>
<ul>
<li>Précision sur l'activation du support MTRR pour les noyaux SMP
x86 (moi)</li>
</ul>
</dd>
<dt><b>v1.3, 29 septembre 1999</b></dt>
<dd>
<ul>
<li>Beaucoup beaucoup de corrections grammaticales et typographique
(<b>Wade Hampton</b> aka hww)</li>
<li>Ajout d'information dans la courte introduction à propos des
différences entre 2.2/2.4/2.0 (hww)</li>
<li>Ajout des choses à faire pas à pas pour recompiler le noyau
(hww et moi)</li>
<li>Ajout d'information concernant les problèmes liés aux modules
SMP/UP (hww)</li>
<li>Ajout de précision dans la section Threads Posix concernant les
threads utilisateurs vs. les threads du noyau (hww)</li>
<li>Nouvel item à propos de NFS et des blocages du noyau (hww)</li>
<li>Nouvel item à propos des blocage noyau sans message d'alerte
(hww)</li>
<li>Nouvel item à propos du débogage des problèmes de blocage
(hww)</li>
<li>Ajout d'information à propos des problèmes de dégagement de
chaleur (hww)</li>
<li>Divers mise à jour que j'ai oublié (hww)</li>
<li>Nouvel item à propos des accès disquette et du son (hww)</li>
</ul>
</dd>
<dt><b>v1.2, 27 septembre 1999</b></dt>
<dd>
<ul>
<li>Changement de nom: ce document est maintenant un Howto. TWD, et
rapide! (<b>Guylhem Aznar</b>)</li>
</ul>
</dd>
<dt><b>v1.1, 26 septembre 1999</b></dt>
<dd>
<ul>
<li>Ajout d'un lien vers le premier brouillon de la FAQ de Chris
Pirish</li>
<li>Extension des problèmes liés aux IRQ</li>
</ul>
</dd>
<dt><b>v1.00, 25 septembre 1999</b></dt>
<dd>
<ul>
<li>Première mise à jour depuis bien longtemps !</li>
<li>Retraitement de toute la FAQ: le 2.2 est là et le 2.4
arrive</li>
<li>Ajout des informations sur le verrouillage noyau de Ingo
Molnar</li>
<li>Suppression de l'item "Quelle seront les performance de mes
applications sous SMP"&nbsp;: dépassé</li>
<li>Suppression de l'item "Mon système SMP se verrouille tout le
temps."&nbsp;: dépassé</li>
<li>Suppression de l'item "Vous utilisez le 2.0.35, n'est-ce pas
?"&nbsp;: dépassé</li>
<li>Suppression de l'item "Certains matériels sont aussi connu pour
poser des problèmes."&nbsp;: dépassé</li>
<li>Effacement de la section "Cartes mère avec des problèmes
connus". Nous devrions recommencer du début.</li>
<li>Suppression de la section "Carte mère sans problèmes
connus"&nbsp;: dépassée</li>
<li>Mise à jour de la section celeron (de nombreuses
personnes)</li>
<li>Ajout de "Les machines SPARC sun4m SMP" dans les machines Sparc
supportées (<b>Anton Blanchard</b>)</li>
<li>Ajout de l'item "Durant le démarrage la machine se bloque en
signalant un problème IOAPIC" dans la section "Pourquoi cela ne
marche-t-il pas sur ma machine ?"</li>
<li>Ajout de l'item "A propos des performances SMP ?"</li>
<li>Mise à jour de l'item "Pourquoi mon vieux Compaq ne marche-t-il
pas ?"</li>
<li>Réparation d'un lien dépassé</li>
<li>Ajout d'un pointeur vers les patches de test SMP d'Ingo</li>
</ul>
</dd>
<dt><b>v0.54, 13 mars 1999</b></dt>
<dd>
<ul>
<li>Ajout de la section à propos des systèmes SMP Alpha</li>
</ul>
</dd>
<dt><b>v0.53, 08 mars 1999</b></dt>
<dd>
<ul>
<li>Ajout de la section sur les systèmes PowerPC SMP</li>
</ul>
</dd>
<dt><b>v0.52, 07 mars 1999</b></dt>
<dd>
<ul>
<li>Ajout de la section sur les systèmes Sparc SMP</li>
</ul>
</dd>
<dt><b>v0.51, 06 mars 1999</b></dt>
<dd>
<ul>
<li>Ajout de la section dual-celeron</li>
<li>Suppression de la section Adaptec</li>
<li>Mise à jour du lien procps</li>
<li>Mise à jour du lien xosview</li>
<li>Ajout d'une réponse pour le plantage du quadri Xeon</li>
<li>Mise à jour de l'item à propos du patch de la glibc pour
gd&nbsp;: devrait être inclus dans la RH 5.2</li>
</ul>
</dd>
<dt><b>v0.50, 03 février 1999</b></dt>
<dd>
<ul>
<li>Mise à jour du lien "Programmes Multithread sous linux"</li>
</ul>
</dd>
<dt><b>v0.49, 13 janvier 1999</b></dt>
<dd>
<ul>
<li>Mise à jour à propos de CONFIG_SMP. Ajout du .txt dans
Documentation/smp. (<b>Michael Elizabeth Chastain</b>)</li>
</ul>
</dd>
<dt><b>v0.48, 10 décembre 1998</b></dt>
<dd>
<ul>
<li>Fautes d'orthographes corrigée. Adresses email corrigée.</li>
</ul>
</dd>
<dt><b>v0.47, 20 novembre 1998</b></dt>
<dd>
<ul>
<li>Ajout de la mention du patch MTRR est inclus 2.0.36 (lié à des
problème de BogoMips)</li>
</ul>
</dd>
<dt><b>v0.46, 10 novembre 1998</b></dt>
<dd>
<ul>
<li>Mise à jour à propos des cartes mère Epox KP6-LS</li>
</ul>
</dd>
<dt><b>v0.45, 25 octobre 1998</b></dt>
<dd>
<ul>
<li>Correction d'une erreur concernant le fichier /proc/stat</li>
<li>Ajout d'un pointeur vers le site CESDIS Ethernet Linux
Drivers</li>
</ul>
</dd>
<dt><b>v0.44, 14 octobre 1998</b></dt>
<dd>
<ul>
<li>Mise à jour du lien vers la page web&nbsp;: <em>Cartes mère
supposées fonctionner sous Linux SMP</em></li>
<li>Ajout de l'explication de Jakob&nbsp;: comment chronométrer un
système SMP avec les noyaux 2.0</li>
</ul>
</dd>
<dt><b>v0.43, 9 septembre 1998</b></dt>
<dd>
<ul>
<li>Mise à jour de la première question dans la section 3.1</li>
<li>Mise à jour du lien mt-Mesa&nbsp;: multithread est maintenant
inclus comme expérimental dans la distribution Mesa</li>
</ul>
</dd>
<dt><b>v0.42, 2 septembre 1998</b></dt>
<dd>
<ul>
<li>Mise à jour cosmétique dans la section 3.3</li>
<li>Deux liens sont marquer comme obsolètes (Multithreaded Mesa et
performance SMP)</li>
<li>Mise à jour de l'item à propos des threads et des exceptions en
C++ (sect 3.3)</li>
</ul>
</dd>
<dt><b>v0.41, 1 septembre 1998</b></dt>
<dd>
<ul>
<li>Ajout d'une section majeur: "3.3 Programmation SMP" écrite par
Jakob Østergaard</li>
<li>Déplacement de la section "3.2 Coté utilisateur" vers la
section 3.3</li>
</ul>
</dd>
<dt><b>v0.40, 27 août 1998</b></dt>
<dd>
<ul>
<li>Mise à jour: section 3.1, item 7: processor affinity</li>
</ul>
</dd>
<dt><b>v0.39, 27 août 1998</b></dt>
<dd>
<ul>
<li>Mise à jour nécessaire du BOIS Award pour les cartes mères Tyan
(<b>hASCII</b>)</li>
<li>Ajout d'un item sur les IRQ dans la section plantage (moi et
<b>hASCII</b>)</li>
<li>Ajout du bon support de l'Asus P2B-DS (<b>Ulf Rompe</b>)</li>
<li>Ajout d'une autre archive smp-list dans la section pointeur
(<b>Hank Leininger</b>)</li>
</ul>
</dd>
<dt><b>v0.38, 8 août 1998</b></dt>
<dd>
<ul>
<li>Ajout d'un pointeur vers la FAQ Linux Threads</li>
</ul>
</dd>
<dt><b>v0.37, 30 Juillet 1998</b></dt>
<dd>
<ul>
<li><b>Emil Briggs</b> est en train de travailler sur des plugins
parallèles pour Gimp (voir "Existe-t-il des programmes ou des
library utilisant les threads ?", section "Coté utilisateur")</li>
</ul>
</dd>
<dt><b>v0.36, 26 Juillet 1998</b></dt>
<dd>
<ul>
<li>Merci à <b>Jakob Østergaard</b>, deux changement dans "Possible
causes of Crash"
<ul>
<li>Changé le 2.0.33 pour le 2.0.35 (dernier noyau stable)</li>
<li>Ajout de la section "Les plantages liés au BIOS"</li>
</ul>
</li>
</ul>
</dd>
<dt><b>v0.35, 14 Juillet 1998</b></dt>
<dd>
<ul>
<li>Ajout des N440BX Server Board dans
carte-mère-sans-aucun-problème</li>
<li>Ajout d'une success story pour la carte mère GigaByte avec une
mise à jour du BIOS</li>
<li>Ajout de la section "Comment obtenir les performances maximum
?" (attend vos suggestions ;)</li>
</ul>
</dd>
<dt><b>v0.34, 10 juin 1998</b></dt>
<dd>
<ul>
<li>Ajout de la section "Parallelizing/Optimizing Compilers for
586/686 i machines" dans la section "Useful Pointers", merci à
<b>Sumit Roy</b></li>
<li>Correction, "Asus P/I-UP5" est en fait "Asus P/I-P65UP5"</li>
</ul>
</dd>
<dt><b>v0.33, 3 juin 1998</b></dt>
<dd>
<ul>
<li>Encore une success story avec une carte mère GigaByte DLX.</li>
<li>Une astuce pour les cartes mère Tyan, désactiver l'option "DRAM
Fast Leadoff" du BIOS</li>
</ul>
</dd>
<dt><b>v0.32, 27 mai 1998</b></dt>
<dd>
<ul>
<li>Asus P/I-UP5 ajouter à la section
carte-mère-sans-aucun-problème</li>
</ul>
</dd>
<dt><b>v0.31, 18 mai 1998</b></dt>
<dd>
<ul>
<li>Elitegroup P6LX2-A marche avec le 2.1.100 et le 101</li>
<li>Les bugs doivent être rapportés
à<code>linux-smp@vger.rutgers.edu</code></li>
</ul>
</dd>
<dt><b>v0.30, 12 mai 1998</b></dt>
<dd>
<ul>
<li>SuperMicro est maintenant une carte mère dans la section
carte-mère-sans-aucun-problème</li>
</ul>
</dd>
<dt><b>v0.29, 11 mai 1998</b></dt>
<dd>
<ul>
<li>La success story d'une carte mère GigaByte 686 avec le
2.1.101</li>
<li>Ajout d'un nouvel item dans la section "Coté
utilisateur"&nbsp;: "Existe-t-il des programmes ou des library
utilisant les threads ?"</li>
<li>La library OpenGL Mesa library est en train de passer au
multithread. Cool! Voir la nouvelle section pour plus de
détails.</li>
</ul>
</dd>
<dt><b>v0.28, 09 mai 1998</b></dt>
<dd>
<ul>
<li>Un miroir US de cette FAQ est maintenant disponible (voir
Introduction)</li>
<li>Fusion de deux entrées confuses, Gigabyte 686</li>
</ul>
</dd>
<dt><b>v0.27, 05 mai 1998</b></dt>
<dd>
<ul>
<li>Nouvelles informations pour les pilotes Adaptec et TekRam</li>
<li>Les cartes mères Micronics W6-LI marche avec SMP</li>
</ul>
</dd>
</dl>
<h2><a name="s10">10. Liste des contributeurs</a></h2>
<p>Un grand merci à ceux qui m'ont aidé à maintenir ce HOWTO:</p>
<ol>
<li>Tigran A. Aivazian</li>
<li>John Aldrich</li>
<li>Niels Ammerlaan</li>
<li>H. Peter Anvin</li>
<li>Osamu Aoki</li>
<li>Guylhem Aznar</li>
<li>Ralf Bächle</li>
<li>James Beard</li>
<li>Troy Benjegerdes</li>
<li>Anton Blanchard</li>
<li>Emil Briggs</li>
<li>Robert G. Brown</li>
<li>Alexandre Charbey</li>
<li>Michael Elizabeth Chastain</li>
<li>Samuel S. Chessman</li>
<li>Alan Cox</li>
<li>Andrew Crane</li>
<li>Cort Dougan</li>
<li>Mark Duguid</li>
<li>Stéphane Écolivet</li>
<li>Jocelyne Erhel</li>
<li>Jay A Estabrook</li>
<li>Byron Faber</li>
<li>Mark Garlanger</li>
<li>hASCII</li>
<li>Wade Hampton</li>
<li>Andre Hedrick</li>
<li>Claus-Justus Heine</li>
<li>Benedikt Heinen</li>
<li>Florian Hinzmann</li>
<li>Moni Hollmann</li>
<li>Robert M. Hyatt</li>
<li>Jeffrey H. Ingber</li>
<li>Richard Jelinek</li>
<li>Tony Kocurko</li>
<li>Geerten Kuiper</li>
<li>Martijn Kruithof</li>
<li>Doug Ledford</li>
<li>Kumsup Lee</li>
<li>Hank Leininger</li>
<li>Ryan McCue</li>
<li>Paul Mackerras</li>
<li>Cameron MacKinnon</li>
<li>Joel Marchand</li>
<li>David Maslen</li>
<li>Chris Mauritz</li>
<li>Jean-Francois Micouleau</li>
<li>David Miller</li>
<li>Ingo Molnar</li>
<li>Ulf Nielsen</li>
<li>Jakob Oestergaard</li>
<li>C Polisher</li>
<li>Adrian Portelli</li>
<li>Matt Ranney</li>
<li>Daniel Roesen</li>
<li>Ulf Rompe</li>
<li>Jean-Michel Rouet</li>
<li>Volker Reichelt</li>
<li>Sean Reifschneider</li>
<li>Sumit Roy</li>
<li>Thomas Schenk</li>
<li>Terry Shull</li>
<li>Chris K. Skinner</li>
<li>Hans - Erik Skyttberg</li>
<li>Szakacsits Szabolcs</li>
<li>Jukka Tainio</li>
<li>Simen Timian Thoresen</li>
<li>El Warren</li>
<li>Gregory R. Warnes</li>
<li>Gero Wedemann</li>
<li>Christopher Allen Wing</li>
<li>Leonard N. Zubkoff</li>
</ol>
</body>
</html>