[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