[pso] __bio_kmap_atomic

Razvan Deaconescu razvan.deaconescu at cs.pub.ro
Mon May 3 19:46:32 EEST 2010


On Mon, 2010-05-03 at 19:07 +0300, Lucian Cojocar wrote:
> Salut,
> 
> am văzut că există macroul __bio_kmap_atomic, dar nu şi __bio_kmap.
> 
> Din ce am înţeles kmap_atomic este folosit pentru mapările temporare în
> spaţiul virtual de 128 MB al nucleului.

Corect.

> Aş vrea să mapez permanent pagini fizice (cu kmap) pentru că:
> - maparea îmi trebuie pe toată durata de viaţă a modului (motive de
> performanţă)
> - maparea e relativ mare (2MB) şi e accesată des
> - maparea se face din context proces
> 
> Sunt valide motivele date?

Nu imi dau seama de ce ai avea nevoie de mapare pe intreaga durata a
modulului cat timp bio-urile sunt schimbate de subsistemul I/O ...
well ... ca sosetele. Ce fel de mapare iti ocupa 2MB?

Maparea se poate face din context proces si cu __bio_kmap_atomic.
Restrictia este sa nu folositi actiuni blocante intre ___bio_kmap_atomic
sau __bio_kunmap.

> E recomandat în cazul de faţă să mapez fiecare pagină cu kmap, având în
> vedere că paginile sunt folosite de struct bio?

Nu bag in mana in foc, dar presupun ca merge.

> Funcţia dată de câmpul bi_end_io din structura bio este apelată în
> context întrerupere?

Da.

Razvan



More information about the pso mailing list