Can't allocate DMA buffer

Jiri Sasek Jiri.Sasek na artisys.cz
Pátek Únor 26 15:06:54 CET 1999


Nazdar Tome

Tvé vysvětlení se mi moc nezdá. Unix obecně a Linux nevyjímaje si totiž
bere paměť až do konce va cache a buffery a z těch pak uvolňu je uplikaci
ty, které byly nejdéle nepovšimnuty. Takže ten tvůj testovací magoritmus
akorát vytěsní z paměti cache a buffery a pak začne mlátit se swapem.

Důvod, proč se děje to co se děje má asi jméno Intel. Ten kdysi upekl
takový hodně pimitivní DMA řadič, který umí přenášet bloky jen o velikosti
mocnin 2. Dílo zkázy dovršil Compaq, který sice osadil i386 místo i268,
ale ponechal řadič, ktrý řídí jen 24b adresové sběrny.

Na tvém místě bych zkusil, jestli jsi nezapomněl ze své původní verzi
jádra zaplou takovou tu option co říká že se má použít jen dolních 16MB.
Pak bych se podíval do setupu, tam totiž občas bývá takový parametr, který
zapíná/vypíná 16.MB jako RAM aby udělal místo pro různé adaptéry (SCSI,
HDLC řadiče). Ten se mi zatím na různých MB jevil zcela nepredikovatelně.

Další a nejpravděpodobnější důvod se mi jeví, že jsi osadil paměti o
různých rychlostech a PnP setup se nějak nastavil. Pak je nejlepší
nastavit na ty pomalejší. Zkus třeba vyhodit těch 32M a opsat si nastavení
časování pamětí a pak si to skouknout s těma 48M, jestli bude změna, pak
jsi právě našel závadu a stačí jen nastavit to starší časování.

Ještě bych taky zkusil přeložit jádro. Pokud koupíš SIGSEGV (SIG 11). Pak
začne takové to procesor-paměťové putování (viz příslušné HOWTO)

Zdraví (hlavně pevné a duševní)

Jura

--
Jiri Sasek                      -°)                          (°-
Jiri.Sasek na artisys.cz           /\\  Join the penguin force  //\
+420-603-443316                _\_v   The Linux G3N3R4T!ON   v_/_

On 23 Feb 1999, Tom Mazouch wrote:

> Dobry den fsem,
>   uz jsem tenhle dotaz do konfery psal, ale nejaxe nikdo neozval...
> Nechal jsem se pred casem zlakat cenama pameti a pozvedl jsem domaci
> linuxovou masinu z 16 na 48MB. Od te doby se zacaly objevovat problemy
> se zvukem ($subj). Moje vysvetleni (spravne???) je, ze dolnich 16MB RAM
> se zaplaca a pak pri prehravani na /dev/dsp nastane potiz. Co s tim?
> Existuje nejaky lepsi reseni nez
> p=malloc(hafo_moc);
> for(i=0;i<hafo_moc;p[i++]=neco);
> Mam zkusit jiny ovladac? Mam SB64AWE, kdyz zkusim ALSA, pomuzu si? 
> Docela mi tato "vlastnost" kazi naladu.
>   Tom
> 
> ----------------------------------------------------------------------
> Meta-FAQ (odhlášení, archív a další): http://www.linux.cz/mailing-list
> 
> 
> 




Další informace o konferenci Linux