/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Disable DMA for netkort og harddisk
Fra : Simon Borresen


Dato : 16-01-04 19:58

Hej

Hvordan disabler jeg brug af DMA for netkort og harddisk (eller bare alle)?

Jeg kører med Redhat 9.0, kernel 2.22.4

/Simon


 
 
Esben Laursen (17-01-2004)
Kommentar
Fra : Esben Laursen


Dato : 17-01-04 00:02


"Simon Borresen" <sboe02@FJERNDETTEcontrol.auc.dk> skrev i en meddelelse
news:bu9bkf$93a$1@sunsite.dk...
> Hej
>
> Hvordan disabler jeg brug af DMA for netkort og harddisk (eller bare
alle)?

På harddiske ville jeg bruge: hdparm -d0 /dev/hdx
Jeg syntes aldrig jeg har set et netkort køre med DMA, men det kan være mig
der tager fejl.

Hvorfor vil du slå det fra? På IDE diske giver det noget af et hastigheds
boost at køre med DMA, på min debian er det slået fra som standart, hvilket
jeg også mener det normalt er på andre dist.

> Jeg kører med Redhat 9.0, kernel 2.22.4

Du må mene kerne 2.4.22 ikke? Eller er de sku kommet noget højere op siden
sidst jeg kikkede hvor 2.6.1 lige var udkommet =)

Hygge

Esben



Simon Børresen (17-01-2004)
Kommentar
Fra : Simon Børresen


Dato : 17-01-04 17:13

sry Esben.. kom til at reply til dig ved en fejl...

> På harddiske ville jeg bruge: hdparm -d0 /dev/hdx
> Jeg syntes aldrig jeg har set et netkort køre med DMA, men det kan være
mig
> der tager fejl.
>
> Hvorfor vil du slå det fra? På IDE diske giver det noget af et hastigheds
> boost at køre med DMA, på min debian er det slået fra som standart,
hvilket
> jeg også mener det normalt er på andre dist.

Vi skal modtage et interrupt hvert 10. ys fra parallel porten... og når en
DMA overførsel er i gang kan den ikke afbrydes.. dvs. vi skal enten have
slået DMA fra eller have sat chunk sizen ned. Vi har en god ide om at
fejlen (Vi mister interrupts...) skyldes DMA overførsler.

En anden ide kunne være at interrupt service rutiner fra netkortet ikke
afbrudt af interruptservice rutiner fra parallelporten (lpt har fået højere
prioritet ved at omprogrammere PIC'en på bundkortet).

> > Jeg kører med Redhat 9.0, kernel 2.22.4
> Du må mene kerne 2.4.22 ikke? Eller er de sku kommet noget højere op siden
> sidst jeg kikkede hvor 2.6.1 lige var udkommet =)

hihi.. .jo da... Der var jeg vist træt

/Simon



Esben Laursen (17-01-2004)
Kommentar
Fra : Esben Laursen


Dato : 17-01-04 20:13


"Simon Børresen" <FJERNDETTEsboe02@control.auc.dk> skrev i en meddelelse
news:bubmut$7bn$1@sunsite.dk...
> sry Esben.. kom til at reply til dig ved en fejl...

np.

> > På harddiske ville jeg bruge: hdparm -d0 /dev/hdx
> > Jeg syntes aldrig jeg har set et netkort køre med DMA, men det kan være
> mig
> > der tager fejl.
> >
> > Hvorfor vil du slå det fra? På IDE diske giver det noget af et
hastigheds
> > boost at køre med DMA, på min debian er det slået fra som standart,
> hvilket
> > jeg også mener det normalt er på andre dist.
>
> Vi skal modtage et interrupt hvert 10. ys fra parallel porten... og når en
> DMA overførsel er i gang kan den ikke afbrydes.. dvs. vi skal enten have
> slået DMA fra eller have sat chunk sizen ned. Vi har en god ide om at
> fejlen (Vi mister interrupts...) skyldes DMA overførsler.

Nu er jeg ikke verdens mester i DMA =)
Men hvordan skulle Direct Memory Access have noget at gøre med Interrupts?

> En anden ide kunne være at interrupt service rutiner fra netkortet ikke
> afbrudt af interruptservice rutiner fra parallelporten (lpt har fået
højere
> prioritet ved at omprogrammere PIC'en på bundkortet).

Lyder som noget vildt project....
Jeg syntes at kunne huske fra da jeg stod i lære som elektronikmek. at de
processoren som vi programmerede i (godt nok noget Atmel og Motorola) de
havde et ben til interrupt, når dette ben enten kom høj eller lav (altså et
ben til hver interupt), alt efter om indgangen var inverteret, interuptede
den processoren med det den var i gang med for at køre et andet program. Den
satte simpelthen koden i stå afviklede det nye program og forsatte herefter
med det oprindelige program. På dem mener jeg ikke der var noget med priotet
(selvom jeg lige nu kommer i tvivl). Det kan godt være det er anderledes på
en Intel arkitektur, da de jo kører en lidt anden bus type end de andre..

> > > Jeg kører med Redhat 9.0, kernel 2.22.4
> > Du må mene kerne 2.4.22 ikke? Eller er de sku kommet noget højere op
siden
> > sidst jeg kikkede hvor 2.6.1 lige var udkommet =)
>
> hihi.. .jo da... Der var jeg vist træt

Det er jo menneskelig at fejle.. =)

Hygge

Esben



Ivar Madsen (18-01-2004)
Kommentar
Fra : Ivar Madsen


Dato : 18-01-04 09:01

Esben Laursen skrev i -dk.edb.system.unix:

> Jeg syntes at kunne huske fra da jeg stod i lære som elektronikmek. at de
> processoren som vi programmerede i (godt nok noget Atmel og Motorola) de
> havde et ben til interrupt, når dette ben enten kom høj eller lav (altså
> et ben til hver interupt), alt efter om indgangen var inverteret,
> interuptede den processoren med det den var i gang med for at køre et
> andet program. Den satte simpelthen koden i stå afviklede det nye program
> og forsatte herefter med det oprindelige program. På dem mener jeg ikke
> der var noget med priotet (selvom jeg lige nu kommer i tvivl). Det kan
> godt være det er anderledes på en Intel arkitektur, da de jo kører en lidt
> anden bus type end de andre..

Jeg mener at dette andet program der køres, er en rutine der checker hvad
der har aktiveret interrupten, og så køre det program der passer til denne
interrupt, derved kan man ændre prioteten på interrupt, sige at der må ikke
interruptes nu, sige der må ikke, men nogle ting må godt osv.

--
Med venlig hilsen | Jeg søger et foto / realistisk maleri over
| omgivelserne ved og lige syd for skovbrynes st
Ivar Madsen | ved Bagsværd fra tiden efter krigen, og
Der kører mdk9.2 | frem til motorvejbyggeriet blev påbegyndt

Esben Laursen (17-01-2004)
Kommentar
Fra : Esben Laursen


Dato : 17-01-04 20:19


"Simon Børresen" <FJERNDETTEsboe02@control.auc.dk> skrev i en meddelelse
news:bubmut$7bn$1@sunsite.dk...
> sry Esben.. kom til at reply til dig ved en fejl...
>
> > På harddiske ville jeg bruge: hdparm -d0 /dev/hdx
> > Jeg syntes aldrig jeg har set et netkort køre med DMA, men det kan være
> mig
> > der tager fejl.
> >
> > Hvorfor vil du slå det fra? På IDE diske giver det noget af et
hastigheds
> > boost at køre med DMA, på min debian er det slået fra som standart,
> hvilket
> > jeg også mener det normalt er på andre dist.
>
> Vi skal modtage et interrupt hvert 10. ys fra parallel porten... og når en
> DMA overførsel er i gang kan den ikke afbrydes.. dvs. vi skal enten have
> slået DMA fra eller have sat chunk sizen ned. Vi har en god ide om at
> fejlen (Vi mister interrupts...) skyldes DMA overførsler.

Hvorfor river I ikke bare netkortet ud af maskinen?? Så er det jo nemt og se
om det er den der bøvler =)

--
Esben



Simon Borresen (18-01-2004)
Kommentar
Fra : Simon Borresen


Dato : 18-01-04 10:03

> Hvorfor river I ikke bare netkortet ud af maskinen?? Så er det jo nemt og se
> om det er den der bøvler =)

Det har vi sådan set prøvet... og dog...

Vi er ved at lave et måleværktøj til at måle på netværkstrafik (trådløs)
. Vi skal i den forbindelse kunne synkronisere en række
stationer (ned til en ellers sygelig nøjagtighed... 10 us), hvilket
gøres ved at banke interrupts ind på parallelporten med 10 us's intervaller.

Vi var klar over at det kunne være et problem at modtage interrupts med
den frekvens, hvorfor det blev testet... Det kunne godt lade sig gøre.
Vi kørte flere tests, hvor vi ud af 10 000 000 ikke mistede nogen.
(tests var uden traffik på netværket.. jaja ikke en særlig konklusiv
(det danske ord er?) test... det ved vi godt... nu)

Nu sætter vi så traffik på netværket ved at ping-floode netværket. Her
sker der så det, at vi mister interrupts, og jo større pingpakker jo
flere interrupts mister vi. Ved helt små ping pakker mistes ingen
interrupts. Det tolker vi som om at der sker noget ved netkortets
interrupt, der ikke kan afbrydes. DMA overførsel, ISR eller lign.

Vi bruger forresten RTAI og kernen er patchet med RTHAL hvis det hjælper
noget.


Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408937
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste