# Mulitprozessorausnutzung

## AROK

Hallo,

mir ist gerade etwas komisches aufgefallen. KPhotoalbum liest neue Bilder ein: CPU0: 100%, CPU1: 0-2% Auslastung.

Ich starte update-eix: CPU0: 100%, CPU1: 3% Auslastung. Beides geht langsam. Warum wird in diesem Fall CPU1 nicht genutzt?

Gruß AROK

Nachtrag: 

Architektur: X86 

Kernel: 2.6.24-gentoo-r4

CPU: 

```

cat /proc/cpuinfo

processor       : 0

vendor_id       : GenuineIntel

cpu family      : 6

model           : 15

model name      : Intel(R) Core(TM)2 Duo CPU     E6750  @ 2.66GHz

stepping        : 11

cpu MHz         : 2666.734

cache size      : 4096 KB

physical id     : 0

siblings        : 2

core id         : 0

cpu cores       : 2

fdiv_bug        : no

hlt_bug         : no

f00f_bug        : no

coma_bug        : no

fpu             : yes

fpu_exception   : yes

cpuid level     : 10

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr lahf_lm

bogomips        : 5336.10

clflush size    : 64

processor       : 1

vendor_id       : GenuineIntel

cpu family      : 6

model           : 15

model name      : Intel(R) Core(TM)2 Duo CPU     E6750  @ 2.66GHz

stepping        : 11

cpu MHz         : 2666.734

cache size      : 4096 KB

physical id     : 0

siblings        : 2

core id         : 1

cpu cores       : 2

fdiv_bug        : no

hlt_bug         : no

f00f_bug        : no

coma_bug        : no

fpu             : yes

fpu_exception   : yes

cpuid level     : 10

wp              : yes

flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr lahf_lm

bogomips        : 5333.30

clflush size    : 64

```

----------

## Evildad

Weils wahrscheinlich nicht multi-threading fähig ist...

Emerge mal gcc da wird auch nur 1 Core genutzt während bei anderen Sachen bei mir z.B. alle vier benutzt werden.

Grüsse

----------

## AROK

es sind ja 2 Programme! eix und kphotoalbum.

----------

## Evildad

Ach ok  :Smile: 

Ich dacht das passiert nacheinander... und nicht gleichzeitig...

Werd ich morgen mal testen und berichten.

----------

## think4urs11

ggf. ne blöde Frage aber was hast du denn im Kernel unter 'Processor type and features' so alles eingestellt?

----------

## AROK

Ist glaub ich keine blöde Frage   :Smile: 

```

  │ │                                 [*] Tickless System (Dynamic Ticks)                                                                     │ │

  │ │                                 [*] High Resolution Timer Support                                                                       │ │

  │ │                                 [*] Symmetric multi-processing support                                                                  │ │

  │ │                                     Subarchitecture Type (PC-compatible)  --->                                                          │ │

  │ │                                 [ ] Single-depth WCHAN output                                                                           │ │

  │ │                                 [ ] Paravirtualized guest support  --->                                                                 │ │

  │ │                                     Processor family (Core 2/newer Xeon)  --->                                                          │ │

  │ │                                 [*] Generic x86 support                                                                                 │ │

  │ │                                 [*] HPET Timer Support                                                                                  │ │

  │ │                                 (2) Maximum number of CPUs (2-255)                                                                      │ │

  │ │                                 [ ] SMT (Hyperthreading) scheduler support                                                              │ │

  │ │                                 [*] Multi-core scheduler support                                                                        │ │

  │ │                                     Preemption Model (Preemptible Kernel (Low-Latency Desktop))  --->                                   │ │

  │ │                                 [*] Preempt The Big Kernel Lock                                                                         │ │

  │ │                                 [*] Machine Check Exception                                                                             │ │

  │ │                                 < >   Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4                                  │ │

  │ │                                 [ ]   check for P4 thermal throttling interrupt.                                                        │ │

  │ │                                 < > Toshiba Laptop support                                                                              │ │

  │ │                                 < > Dell laptop support                                                                                 │ │

  │ │                                 [ ] Enable X86 board specific fixups for reboot                                                         │ │

  │ │                                 < > /dev/cpu/microcode - Intel IA32 CPU microcode support                                               │ │

  │ │                                 <M> /dev/cpu/*/msr - Model-specific register support                                                    │ │

  │ │                                 <M> /dev/cpu/*/cpuid - CPU information support                                                          │ │

  │ │                                     High Memory Support (4GB)  --->                                                                     │ │

  │ │                                     Memory model (Flat Memory)  --->                                                                    │ │

  │ │                                 [ ] 64 bit Memory and IO resources (EXPERIMENTAL)                                                       │ │

  │ │                                 [ ] Allocate 3rd-level pagetables from highmem                                                          │ │

  │ │                                 [ ] Math emulation                                                                                      │ │

  │ │                                 [*] MTRR (Memory Type Range Register) support                                                           │ │

  │ │                                 [ ] Boot from EFI support                                                                               │ │

  │ │                                 [*] Enable kernel irq balancing                                                                         │ │

  │ │                                 [*] Enable seccomp to safely compute untrusted bytecode                                                 │ │

  │ │                                     Timer frequency (1000 HZ)  --->                                                                     │ │

  │ │                                 [ ] kexec system call                                                                                   │ │

  │ │                                 [ ] kernel crash dumps (EXPERIMENTAL)                                                                   │ │

  │ │                                 [ ] Build a relocatable kernel (EXPERIMENTAL)                                                           │ │

  │ │                                 (0x100000) Alignment value to which kernel should be aligned                                            │ │

  │ │                                 -*- Support for suspend on SMP and hot-pluggable CPUs (EXPERIMENTAL)                                    │ │

  │ │                                 [ ] Compat VDSO support 

```

Multithreaded Programme laufen auch auf beiden Kernen. Beim Compilieren z.B. auf Beiden 100%.

----------

## amne

Wie ist denn die Auslastung wenn du nur update-eix laufen lässt?

Könnts sein, dass das gar nicht viel CPU braucht sondern primär auf der Platte rumrödelt?

----------

## c_m

drück mal im top f und danach j. dann zeigt er dir ne spalte "P" das ist die CPU auf dem der prozess läuft.

nocvh richtig sortiert siehste ganz schnell wo was läuft  :Wink: 

----------

## AROK

Zeigt bei eix allein auch nahezu 100% auf einem Kern an. mit gelegentlichen Einbrüchen.

Aber wahrscheinlich ist das wirklich ein Festplattenproblem. Vielleicht war in Kombination die CPU Nutzung beider Programme geringer, da beide auf Daten von der Platte warten...

----------

## AmonAmarth

ist es noch zu früh am morgen oder steht da folgendes?

```
  │ │                                 [*] Generic x86 support
```

werf mal das generic x86 support raus. meines wissens lahmt das auf jeden fall schonmal aus und vielleicht wird dadurch auch nur ein kern benutzt.[/code]

----------

## graubartnr

Wuerd' ich aktivieren (ist aber nicht so wichtig):

Single-depth WCHAN output

Allocate 3rd-level pagetables from highmem

Wenn man keine CPU-Register ausliest (bzw. keine Unterpunkte aktiviert hat), wuerd' ich's nicht aktivieren

Machine Check Exception

Wenn Du einen IO-APIC (std.maessig Local APIC in der CPU) nutzt, diese Option unbedingt deaktivieren, sonst laufen die Interruptverteilungen total lahm, gerade bei Deinem Prozessor(-system).

(Schaue Dir die Verteilung der Interrupts mal mit cat /proc/interrupts an.)

Enable kernel irq balancing

----------

## AROK

Hallo,

danke für die Antworten! Bin gerade im Urlaub, werde es nach der Rückkehr testen.

Grüße

AORK

----------

## a.forlorn

 *graubartnr wrote:*   

> Wuerd' ich aktivieren (ist aber nicht so wichtig):
> 
> Single-depth WCHAN output
> 
> Allocate 3rd-level pagetables from highmem
> ...

 

Und wo sind die drin? *blind*

----------

## graubartnr

```

Processor type and features  --->

[...]

  │ │                                 [ ] Single-depth WCHAN output                                                                           │ │

[...] 

  │ │                                 [*] Machine Check Exception                                                                             │ │ 

  │ │                                 < >   Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4                                  │ │ 

  │ │                                 [ ]   check for P4 thermal throttling interrupt.                                                        │ │ 

[...]

  │ │                                 [ ] Allocate 3rd-level pagetables from highmem                                                          │ │ 

[...]

  │ │                                 [*] Enable kernel irq balancing                                                                         │ │

[...]

```

 *Quote:*   

> Und wo sind die drin? *blind*

 

(ich denke das solltest Du n/doch gesehen haben)   :Rolling Eyes:   .

Wenn Du die APIC Dinger meinst:

```

Processor type and features  --->

[*] Local APIC support on uniprocessors

[*]   IO-APIC support on uniprocessors

```

Ab einer bestimmten Kernelversion werden die Optionen nicht mehr angeboten, aber in der ".config" findet man sie noch:

 *Quote:*   

> root comp1-gentoo linux-2.6.26 # grep -i apic .config
> 
> CONFIG_X86_GOOD_APIC=y
> 
> CONFIG_X86_LOCAL_APIC=y
> ...

 

----------

## boris64

 *a.forlorn wrote:*   

>  *graubartnr wrote:*   ...
> 
> Single-depth WCHAN output
> 
> Allocate 3rd-level pagetables from highmem
> ...

 

Nur zur Info, diese Punkte existieren in meiner config auch nicht, 

da kannst du eventuell lange suchen  :Wink: 

Ich tippe mal, die sind abhängig von der 

verwendeten Architektur (in diesem Fall "x86_64").

----------

## graubartnr

Jupp, in jedem Fall sollte man dieses IRQ-Balancing nicht aktivieren, wenn man einen um die Ecke neuen PC hat, oder man solch' IO-APIC-Einstellung im Bios findet, auch sollte man immer erst "cat /proc/interrups" anschauen, manche X2-Cores von AMD wollen manchmal nicht.

----------

## AROK

Hallo,

habe eure Vorschläge jetz mal umgesetzt:

```
 

  │ │                                                    [*] Tickless System (Dynamic Ticks)                                                                                        │ │

  │ │                                                    [*] High Resolution Timer Support                                                                                          │ │

  │ │                                                    [*] Symmetric multi-processing support                                                                                     │ │

  │ │                                                        Subarchitecture Type (PC-compatible)  --->                                                                             │ │

  │ │                                                    [*] Single-depth WCHAN output                                                                                              │ │

  │ │                                                    [ ] Paravirtualized guest support  --->                                                                                    │ │

  │ │                                                        Processor family (Core 2/newer Xeon)  --->                                                                             │ │

  │ │                                                    [*] Generic x86 support                                                                                                    │ │

  │ │                                                    [*] HPET Timer Support                                                                                                     │ │

  │ │                                                    (2) Maximum number of CPUs (2-255)                                                                                         │ │

  │ │                                                    [ ] SMT (Hyperthreading) scheduler support                                                                                 │ │

  │ │                                                    [*] Multi-core scheduler support                                                                                           │ │

  │ │                                                        Preemption Model (Preemptible Kernel (Low-Latency Desktop))  --->                                                      │ │

  │ │                                                    [*] Preempt The Big Kernel Lock                                                                                            │ │

  │ │                                                    [ ] Machine Check Exception                                                                                                │ │

  │ │                                                    < > Toshiba Laptop support                                                                                                 │ │

  │ │                                                    < > Dell laptop support                                                                                                    │ │

  │ │                                                    [ ] Enable X86 board specific fixups for reboot                                                                            │ │

  │ │                                                    < > /dev/cpu/microcode - Intel IA32 CPU microcode support                                                                  │ │

  │ │                                                    <M> /dev/cpu/*/msr - Model-specific register support                                                                       │ │

  │ │                                                    <M> /dev/cpu/*/cpuid - CPU information support                                                                             │ │

  │ │                                                        High Memory Support (4GB)  --->                                                                                        │ │

  │ │                                                        Memory model (Flat Memory)  --->                                                                                       │ │

  │ │                                                    [ ] 64 bit Memory and IO resources (EXPERIMENTAL)                                                                          │ │

  │ │                                                    [*] Allocate 3rd-level pagetables from highmem                                                                             │ │

  │ │                                                    [ ] Math emulation                                                                                                         │ │

  │ │                                                    [*] MTRR (Memory Type Range Register) support                                                                              │ │

  │ │                                                    [ ] Boot from EFI support                                                                                                  │ │

  │ │                                                    [ ] Enable kernel irq balancing                                                                                            │ │

  │ │                                                    [*] Enable seccomp to safely compute untrusted bytecode                                                                    │ │

  │ │                                                        Timer frequency (1000 HZ)  --->                                                                                        │ │

  │ │                                                    [ ] kexec system call                                                                                                      │ │

  │ │                                                    [ ] kernel crash dumps (EXPERIMENTAL)                                                                                      │ │

  │ │                                                    [ ] Build a relocatable kernel (EXPERIMENTAL)                                                                              │ │

  │ │                                                    (0x100000) Alignment value to which kernel should be aligned                                                               │ │

  │ │                                                    -*- Support for suspend on SMP and hot-pluggable CPUs (EXPERIMENTAL)                                                       │ │

  │ │                                                    [ ] Compat VDSO support      
```

Wenn ich Generic x86 support  rauswerfe, bleibt der Rechner hängen, nachdem ich mich in KDM angemeldet habe.

Grüße

AROK

----------

## AROK

Korrektur: geht auch ohne Generic x86 support, hatte nur vergessen das DRM Modul neu zu bauen.

Die Prozessorlast beim Kopieren ist jetzt viel Geringer, wohl durch das abgestellte IRQ Balancing. Die Transferrate von einer Platte zur Anderen beträgt leider immer noch magere 12,6 MB/s   :Crying or Very sad: 

----------

## AmonAmarth

 *AROK wrote:*   

> Korrektur: geht auch ohne Generic x86 support, hatte nur vergessen das DRM Modul neu zu bauen.
> 
> Die Prozessorlast beim Kopieren ist jetzt viel Geringer, wohl durch das abgestellte IRQ Balancing. Die Transferrate von einer Platte zur Anderen beträgt leider immer noch magere 12,6 MB/s  

 

das riecht jetzt eher an fehlerhaften festplatten einstellungen.

mach mal hdparm /dev/(h/s)dXY und guck was bei DMA steht. dies sollte aktiivert sein (bei sda ist die ausgabe nicht immer 100% richtig ist mir aufgefallen). evtl hast du im kernel einen falschen festplatten controller ausgewählt?

für weitere hilfestellungen braucht man jetzt die lspci ausgabe

----------

## AROK

Hi AmonAmarth,

ich glaube ich habe die Diskusion in die flashe Richtung gelenkt   :Wink: 

 *Quote:*   

> mach mal hdparm /dev/(h/s)dXY und guck was bei DMA steht. dies sollte aktiivert sein (bei sda ist die ausgabe nicht immer 100% richtig ist mir aufgefallen). evtl hast du im kernel einen falschen festplatten controller ausgewählt?

 

Dazu habe ich nämlich hier schon gepostet:

https://forums.gentoo.org/viewtopic-p-5011859.html#5011859

Wenn du noch ne Idee hast, bitte dort Posten.

Danke und Grüße

AROK

----------

