[pso] [Tema3][Linux] Intrebare bio

Macicas Teodor teodor.macicas at cti.pub.ro
Thu May 6 16:18:05 EEST 2010


Salut,

Am o nelamurire. Incerc sa fac o chestie simpla si nu inteleg ce gresesc.
In functia care primeste bio-urile, am folosit open_bdev_exclusive() 
pentru a deschide discul fizic. Am clonat un bio ( bio_clone() ) si am 
modificat campurile bi_bdev, bi_private si bi_end_io.
Am dat bio_submit() si wait_for_completion(). Se pare ca nu intra in 
bi_complete() niciodata, iar masina virtuala se blocheaza.

De ce se intampla asta ?
Multumesc.
Teodor


Razvan Deaconescu wrote:
> On Wed, 2010-05-05 at 17:48 +0300, Eugen wrote:
>   
>> Salut,
>> In coada de prelucrare la nivel de bio, se primeste ca parametru un bio
>> de la un nivel superior al kernelului. In acest caz, trebuie sa apelam
>> submit_bio pe acest bio primit? sau trebuie clonat?
>>     
>
> Trebuie clonat/alocat un bio nou.
>
>   
>> Copierea datelor de pe disc in bio si implicit la nivelul superior se
>> face automat din functia submit_bio ?
>>     
>
> Dupa ce apelezi bio, datele din bio vor ajunge, la un moment dat pe disc
> (apelul write) sau vor fi citite de pe disc (in cazul read). Nu inteleg
> la ce te referi prin copierea datelor in bio si la nivelul superior.
> Poate raspunsul de mai jos te ajuta.
>
>   
>> Sau trebuie sa mapez paginile si sa copiez dintr-un bio in altul , sau
>> alt fel de mecanism ?
>>     
>
> Recomandam sa creati bio-uri noi cu pagini alocate proprii si sa
> transferati datele dintr-un bio in altul (prin maparea paginilor din
> bio-uri). Contoarele de utilizare de pagina pot produce probleme daca
> folositi aceleasi pagini in mai multe bio-uri.
>
> Razvan
>
> _______________________________________________
> http://elf.cs.pub.ro/so2/wiki/resurse/lista-discutii
>   


-- 
Teodor MACICAS






More information about the pso mailing list