[pso] __bio_kmap_atomic

Lucian Cojocar cojocar at rosedu.org
Mon May 3 19:51:57 EEST 2010


On 05/03/2010 07:46 PM, Razvan Deaconescu wrote:
> 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?
> 
Aş fi vrut să menţin sumele de control în memorie; să reduc numărul de
operaţii I/O (mai ales că se fac în locuri diferite pe disc).

Lucian

> 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