[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