[pso] [Tema3][Linux] Intrebare bio

Razvan Deaconescu razvan.deaconescu at cs.pub.ro
Sun May 9 18:28:24 EEST 2010


On Fri, 2010-05-07 at 17:23 +0300, Macicas Teodor wrote:
> Mersi inca o data pentru raspunsuri.
> 
> Asadar, dupa ce fac submit la primul bio (cel read) in functia data de 
> bio->bi_end_io va trebui sa-mi construiesc alt bio write si sa-i fac 
> submit ? Sau acest lucru se intampla la nivelul superior in kernel ?

Se intampla la nivelul superior.

> Atunci cand fac bio_clone() nu se aloca o pagina noua ? Altfel, cum se 
> face acest lucru ?

Nu, nu se aloca. Adaugi o pagina noua folosind bio_add_page, dar s-ar
putea sa ai probleme cu vechea mapare (ambele bio-uri puncteaza catre
aceeasi pagina) (din cate stiu bio-ul trebuie sa fie "gol" - probabil ca
vei putea folosi bio_release_pages).

Personal, recomand alocarea unui bio folosind bio_alloc. Apoi folosesti
bio_add_page ca sa adaugi o pagina bio-ului. Va trebui sa transferi
continutul noului bio in cadrul vechiului bio (pentru operatie de read)
si invers pentru operatie de write.

Razvan

P.S.: Pentru write merge fara probleme bio_clone pentru ca nu ai nici o
problema in folosirea aceluiasi pagini. Din perspectiva operatiei, acel
buffer este read-only - doar se _citeste_ informatia pentru a fi
_scrisa_ pe disc.



More information about the pso mailing list