[pso] Re: Tema 3 Linux - elv_next_request

Adrian - Razvan Deaconescu pso@cursuri.cs.pub.ro
Sun, 17 Apr 2005 21:38:06 +0300


> Solutia cel putin care mi se pare ok este in cadrul functiei de request s=
a vezi
> daca requestul e ptr devicul tau bla bla..., si daca da, sa faci un
> wake_up(&wait_q), wait_q fiind coada de asteptare ptr kthread. Daca struc=
tura
> asociata devicului are design bun, la trezire kthreadul preia din structu=
ra
> devicului pasata lui ca arg, obtine request_queue al devicului corespunza=
tor, si
> bucleaza un while(!list_empty(req_q->queue_head)) prelucrand fiecare requ=
est.

> Astfel respecti cerintele temei ca prelucrarile trebuie sa se faca din kt=
hread, si nu
> te complici cu bio (de fapt cred ca merita sa te complici cu bio - ca tot=
 inveti
> ceva, dar depinde de fiecare acum :) )

Mda, e o solutie foarte interesanta. Dar e prea tarziu, deja am facut
cu bio. E putin mai complicat cu bio e adevarat, dar ai mai mult
control asupra lucrurilor. Oricum, la testele cu depasirea am avut
niste probleme de care nu m-am prins :-); asa ca daca solutia ta
functioneaza, e cea de urmat, pentru ca e mai simpla.

> Daca ce am zis e gresit, pls corectati.

Nu stiu ce sa zic; poate o sa incerc sa fac o data si varianta ta.
Daca iti merge, sa ma anunti si pe mine ;-)

Razvan