Jak v jadre (modulu) pockat nekolik ms ci s

Radek Hnilica radek.hnilica na moraviapress.cz
Středa Duben 19 13:18:17 CEST 2000


Odpověď kam:    	linux na linux.cz
Datum odeslání: 	Tue, 18 Apr 2000 21:25:05 +0200 (MET DST)
Od:             	Pavel Kankovsky <peak na argo.troja.mff.cuni.cz>
Komu:           	linux na linux.cz
Věc:            	Re: Jak v jadre (modulu) pockat nekolik ms ci s

> On Tue, 18 Apr 2000, Martin `MJ' Mares wrote:
>
> > Ja myslim, ze psat ovladace pro 2.0.38 uz je v dnesni dobe preci jen
> > anachronismus a ze by bylo rozumnejsi rovnou prejit pod 2.2.x, kde
> > se da cekani zaridit velice snadno:

Ovladac jsem stahul z webu Z-Com kde byl pro 2.0.36.  Zatim ho
pouzivam (resp. snazim se) v 2.0.38 a planuji ho upravit aby jel v
2.2.x neb to budu potrebovat.  A kdyz uz tak budu v tom, mozna by
stalo za to ho upravit taky pro 2.4.x.

V teto chvili mi dela problemy reset karet WL2420, ktery nekdy
neprobehne.  Pote chci trochu procistit zdrojaky kde se pouziva k
cekani makro:
/* For rough constant delay */
/*RFH* I double SLOW_DOWN_IO in loop */
#define NOPLOOP(n)	   { int x=0; while(x++<(n)*2) {SLOW_DOWN_IO;
SLOW_DOWN_IO;} }

Ktere se na ruznych mistech pouziva s n = 100, 5000, 10000, 51200.
Zrovna tento zpusob cekani v modulu se mi nepozdava.

> > 	current->state = TASK_INTERRUPTIBLE;
> > 	schedule_timeout(HZ*pocet_sekund);
>
> Ano...v 2.0 to bylo opravdu mnohem slozitejsi :)
>
>  current->state = TASK_INTERRUPTIBLE;
>  current->timeout = jiffies + HZ*pocet_sekund;
>  schedule();


Dik za nakopnuti.  Jaky vyznam ma magicka konstatna HZ.  Jaky vyznam
ma promenna jiffies.  Jak udelam cekani pro kratsi intervaly, treba
10ms, 20ms, 30ms?


Radek Hnilica
MORAVIAPRESS, a.s.
U pony 3061
690 02 Breclav
tel.:+420-627-305 114
fax:+420-627-321 728
e-mail: Radek.Hnilica na MORAVIAPRESS.cz


Další informace o konferenci Linux