Проблемы быстродействия и отрисовки в X.

Здравствуйте.
Имеется следующее:

01:00.0 VGA compatible controller: nVidia Corporation GeForce 8400 GS (rev a1)

Linux st1 2.6.24-gentoo-r8 #1 SMP PREEMPT Mon Jun 9 12:14:40 MSD 2008 i686 AMD Athlon(tm) 64 X2 Dual Core Processor 4400+ AuthenticAMD GNU/Linux


 free -m
             total       used       free     shared    buffers     cached
Mem:          2025       1543        481          0        492        649
-/+ buffers/cache:        402       1622
Swap:         2392          0       2392

Система полностью пересобрана как

CFLAGS="-O2 -march=athlon -pipe -fomit-frame-pointer"
CHOST="i686-pc-linux-gnu"

При этом наблюдаются тормоза в работе X и Gnome: если быстро свернуть-развернуть окошко, переключить таб в браузере, переключить рабочий стол и тд, то наблюдается торможение интерфейса. top при этом показывает, что процесс X кушает примерно до 40% от процессорного времени в пике. Если ничего не делать, то X приблизительно 5-6% кушает.
Вопрос: это нормальное поведение для подобной системы или нет?

PS На системе с AthlonXP 1.8+/ GF5700LE наблюдается схожая картинка. Почему-то кажется, что на более новой системе такие тормоза ненормальны.

Присобачил

Присобачил compiz-fusion, подпилил напильником. Работает графика сейчас быстрее, конечно, но все же, почему "умолчальная" конфигурация так тормозила?

Дрова-то на

Дрова-то на видео от nVidia или X-вые?
32-х разрядную систему собирал из принципа или как?
Какой gcc пользуешь? Дело в том что на >=gcc-4.2.x
есть ключик -march=native, который грит gcc
"оптимизируй под мой проц сам как его видишь".
Я использую его на AMD64 (но проц Intel) платформе
без траблов и тормозов.

Дрова

Дрова проприетарные. 32bit система по необходимости, а не по прихоти.
gcc 4.2+
Т.е. ты предлагаешь заменить -march=athlon на -march=native? И это даст прирост в производительности Х на 30%?

неа, если

неа, если менять то на -march=native -mtune=native иначе из-за бага он неоптимизирует вообще ничего. и она напряжётся, увидит что у тя -march=athlon и его и поставит...

Даже если gcc 4.1.x,

Даже если gcc 4.1.x, то -march=athlon64. А то оптимизируется под что-то весьма старое (-:Е


Пожалуйста, не описывайте своё железо в подписи

Посмотрел и

Посмотрел и нашел:

Цитата:
-march=native

Starting with GCC 4.3.0, the compiler supports the -march=native switch which turns on CPU autodetection and optimizations that are worth being enabled on the processor the GCC is running at. This is a problem with distcc as it allows mixing of code optimized for different processors (like AMD Athlon and Intel Pentium). Don't use -march=native or -mtune=native in your CFLAGS or CXXFLAGS when compiling with distcc.

На компе же

[1] i686-pc-linux-gnu-4.1.2

Да, я знаю, что athlon - это для тех самых, старых, которые XP и тд были. Но разве -march=athlon64 подойдет для 32bit системы?

Хех

HolyBoy написал(а):
Да, я знаю, что athlon - это для тех самых, старых, которые XP и тд были.

Даже старше. Для Athlon XP свой -march

Цитата:
Но разве -march=athlon64 подойдет для 32bit системы?

$ emerge --info
Portage 2.1.4.4 (default/linux/x86/2008.0/desktop, gcc-4.1.2, glibc-2.6.1-r0, 2.6.24-gentoo-r8 i686)
=================================================================
System uname: 2.6.24-gentoo-r8 i686 AMD Athlon(tm) 64 Processor 3000+
...
ACCEPT_KEYWORDS="x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=athlon64 -O2 -pipe -fomit-frame-pointer"

CFLAGS


Пожалуйста, не описывайте своё железо в подписи

Разобрался, в

Разобрался, в чем проблема. Оказывается, у меня, как тут http://www.gentoo.ru/node/10538 проблемы с mtrr были. К сожалению, дерьмовая материнка asus m2a-vm не позволяет в биосе настраивать mtrr. Попробовал исправить это, вбив в local.start

echo "disable=1" > /proc/mtrr
echo "base=0xd0000000 size=0x10000000 type=write-combining" >/proc/mtrr
echo "base=0xf8000000 size=0x2000000 type=write-combining" >/proc/mtrr

, как следовало из

01:00.0 VGA compatible controller: nVidia Corporation Unknown device 0404 (rev a1) (prog-if 00 [VGA controller])
	..
	Interrupt: pin A routed to IRQ 20
	Region 0: Memory at fa000000 (32-bit, non-prefetchable) [=16M]
	Region 1: Memory at d0000000 (64-bit, prefetchable) [=256M]
	Region 3: Memory at f8000000 (64-bit, non-prefetchable) [=32M]
	Region 5: I/O ports at cc00 [=128]
	....
	Capabilities: [100] Virtual Channel <?>
	Capabilities: [128] Power Budgeting <?>
	Capabilities: [600] Vendor Specific Information <?>
	Kernel driver in use: nvidia
	Kernel modules: nvidia

, и теперь

# cat /proc/mtrr 
reg00: base=0x00000000 (   0MB), size=2048MB: write-back, count=1
reg01: base=0xd0000000 (3328MB), size= 256MB: write-combining, count=1
reg02: base=0xf8000000 (3968MB), size=  32MB: write-combining, count=1

. Тормоза остались. Жаль.

При сборке ядра

При сборке ядра в разделе Processor type and features выбери Preemption Model -> Low Latency Desktop. А частоту таймера в той же секции выстави на 1000Hz. Должно помочь обязательно, хотя бы чуть чуть.

по-моему 1000

по-моему 1000 слишком много. задергается проц постоянно опрашивать....
я ставлю обычно 300.

Дело не в

Дело не в компиляторе и не в опциях сборки, а дело в то, что на все нвидиях 8... плохо работает 2д, они начали делать вывод интерфейса через 3д, но так и не доделали. В будующих дровах обещают поправить.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".