[pso] [tema3 linux]GFP_NOIO, GFP_KERNEL si bio_add_page

Alexandru Mosoi brtzsnr at gmail.com
Mon May 19 19:31:26 EEST 2008


2008/5/2 Razvan Deaconescu <razvand at cs.pub.ro>:

> On Fri, 2008-05-02 at 01:22 -0700, Florin Antonescu wrote:
> > 1. Care este diferenta intre GFP_NOIO si GFP_KERNEL?
>
> Linux Kernel Development - capitolul 11
>
> ---
> GFP_NOIO - This allocation can block, but must not initiate disk I/O.
> This is the flag to use in block I/O code when you cannot cause more
> disk I/O, which might lead to some unpleasant recursion.
> ---
>
> > 2. De ce urmatoarea secventa functioneaza uneori (am folosit-o pentru
> > a citi CRC-urile de pe cele doua discuri) si atunci cand incec sa aloc
> > doua bio-uri pentru scriere imi da eroarea de ai jos?
> >
> > Secventa este:
> >
> >         bio1 = bio_alloc(GFP_NOIO, nr_pages);
> >
> >         for (i=0; i<nr_pages; i++){
> >             bio_page = alloc_page(GFP_NOIO);
> >             bio_add_page(bio1, bio_page, PAGE_SIZE, 0);
> >         }
>
> Definitia lui bio_add_page[1] spune ca al patrulea argument offsetul din
> vectorul de date (bio_vec). Mi se pare mie sau incerci sa adaugi tot
> timpul pagini noi la acelasi offset.
>
> Take your time cand rezolvi probleme. Lista de discutii nu are scopul sa
> functioneze in regim de polling. Uita-te un pic la codul scris,
> analizeaza-l, trage niste concluzii. Pe urma trimite un mesaj pe lista.
>
> Razvan
>
> [1] http://cs.pub.ro/~pso/lxr/source/fs/bio.c?v=linux-2.6.24.2#438<http://cs.pub.ro/%7Epso/lxr/source/fs/bio.c?v=linux-2.6.24.2#438>
>

razvan, chiar nu ai dreptate cu offsetul ala :). si m-ai pacalit si pe mine
(& i hate you for that). la [666] gasesti cum e folosit offsetul. length si
offset indica segmentul din pagina folosit pentru transfer. daca folosesti o
pagina intreaga atunci length=0x1000 si offset=0. bio-urile intern au un
contor (bi_vcnt) care indica pozitia unde este pus urmatorul bio_vec.
si deci totusi ce reprezinta eroarea aia? ca imi da si mie, si nu o inteleg
(si ca sa nu ai dubii, eu folosesc o singura pagina).

[666] http://cs.pub.ro/~pso/lxr/source/fs/bio.c?v=linux-2.6.24.2#369<http://cs.pub.ro/%7Epso/lxr/source/fs/bio.c?v=linux-2.6.24.2#369>



-- 
Alexandru Moşoi
http://alexandru.mosoi.googlepages.com

Please avoid sending me Word or PowerPoint attachments.
See http://www.gnu.org/philosophy/no-word-attachments.html
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://cursuri.cs.pub.ro/pipermail/pso/attachments/20080519/5dd2f8ea/attachment.html 


More information about the pso mailing list