[pso] Tema 3 Linux - elv_next_request
Adrian - Razvan Deaconescu
pso@cursuri.cs.pub.ro
Sat, 16 Apr 2005 15:53:51 +0300
Salut,
am o problema la functia elv_next_request; aceasta ar trebui sa
extraga din coada de cereri o cerere care sa fie prelucrata.
Problema este ca indiferent ce fac cu cererea astfel extrasa nimic nu
merge cum trebuie; daca nu fac in cadrul rutinei de tratare a cererii
nimic cu ea, runtina o citeste la infinit din coada de cereri
(bucleaza in gol).
Daca ii dau end_request nu este bine pentru ca cererea ar trebui
prelucrata din kernel thread.
Solutia normala este folosirea blkdev_dequeue_request care ar trebui
sa extraga cererea din coada de cereri. Apoi aceasta ar fi pusa intr-o
coada pentru prelucrare de catre thread si lucrurile ar trebui sa
continue in mod asemanator. Problema este ca rutina de tratare a
cererilor se blocheaza la elv_next_request. Adica dupa un
blkdev_dequeue_request se blocheaza acolo si nu se mai intampla nimic.
Stie cineva care este problema? Trebuie sa trecem sa folosim
structurii bio sau sa prelucram manual coada de cereri?
Multumesc mult,
Razvan