Xorg с драйвером nvidia жрёт память
Arago 24 июля, 2010 - 19:16
Проблема - Xorg сразу после запуска с аппетитом сжирает 100 метров памяти, а в процессе работы доедает ещё 150, наедается и решает что неплохо бы и отдохнуть уже, после чего начинает люто, бешено тормозить. xrestop при этом показывает имхо вполне вменяемые
Pixmaps: 56445K total, Other: 367K total, All: 56812K total
С другими дровами (nv и nouveau) всё по другому - с nv Xorg тормозит с самого начала, а память жрёт так же активно, а с nouveau регулярно виснет (однако между зависаниями показывает вполне адекватные 25-30 метров).
Как можно урезать ему аппетиты хотя бы до 60-70 метров?
»
- Для комментирования войдите или зарегистрируйтесь

покажите
покажите cat /proc/mtrr и use в make.conf
cyberdimk
reg00: base=0x000000000 (
reg00: base=0x000000000 ( 0MB), size= 1024MB, count=1: write-back
С дровами nouveau был ещё один участок 256 метров по смещению c0000000 (видяхина память), вот только не помню, write-back или чтото другое.
USE="bash-completion embedded emerald fontconfig freetype kde mysql nsplugin \
ntpl pm-utils rar real system-libvncserver threads unrar v4l v4l2 \
xcomposite xinerama zip -ldap -semantic-desktop"
CONFIG_MTRR=yCONFIG_MTRR_SAN
?
если не поможет - резать руками, передавая кернелу параметрами размеры.
в последнем параметре можно игратся , выставляя до 7 включительно
Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)
Поигрался с последним
Поигрался с последним параметром (прогнал его от 0 до 7, настраивал через параметр ядра mtrr_spare_reg_nr). Никаких результатов. Включил uvesafb - появился ещё один регион
Попытка сделать изпод иксов
вызвала слабое возмущение вида bash: echo: ошибка записи: Недопустимый аргумент.
Вск Июл 25 02:09:40-root@arago-desktop:~ ^_^ lspci -vvv -s 01:00.0 01:00.0 VGA compatible controller: nVidia Corporation G86 [GeForce 9400 GT] (rev a1) (prog-if 00 [VGA controller]) Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx- Latency: 0 Interrupt: pin A routed to IRQ 16 Region 0: Memory at fd000000 (32-bit, non-prefetchable) [=16M] Region 1: Memory at c0000000 (64-bit, prefetchable) [=256M] Region 3: Memory at fa000000 (64-bit, non-prefetchable) [=32M] Region 5: I/O ports at ac00 [=128] [virtual] Expansion ROM at fe8e0000 [disabled] [=128K] Capabilities: [60] Power Management version 2 Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- Capabilities: [68] MSI: Enable- Count=1/1 Maskable- 64bit+ Address: 0000000000000000 Data: 0000 Capabilities: [78] Express (v1) Endpoint, MSI 00 DevCap: MaxPayload 128 bytes, PhantFunc 0, Latency L0s <512ns, L1 <4us ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset- DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+ MaxPayload 128 bytes, MaxReadReq 512 bytes DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr- TransPend- LnkCap: Port #0, Speed 2.5GT/s, Width x16, ASPM unknown, Latency L0 <512ns, L1 <4us ClockPM- Surprise- LLActRep- BwNot- LnkCtl: ASPM Disabled; RCB 128 bytes Disabled- Retrain- CommClk+ ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- Capabilities: [100] Virtual Channel <?> Capabilities: [128] Power Budgeting <?> Capabilities: [600] Vendor Specific Information <?> Kernel driver in use: nvidia Kernel modules: nvidiaОднако же в
творится вообще нечто несусветное. Ну где они у этой самоуверенной карты нашли Memory: 524288 kBytes? Хотя она сама при загрузке (ещё до биоса) показывает что у ней 512 метров рамы. А по документам и по мнению lspci у ней 256 метров. И почему ещё indirect memory access?!
UPD Почитал http://www.nvnews.net/vbulletin/archive/index.php/t-52632.html - сказано что nvidia юзает по умолчанию не MTRR а PAT. Но PAT можно включить только для x86, а у меня amd64...
А если во всей таблице вывода
А если во всей таблице вывода xrestop пробежаться? Кто много съел?
У меня при том, что plasma-desktop, compiz (emerald), konsole, chromium - 1 вкладка = итого
Pixmaps: 21617K total, Other: 193K total, All: 21810K totalNvidia-driver-195.36.31
xorg-server-1.8.2
plasma-desktop (18035k); kwin
plasma-desktop (18035k); kwin (7521K). Ксорг не отдаёт память после освобождения пиксмапов. Версии пакетов такие же.
у меня ксорг жутко тормозит
у меня ксорг жутко тормозит только после того, как посижу в мозилле на страницахс флешем :( до этого момента все рвботает достаточно шустро...
- - -
во время тормозов, в:
#> zcat /var/log/messages-* | grep vmalloc=нет ли случайно таких записей:
kernel: vmap allocation for size 8192 failed: use vmalloc=<size> to increase size.P.S.
CFLAGS="-march=native -mtune=native -O2 -pipe -fomit-frame-pointer -ftree-loop-im"
nvidia-drivers-256.35
xorg-server-1.8.1.902 (+dmx -doc +hal +ipv6 +kdrive -minimal +nptl -static-libs -tslib +udev +xorg)
Compiz-0.8.6
TwinView: два по 1600x1200
Geforce 7950GT
Записей в messages
Записей в messages нет.
x11-drivers/nvidia-drivers-195.36.31
x11-base/xorg-server-1.8.2 (hal ipv6 nptl udev xorg -dmx -doc -kdrive -minimal -static-libs -tslib)
media-libs/mesa-9999
x11-libs/libdrm-9999
sys-kernel/vanilla-sources-2.6.35_rc5
kde-base/kwin-4.4.5
CFLAGS="-O2 -pipe -march=native"
CXXFLAGS="${CFLAGS}"
Screens: 1920x1080 (:0.0); 1024x768 (:0.1)
Вск Июл 25 00:45:07-arago@arago-desktop:~
^_^ ps o rss,vsz,start_time p `pgrep X`
RSS VSZ START
276504 380184 Jul23
Вск Июл 25 00:46:25-arago@arago-desktop:~
^_^ date
Вск Июл 25 00:47:03 MSD 2010
PCI-E Gf 9400GT Chaintech GF94GT-G256N1, 256M GDDR2 64bit 550/533МГц, PCI-E2.0, DVI/RCA/VGA
Сейчас кстати не тормозит особо. Только во время своппинга (ксорг, цуко! >_<), данные по расходу памяти взяты после swapoff -a
ЗЫ а -mtune=native что нить даёт помимо того что даёт -march=native?
Arago написал(а): ЗЫ а
даёт. Кроме оптимизации под последние архитектуры даёт ещё и совместимость со старыми процессорами
Ясно. Обновил дрова до 256.35
Ясно. Обновил дрова до 256.35 - трабл остался. Правда удалось заметить что сразу после запуска KDE ксорг ест всего 30-35 метров, но после открытия любого окна кроме ksysguard (через ctrl-esc) ксорг мгновенно (!) жрёт ещё 70 метров. То же самое при переключении в консоль чтобы xrestop померить (хотя завтра можно будет попробовать по сети посмотреть его). При этом если систему не трогать - ксорг не жрёт, остаётся на 30-35 метрах.
UPD любопытство оказалось сильнее лени. На пиксмапы сразу после загрузки ушло 23 метра из 33. В сухом остатке - 10 метров на сам ксорг. Вот только как бы теперь закрепить результат...
UPD2 Перегенерил xorg.conf с нуля через nvidia-xconfig - ничего не изменилось.
UPD3 Ранее использовавшийся xorg.conf:
ап
ап