[OSy] Nesrovnalost v testech pro 2. zadani

Martin Decky decky at dsrg.mff.cuni.cz
Tue Dec 2 13:44:01 CET 2008


Hezky den,

> Konkrétně se jedná o testy falloc1 a malloc1. V testu falloc1 se očekává že
> alokátor fyzických stránek bude při alokaci stránek ze segmentu KSEG0 vracet
> adresy z rozsahu <0x00000000, 0x1fffffff> a test samotný provádí posun
> těchto adres o 0x80000000.

Ano, to je naprosto v poradku, funkce frame_alloc() skutecne vraci 
ukazatele na fyzicke adresy (v zadani to sice neni uvedeno explicitne 
slovne, ale jmeno argumentu "paddr" to naznacuje).

Kdyz se nad tim zamyslite, je toto chovani pomerne logicke, protoze 
frame allocator musi byt schopen vracet i adresy tech fyzickych stranek, 
ktere nejsou identicky mapovany do KSEG0 (resp. KSEG1). Fyzicke adresy 
jsou v tomto pripade prirozenou a jednoznacnou reprezentaci.

> Naopak test malloc1 který testuje chování
> upraveného alokátoru paměti který by měl fungovat nad alokátorem fyzických
> stránek v segmentu KSEG0 očekává adresy z rozsahu <0x80000000, 0x9fffffff>.

To je take naprosto v poradku. Kernelovy heap allocator pouziva frame 
allocator jako svuj backend (podobne jako jej pouziva vma_alloc()), ale 
funkce malloc() vraci ukazatele na virtualni adresy, ktere jsou v ramci 
KSEG0 kernelem primo pouzitelne.

> Naše současná implementace fyzického alokátoru při alokaci ze segmentu KSEG0
> vrací adresy z rozsahu <0x80000000, 0x9fffffff> a tudíž testem falloc1
> neprochází z výše zmíněného důvodu. Chci se proto zeptat zda je chování
> které vyžadují testy v současné podobě závazné

Chovani, ktere vyzaduji testy, je zavazne a v tomto pripade neni
v rozporu se zadanim.


M.D.




More information about the NSWI004 mailing list