Nowe posty

xx Dystrybucja pod HP Omen (6)
2024-03-27, 23:30:08
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
lamp Problem z Linux Lite po instalacji (0)
2024-03-27, 19:50:30
xx Ile pingwinów? (1)
2024-03-27, 08:59:24
xx konfiguracja pale moon (0)
2024-03-24, 21:53:42
xx Plasma 6 w Neonie ssie trochę mniej ... (10)
2024-03-23, 02:38:11
xx problem z instalacja sterowników do karty sieciowej (3)
2024-03-18, 18:10:16
xx Plik abc.001 (1)
2024-03-17, 17:48:27
xx Zlecę dopracowanie programu w MatLab (0)
2024-03-13, 15:28:40
xx Linux Mint 21.3 XFCE brak dźwieku po paru minutach (karta muzyczna zintegrowana) (5)
2024-03-12, 23:07:01

Autor Wątek: Niewykorzystane zasoby pamięci z GARTSize: leżą odłogiem?  (Przeczytany 389 razy)

arctgx

  • Gość
Witam!

Zrobiłem ciekawy eksperyment z przydzielaniem pamięci RAM (i być może nie tylko) dla operacji 3D w biosie i iksach. Nie tyle wydajność programów 3D interesowała mnie w tej chwili, co wolne miejsce w pamięci dla pozostałych programów.

Czy z tego co poniżej pokazałem wynika, że jeśli nie używam w danej chwili programów 3D, to niewykorzystana pamięć po prostu się marnuje i nie jest dostępna dla reszty?

Za tym idzie decyzja czy używać jednych ustawień środowiska Xorg do pracy z programami 3D, a drugich, gdy nie korzystam z takich programów, ale używam innych pamięciożernych (choćby GIMP). 256 MB pamięci to na tyle mało, że warto się pogłowić i powalczyć o każdy kawałek na różne sposoby. Nawet kompilacja dużych programów zdaje się schodzić do swapu z braku RAMu i oczywiście zwalniać, gdy jednocześnie część RAMu leżeć może odłogiem, bo przeznaczyłem je dla 3D.


Eksperyment robiłem za każdym razem w IceWM na konsoli aterm, na karcie Radeon 9000 (posiadającą 64 MB pamięci DDR) i otwartym sterownikiem jądra dla niej.

Na początku wyglądało to tak:
option          "GARTSize"              "64"
BIOS: AGP Aperture Size: 64

Xorg.0.log:
(II) RADEON(0): Using 64 MB GART aperture
(II) RADEON(0): Using 1 MB for the ring buffer
(II) RADEON(0): Using 2 MB for vertex/indirect buffers
(II) RADEON(0): Using 61 MB for GART textures

  ~ $ free
             total       used       free     shared    buffers     cached
Mem:        256896     229604      27292          0      12628     114584
-/+ buffers/cache:     102392     154504
Swap:       488840         80     488760

  ~ $ cat /proc/mtrr
reg00: base=0x00000000 (   0MB), size= 256MB: write-back, count=1
reg01: base=0xd0000000 (3328MB), size= 128MB: write-combining, count=3
reg05: base=0xe0000000 (3584MB), size=  64MB: write-combining, count=2
Po wyłączeniu opcji "GARTSize" w xorg.conf:

Xorg.0.log:
(II) RADEON(0): Using 8 MB GART aperture
(II) RADEON(0): Using 1 MB for the ring buffer
(II) RADEON(0): Using 2 MB for vertex/indirect buffers
(II) RADEON(0): Using 5 MB for GART textures


  ~ $ free
             total       used       free     shared    buffers     cached
Mem:        256896     174516      82380          0      12332     114544
-/+ buffers/cache:      47640     209256
Swap:       488840         80     488760

  ~ $ cat /proc/mtrr
reg00: base=0x00000000 (   0MB), size= 256MB: write-back, count=1
reg01: base=0xd0000000 (3328MB), size= 128MB: write-combining, count=3
reg05: base=0xe0000000 (3584MB), size=  64MB: write-combining, count=2
Zrobiłem restart i zmniejszyłem przydział pamięci RAM dla AGP poniżej GARTSize. Efekt: brak akceleracji 3D.

option          "GARTSize"              "64"
BIOS: AGP Aperture Size: "32"

Xorg.0.log:
(II) RADEON(0): [agp] 65536 kB allocated with handle 0x00000001
(EE) RADEON(0): [agp] Could not bind
(EE) RADEON(0): [agp] AGP failed to initialize. Disabling the DRI.
(II) RADEON(0): [agp] You may want to make sure the agpgart kernel module
...

  testy-3d $ free
             total       used       free     shared    buffers     cached
Mem:        256896     107456     149440          0       5876      66592
-/+ buffers/cache:      34988     221908
Swap:       488840          0     488840

  ~ $ cat /proc/mtrr
reg00: base=0x00000000 (   0MB), size= 256MB: write-back, count=1
reg01: base=0xd0000000 (3328MB), size= 128MB: write-combining, count=2
reg05: base=0xe0000000 (3584MB), size=  32MB: write-combining, count=2
Naturalnie, następnym krokiem było zmniejszenie GARTSize do 32 i restart iksów. Akceleracja wróciła.

Xorg.0.log:
(II) RADEON(0): Using 32 MB GART aperture
(II) RADEON(0): Using 1 MB for the ring buffer
(II) RADEON(0): Using 2 MB for vertex/indirect buffers
(II) RADEON(0): Using 29 MB for GART textures

~ $ free
             total       used       free     shared    buffers     cached
Mem:        256896     145116     111780          0       6692      69472
-/+ buffers/cache:      68952     187944
Swap:       488840          0     488840

  ~ $ cat /proc/mtrr
reg00: base=0x00000000 (   0MB), size= 256MB: write-back, count=1
reg01: base=0xd0000000 (3328MB), size= 128MB: write-combining, count=3
reg05: base=0xe0000000 (3584MB), size=  32MB: write-combining, count=2
Ostatni wynik zachęcił mnie do jeszcze jednego eksperymentu: ustawienia w BIOSie "AGP Aperture Size" na maksimum równe 256 MB. Jest to z jednej strony cały mój RAM, z drugiej - granica możliwości mojej płyty głównej (MSI-6712, v. 1.0). Chcę zobaczyć czy te 256 MB może sobie potencjalnie czekać i czy rzeczywistą przydzieloną ilością mogę żonglować za pomocą ustawień iksów.

  ~ $ free
             total       used       free     shared    buffers     cached
Mem:        256896     135980     120916          0       5544      64784
-/+ buffers/cache:      65652     191244
Swap:       488840          0     488840

  ~ $ cat /proc/mtrr
reg00: base=0x00000000 (   0MB), size= 256MB: write-back, count=1
reg01: base=0xd0000000 (3328MB), size= 128MB: write-combining, count=3
reg05: base=0xe0000000 (3584MB), size= 256MB: write-combining, count=2

Xorg.0.log:
(II) RADEON(0): Using 32 MB GART aperture
(II) RADEON(0): Using 1 MB for the ring buffer
(II) RADEON(0): Using 2 MB for vertex/indirect buffers
(II) RADEON(0): Using 29 MB for GART textures
ed: zrobiłem oprawę w tag CODE