Problem mit SMP auf 5.1

LoCal

Member
Hei :)

ich hab hier ein System:

Dual Xeon 2.4ghz; 3GB RAM; RAID5. Das System unterstützt Hyperthreading.

FreeBSD konnte ich auch ohne Probs installieren (hab auch nichts anderes erwartet). Dann habe ich mir nen Kernel gebastelt und damit gingen die Probs los.. naja... das system läuft eigentlich stabil und so.. aber leider nur auf einer CPU.

Laut dmesg.boot is SMP aktiv und Hyperthreading wird auch richtig "erkannt".
Aber in top in der CPU spalte steht nur die '0' für die erste CPU.
Ich hab schon einiges versucht (auch schonmal HT im BIOS disabled) aber die Kiste will einfach net auf mehr als 1 CPU.

Hier noch die sysctls für cpu und smp:
Code:
kern.threads.virtual_cpu: 2
kern.ccpu: 1948
kern.smp.cpus: 2
hw.ncpu: 2
hw.acpi.cpu.max_speed: 2
hw.acpi.cpu.current_speed: 2
hw.acpi.cpu.performance_speed
hw.acpi.cpu.economy_speed: 1
machdep.cpu_idle_hlt: 1
machdep.hlt_cpus: 2
machdep.hlt_logical_cpus: 1
machdep.logical_cpus_mask: 2
kern.timecounter.smp_tsc: 0
kern.smp.active: 1
kern.smp.disabled: 0
kern.smp.cpus: 2
kern.smp.forward_signal_enabled: 1
kern.smp.forward_roundrobin_enabled: 1

meiner meinung nach müsste kern.smp.cpus: auf 4 statt auf 2 stehn, oder?

Jedenfalls, kann jemand helfen?

Big thx schonmal vorwech.
 

Anhänge

  • dmesg.boot.txt
    4,9 KB · Aufrufe: 346
Gefunden bei google
Your motherboard has an extra special BIOS. Most BIOS do not enumerate
logical CPU's in the mptable and require the extra patches to work.
Das könnte das Problem sein mit dem HT, oder?

Zu dem anderen Problem -> k.a. :)
 
Achja mptable kann ich auch noch liefern...

--
Processors: APIC ID Version State Family Model Step Flags
0 0x11 BSP, usable 15 2 5 0xfbff
1 0x11 AP, usable 15 2 5 0xfbff


und das passt auch...

ich hab jetzt mal per hand
machdep.hlt_logical_cpus:
auf 0 gesetzt.. jetzt nutz er ganz selten mal die zweite.. laut top
bzw dem zweiten "teil" der ersten CPU (HT!!)
 
Zuletzt bearbeitet:
Unter "top" sollte es eine weitere Spalte "C" geben, diese sagt Dir auf welcher CPU der Prozess rennt
 
2 C-Spalten? Also ich kenn das nur mit einer.. hab zuhause einen Dual und auch hier auffa arbeit einen weiteren Dual.. und da is immer nur eine.
aber in der steht halt nur null.

nach dem dich machdep.hlt_logical_cpus auf 0 gesetzt hab erscheint aber ab und zu ne 1 in der CPU spalte.. aber IMHO zu selten.

hier isn dump:
Code:
last pid:   543;  load averages:  3.99,  3.05,  1.59  up 0+00:09:11    12:46:50
30 processes:  5 running, 25 sleeping

Mem: 68M Active, 19M Inact, 47M Wired, 16K Cache, 15M Buf, 2880M Free
Swap:


  PID USERNAME  PRI NICE   SIZE    RES STATE  C   TIME   WCPU    CPU COMMAND
  501 root      132    1 16232K 15432K RUN    1   3:23 50.05% 50.05% setiathome
  492 root      131    1 15720K 14880K CPU1   0   3:59 49.71% 49.71% setiathome
  497 root      132    1 16168K 15420K RUN    0   3:33 49.12% 49.12% setiathome
  502 root      131    1 16168K 15416K RUN    0   3:20 46.83% 46.83% setiathome
  374 root       96    0  3432K  2444K select 0   0:00  0.00%  0.00% sshd
  415 root       96    0  8320K  6108K select 1   0:00  0.00%  0.00% httpd
  441 mysql      96    0 27900K  5780K select 0   0:00  0.00%  0.00% mysqld
  517 root       20    0  1600K  1240K pause  0   0:00  0.00%  0.00% csh
  508 root        4    0  6180K  2816K sbwait 0   0:00  0.00%  0.00% sshd
  237 root       96    0  1272K   844K select 0   0:00  0.00%  0.00% syslogd
  419 root        8    0   904K   648K wait   0   0:00  0.00%  0.00% sh
  396 root        8    0  1296K   984K nanslp 0   0:00  0.00%  0.00% cron
  479 root        5    0  1236K   912K ttyin  0   0:00  0.00%  0.00% getty
 
Missverständnis, ich meine EINE "C" Spalte.
Stress den Rechner doch mal gehörige.
make world
irgendeinen port bauen
...
alles zusammen, und dann schau was passiert
 
Yo.. ich glaub ich mach doch mal n make world...

aber was scheinbar auch is...
top zeigt scheinbar nur die physisch vorhandenen CPUs an.
also würde das mit 0 und 1 passen.

Würde gerne mal n top-dump sehn con einem dual server mit HT .. dann wäre ich mir sicher.. aber im web find ich nix..
 
Moin,
kannst du gerne haben, allerdings ist der Auszug nicht von einem
Server (sondern von meiner Wörgstäischn) und von 4.8-Release:

Code:
  PID USERNAME PRI NICE  SIZE    RES STATE  C   TIME   WCPU    CPU COMMAND
 7620 root      41   0  2052K  1908K CPU3   0   0:00  0.00%  0.00% cc1
 7624 root      41   0  1020K   860K CPU0   0   0:00  0.00%  0.00% as
 7623 root      41   0   568K   420K CPU1   1   0:00  0.00%  0.00% cpp0
 6549 gregor    28   0  2024K  1280K CPU2   0   0:02  1.04%  0.88% top
 6546 gregor    18   0  1412K  1052K pause  2   0:00  0.00%  0.00% tcsh
  224 root      18   0  1396K  1020K pause  2   0:00  0.00%  0.00% csh
  226 gregor    18   0  1472K  1088K pause  2   0:00  0.00%  0.00% tcsh
  131 smmsp     18   0  2928K  2224K pause  3   0:00  0.00%  0.00% sendmail
   23 root      18   0   212K    96K pause  3   0:00  0.00%  0.00% adjkerntz
 6555 root      10   0   656K   468K wait   2   0:00  0.00%  0.00% sh
  217 root      10   0  1268K   976K wait   1   0:00  0.00%  0.00% login

sysctl zeigt das hier:
Code:
=>sysctl -a | grep -i cpu
kern.ccpu: 1948
hw.model: Intel(R) Xeon(TM) CPU 2.40GHz
hw.ncpu: 4
machdep.cpu_idle_hlt: 0
machdep.smp_cpus: 4

Ich hab dazu einfach mal 'nen Kernel mit 4 Jobs generiert und
nach Priorität in top sortiert.
Ach ja, und mptable gibts dazu im Netz auf der Liste:
http://www.bnv-bamberg.de/home/ba3294/smp/files/mptable/m000165.txt

Es sieht in der Tat so aus, als wenn bei dir da nur eine
physikalische CPU rennt, denn mptable bei 4.8-R numeriert so:
Physikalische CPU0: Kern hat APIC-ID #0
Der HTT-Prozessor auf CPU0 hat APIC-ID #1
Physikalische CPU1: Kern hat APIC-ID #6
HTT-Prozessor auf CPU1 hat APIC-ID #7

Alternativ: Hast du schonmal versucht, eine CPU auszubauen?
Was passiert dann? Sind dann die Zahlen, die dir sysctl liefert,
zu den obigen von dir identisch? (Ich weiß, daß das eine Heidenarbeit ist,...)

-Gregor.
 
Also wenn das mit der einen phys. CPU stimmt.. das wär schon hammer. nur warum wird die dann im dmesg.boot aufgeführt?
 
Zurück
Oben