[pso] [Tema 3][lin] atentie la bio_endio

Razvan Crainea razvan.crainea at gmail.com
Tue Apr 19 16:15:39 EEST 2011


Salut,

Am și eu o întrebare legată de memoria asociată structurilor bio.
Din câte am văzut, eliberarea memoriei se face la apelarea bio_put, când
câmpul bi_cnt este 0.
Am verificat ca la fiecare ieșire din funcție acest câmp să fie 0, și cu
toate astea daemon-ul kmemleak îmi spune că rămân alocate o mulțime de
structuri bio.
Are cineva o explicație pentru acest comportament sau greșesc eu undeva?

Mulțumesc,
Răzvan



2011/4/19 Razvan Deaconescu <razvan.deaconescu at cs.pub.ro>

> On 04/18/2011 11:58 PM, Adrian Sendroiu wrote:
> > Salut.
> >
> > Rutina inregistrata cu blk_queue_make_request are voie sa faca sleep?
>
> Are și nu prea :-) Are, în sensul că rulează în context proces. Nu are,
> pentru că nu este permisă existența a mai mult de o instanță de execuție
> a unei funcții ->make_request_fn[1].
>
> > Daca nu, ce se intampla cu bio-ul respectiv daca s-a facut return din
> > ea fara ca el sa fi fost completat?
>
> Bio-ul este "închieiat" și rezultatul este întors în user space doar
> dupa apelul funcției bio_endio[2].
>
> Răzvan
>
> [1] http://lxr.free-electrons.com/source/block/blk-core.c#L1568
> [2] http://lxr.free-electrons.com/source/fs/bio.c#L1429
> _______________________________________________
> http://elf.cs.pub.ro/so2/wiki/resurse/lista-discutii
>



-- 
Razvan Crainea
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/pso/attachments/20110419/d3dc6600/attachment.htm>


More information about the pso mailing list