[pso] [Tema3][Linux] Intrebare bio

Macicas Teodor teodor.macicas at cti.pub.ro
Sun May 9 21:42:17 EEST 2010


Razvan Deaconescu wrote:
> 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.
>
>   

Mersi pentru explicatii Razvan.
Chiar daca folosesc bio_clone sau secventa bio_alloc, alloc_page, 
bio_add_page tot obtin OOPS la apelarea submit_bio din kernel thread.
Aici [0] se gaseste output-ul oops-ului. Eu n-am nicio idee de ce se 
intampla asta si nu pot face submit la bio-ul clonat si completat.

[0] http://pastebin.com/fWmGmKVZ

Multumesc inca o data.
Teodor



More information about the pso mailing list