[pso] [Tema 3][lin] Diverse intrebari

Tiberiu Popa tiberiu.popa at cti.pub.ro
Mon Apr 25 16:01:20 EEST 2011


Salut!

Am si eu cateva intrebari:

1. Ce buffere invalideaza invalidate_bdev (cumva buffer_head ca in ultimele
laboratoare)? Si daca tot trebuie sa apelez sync_blockdev si invalidate_bdev
impreuna, trebuie s-o fac atomic? Ma gandesc ca daca s-ar procesa cereri de
read/write intre cele doua ar fi ca si cum n-am fi apelat sync.

2. In functia make_request [1] (apelata de md_make_request, care este un
make_request_fn), pe ramura rw == READ se apeleaza generic_make_request pe
un bio clonat. Cum este posibil (generic_make_request va apela eventual un
alt make_request_fn)? Am incercat si in tema mea, pe ramura cu READ merge sa
dau submit_bio, pe cealalta se blocheaza chiar si cu un singur submit_bio
(dar merge cu waitqueues).

3. Din cate am observat, functia mea de make_request primeste doar bio-uri
de urmatorul tip: bi_sector - divizibil cu 8, bi_vcnt == 1, bi_idx == 0,
bio_sectors(bio) == 8. Din cate vad, imi da requesturi de 4K (fix o pagina).
Pot primi si requesturi cu bi_vcnt > 1? Campul bv_len din struct bio_vec e
mereu divizibil cu 512 (sau pot sa primesc de exemplu cate un byte din 512
pagini diferite)?

Sarbatori fericite!
Tibi

[1] http://lxr.linux.no/linux+v2.6.38/drivers/md/raid1.c#L763
[2] http://lxr.linux.no/linux+v2.6.38/drivers/md/md.c#L284
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/pso/attachments/20110425/b3afc5d1/attachment.htm>


More information about the pso mailing list