# Wykorzystanie procesora

## Godhand

Gdy włączam jakiś program np. Firefoxa użycie procesora (pokazana w widgecie karamby) skacze mi do 100% a kursor myszy się trochhę przycina (to trwa tylko podczas uruchamiania programu).

Podczas kompilowania czegoś jest tak samo. Użycie 100% i kursor lekko się przycina (mniej niż przy otwieraniau np. ff ale zawsze).

A podczas rozpakowywania czegoś to już w ogóle... wszystko staje w miejscu.

Czy to jest normalne? Co może byćc przyczyną?

----------

## SlashBeast

emerge --info daj to najpierw.

O ile masz dyski PATA włącz dma bo moze jest wylaczone, albo przejdz na libata. w przypadku kerneli 2.6.24 takie objawy występują po_prostu.

Arfrever: Ortografia

SlashBeast: Raczył szanowny moderator przeczytać LICENCJE POSTU!?

Arfrever: Regulamin forum ma znaczenie nadrzędne.

SlashBeast: Jest ponad prawem?Last edited by SlashBeast on Sun Feb 03, 2008 5:30 pm; edited 2 times in total

----------

## Godhand

 *SlashBeast wrote:*   

> emerge --info daj to najpierw.

 

```

Portage 2.1.3.19 (default-linux/x86/2006.1, gcc-4.1.2, glibc-2.6.1-r0, 2.6.23-gentoo-r6 i686)

=================================================================

System uname: 2.6.23-gentoo-r6 i686 Intel(R) Pentium(R) 4 CPU 2.40GHz

Timestamp of tree: Sat, 02 Feb 2008 13:16:01 +0000

app-shells/bash:     3.2_p17-r1

dev-java/java-config: 1.3.7, 2.1.4

dev-lang/python:     2.4.4-r6

dev-python/pycrypto: 2.0.1-r6

sys-apps/baselayout: 1.12.10-r5

sys-apps/sandbox:    1.2.18.1-r2

sys-devel/autoconf:  2.13, 2.61-r1

sys-devel/automake:  1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10

sys-devel/binutils:  2.18-r1

sys-devel/gcc-config: 1.4.0-r4

sys-devel/libtool:   1.5.24

virtual/os-headers:  2.6.23-r3

ACCEPT_KEYWORDS="x86"

CBUILD="i686-pc-linux-gnu"

CFLAGS="-O2 -march=i686 -pipe -fomit-frame-pointer"

CHOST="i686-pc-linux-gnu"

CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/config"

CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/terminfo /etc/udev/rules.d"

CXXFLAGS="-O2 -march=i686 -pipe -fomit-frame-pointer"

DISTDIR="/usr/portage/distfiles"

FEATURES="distlocks metadata-transfer sandbox sfperms strict unmerge-orphans userfetch"

GENTOO_MIRRORS="http://gentoo.prz.rzeszow.pl http://gentoo.zie.pg.gda.pl http://src.gentoo.pl"

LANG="pl_PL"

LC_ALL="pl_PL"

LINGUAS="pl en"

MAKEOPTS="-j2"

PKGDIR="/usr/portage/packages"

PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*"

PORTAGE_TMPDIR="/var/tmp"

PORTDIR="/usr/portage"

SYNC="rsync://rsync.europe.gentoo.org/gentoo-portage"

USE="X alsa arts berkdb bitmap-fonts bzip2 cdr cli cracklib crypt cups dbus dri dvd dvdr emerald fortran gdbm glut gpm hal iconv isdnlog java jpeg jpeg2k kde midi mmx mozilla mp3 mpeg mudflap ncurses nls nptl nptlonly ogg opengl openmp pam pcre perl png ppds pppd python qt3 qt4 readline reflection sdl session sockets spl sse sse2 sse3 ssl svg svga tcpd truetype truetype-fonts type1-fonts unicode usb vorbis x86 xcomposite xorg xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="pl en" USERLAND="GNU" VIDEO_CARDS="fglrx"

Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
```

 *SlashBeast wrote:*   

> 
> 
> O ile masz dyski PATA włącz dma bo moze jest wylaczone, 

 

tak, mam PATA a DMA to się włącza w kernelu?

 *SlashBeast wrote:*   

> 
> 
> albo przejdz na libata.

 

tutaj niestety nie wiem co do mnie mówisz  :Smile: 

 *SlashBeast wrote:*   

> 
> 
> w przypadku kerneli 2.6.24 takie objawy występują po prostu

 

tzn. korzystam z gentoo od kernela-2.6.19 i regularnie update'uje czasem coś próbuję zmienić w configu ale od samego początku zawsze jest tak samo, w tej chwili mam 2.6.23 -r6.

----------

## 13Homer

Ja mam jądro 2.6.19 i mam identyczne objawy, ale przestałem się tym przejmować. Podejrzewam, ze może to być wina domyślnego sposobu szeregowania (zdaje się, że jest to "Deadline I/O scheduler"). Możesz pokombinować z innymi, np. CFQ, może coś da.

Na studiach pisaliśmy takie właśnie schedulery, żeby procesy wsadowe (czyli np. korzystające dużo z dysku) miały w jakims sensie niższy priorytet niż interaktywne (tak naprawdę rzadziej dostawały procesor), a test polegał na tym, że facet uruchamiał kilka przeglądarek internetowych i sprawdzał, czy kursor myszy płynnie się przesuwa - dlatego właśnie sądzę, że to wina schedulera.

----------

## Godhand

Próbujac z tym DMA wpisałem:

# hdparm /dev/hda

i:

```

/dev/hda:

 multcount     = 16 (on)

 IO_support    =  0 (default 16-bit)

 unmaskirq     =  0 (off)

 using_dma     =  0 (off)

 keepsettings  =  0 (off)

 readonly      =  0 (off)

 readahead     = 256 (on)

 geometry      = 16383/255/63, sectors = 117304992, start = 0

```

czyli rozumiem, że jest faktycznie wyłączone.

więc wpisałem (ale nie wiem czy dobrze)

# hdparm -d1 -X /dev/hda

i mam:

```

/dev/hda:

 setting using_dma to 1 (on)

 HDIO_SET_DMA failed: Operation not permitted

 setting xfermode to 0 (default PIO mode)

 using_dma     =  0 (off)

```

co mi to mówi?  :Razz: 

----------

## Zwierzak

A skompilowałeś w kernelu wsparcie dla DMA na swojej płycie głównej? Bez tego ani rusz.

----------

## Godhand

Tzn. mam wg hanbooka

Device Drivers  --->

 ATA/ATAPI/MFM/RLL support  --->

  <*> ATA/ATAPI/MFM/RLL support

  <*>   Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support

  [*]     PCI IDE chipset support

  [*]       Generic PCI bus-master DMA support

zaznaczone. Jeśli mam wybrać coś innego odnośnie mojej płyty gł. to nie orientuję się za bardzo co -> tj. VIARAMA U8768

----------

## Zwierzak

lspci i porównaj to co uzyskasz do tego co masz w kernelu.

----------

## Godhand

Ok, poszło. Dzięki wielkie. Jest DMA

```

/dev/hda:

 multcount     = 16 (on)

 IO_support    =  1 (32-bit)

 unmaskirq     =  1 (on)

 using_dma     =  1 (on)

 keepsettings  =  0 (off)

 readonly      =  0 (off)

 readahead     = 256 (on)

 geometry      = 16383/255/63, sectors = 117304992, start = 0

```

Chodzi to to wszystko nawet lepiej  :Smile:  Nie jest to jeszcze szczyt marzeń czy prędkość Windowsa ale poprawę widać.

Jakby ktoś miał jeszcze jakiś pomysł co może mi zwalniać system to bardzo proszę  :Smile: 

----------

## lsdudi

przerzuć się na libata  :Smile: 

i zmien march na pentium4

----------

## Godhand

 *lsdudi wrote:*   

> przerzuć się na libata  

 

z tego co się orientuję (a średnio się orientuję to libata to raczej emuluje to DMA c'nie? To tak chyba nie podniesie mi to wydajności skoro już mi DMA działa? Popraw mnie proszę.

 *lsdudi wrote:*   

> 
> 
> i zmien march na pentium4

 

tzn ? co? jak ? gdzie? coś w kernelu zaznaczyć trza?

----------

## lsdudi

 *Godhand wrote:*   

>  *lsdudi wrote:*   przerzuć się na libata   
> 
> z tego co się orientuję (a średnio się orientuję to libata to raczej emuluje to DMA c'nie? To tak chyba nie podniesie mi to wydajności skoro już mi DMA działa? Popraw mnie proszę.
> 
> 

 

A poprawie. Ja osobiści czuję kopa poza tym hdparm ma lesze wyniki. A w końcu to nowsze sterowniki z nową poprawioną architekturą

 *Godhand wrote:*   

> 
> 
>  *lsdudi wrote:*   
> 
> i zmien march na pentium4 
> ...

 

masz

```
CXXFLAGS="-O2 -march=i686 -pipe -fomit-frame-pointer"
```

a tutaj

```
System uname: 2.6.23-gentoo-r6 i686 Intel(R) Pentium(R) 4 CPU 2.40GHz
```

znaczy się masz p4 lub celerona (wybrakowane p4)

march pentium4 pozwoli ci wykozystać dodatkowe rejestry i komedy w procku.

----------

## Godhand

 *lsdudi wrote:*   

> libata
> 
> 

 

niestety jak przejść na libata nie wiem, więc jeśli miałbyś jakiś tutroial albo mógłbyś mi to opisać to byłbym wdzięczny.

co do make.conf, zmieniłem na 

```
CXXFLAGS="-03 -march=pentium4 -pipe -fomit-frame-pointer"
```

dobrze czy jeszcze coś trzeba? (mam Pentium IV 2,4 GHz)

Przekompilować systemu nie mogę (w sensie emerge -Du --newuse world) bo mi wychodzi, że nic nie ma do zrobienia więc nie wiem czy mam coś przekompilować w jakiś sposób czy poprostu restart kompa wystarczy po tej edycji?

----------

## SlashBeast

zamiast O3 dał bym O2 i dodał bym 

```
 -fno-ident -finline-functions
```

Co do libata, wyłączasz ATA w kernelu (ATA/ATAPI/MFM/RLL support) i w Serial ATA (prod) and Parallel ATA (experimental) drivers dodajesz swój kontroler PATA, dla mnie to Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA.

Ps: nie zdziw się, ze na libata zamiast hda będziesz miał sda a napędy optyczne będziesz miał jako sr0 i kolejne cyferki. Zupełnie jakbyś wszystko miał na SATA czy scsi.

----------

## Godhand

 *SlashBeast wrote:*   

> zamiast O3 dał bym O2 i dodał bym 
> 
> ```
>  -fno-ident -finline-functions
> ```
> ...

 

a jaka różnica między 02 a 03 i co to za opcje które proponujesz?

No i przede wszystkim czy po zmianie tego muszę coś przekompilować/restartować żeby jakoś zatwierdzić i wykorzystać te zmiany??

 *SlashBeast wrote:*   

> 
> 
> Co do libata, wyłączasz ATA w kernelu (ATA/ATAPI/MFM/RLL support) i w Serial ATA (prod) and Parallel ATA (experimental) drivers dodajesz swój kontroler PATA, dla mnie to Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA.

 

a jest jakieś polecenie które mi pokaże który ja mam wybrać?  :Very Happy: 

 *SlashBeast wrote:*   

> 
> 
> Ps: nie zdziw się, ze na libata zamiast hda będziesz miał sda a napędy optyczne będziesz miał jako sr0 i kolejne cyferki. Zupełnie jakbyś wszystko miał na SATA czy scsi.

 

to wiem ale to mi raczej nie przeszkadza.

----------

## lsdudi

 *Godhand wrote:*   

> 
> 
> a jaka różnica między 02 a 03 i co to za opcje które proponujesz?

 

Nie znasz różnicy to zostań przy save flagach

a jak chcesz sie dowiedzieć to poszukaj dużo tego jest na googlach i na tym forum.

```
man gcc
```

 też bedzie pomocne

Co do przejścia na libata to był tutor na tym forum.

----------

## SlashBeast

-fno-ident - może zmniejszyć rozmiar binarkim, generalnie podobno nie dokleja jakiś glupot do binarki, wyczytane na forum, nie ma negatywnych działań i nie wpływa w żaden sposób na szybkość kodu.

O2 jest standardem natomiast O3 strasznie rozdmuchuje kod, przez co nie zawsze jest wart uwagi.

-finline-functions - Taka spryciarska flaga, powinna przyśpieszyć wykonywanie kodu, jest w O3, ale tylko ona wydaje mi się warta uwagi więc używam jej z O2.  :Smile: 

Jak lubisz ostrą jazdę bez trzymanka to baw się z -ffast-math, -ftracer i -funroll-loops

----------

## n0rbi666

 *SlashBeast wrote:*   

> -fno-ident - może zmniejszyć rozmiar binarkim, generalnie podobno nie dokleja jakiś glupot do binarki, wyczytane na forum, nie ma negatywnych działań i nie wpływa w żaden sposób na szybkość kodu.

 

Octave z tą flagą się nie kompiluje, więc jednak jakieś negatywne działania ma ...

----------

## SlashBeast

```
       -fno-ident

           Ignore the #ident directive.

```

Jutro sam sprawdze, bo to mi się wydaje niemożliwe.

----------

## Godhand

no dobra zmieniłem to march na pentium4 lub native ale co teraz? polecenie przekompilowania world z nowymi use wypluwa że nie ma nic do zrobienia więc jak to zatwierdzić?

----------

## lsdudi

 *Godhand wrote:*   

> no dobra zmieniłem to march na pentium4 lub native ale co teraz? polecenie przekompilowania world z nowymi use wypluwa że nie ma nic do zrobienia więc jak to zatwierdzić?

 

bo nie  --newuse 

tylko -e 

procedura jak przy ugrade gcc (czytaj rekompilacja wszystkiego)

----------

## SlashBeast

Ja bym sobie darował emptytree, przy upgradach i tak się sporo pakietow przekomiluje, a 686 wcale nie jest jakoś diabelsko nie-wydajną architekturą. Napewno masz flage sse, mmx czy mmxext w use które uzywa mplayer np.

----------

