This shows you the differences between two versions of the page.
so2:laboratoare:lab07:exercitii [2018/04/11 08:02] ionel.ghita [[10.5p] Exerciții] |
so2:laboratoare:lab07:exercitii [2018/04/12 11:40] (current) elena.sandulescu [6. [2p] Prelucrarea cererilor din coada la nivel de bio] |
||
---|---|---|---|
Line 122: | Line 122: | ||
</note> | </note> | ||
- | Schimbați valoarea macroului ''MY_BLOCK_MAJOR'' la valoarea ''7''. Compilați modulul, copiați-l pe mașina virtuală și încărcați-l în nucleu. Observați că încărcarea eșuează întrucât există deja un alt driver/dispozitiv care are majorul ''7'' înregistrat în nucleu. | + | Schimbați valoarea macroului ''MY_BLOCK_MAJOR'' la valoarea ''254''. Compilați modulul, copiați-l pe mașina virtuală și încărcați-l în nucleu. Observați că încărcarea eșuează întrucât există deja un alt driver/dispozitiv care are majorul ''254'' înregistrat în nucleu. |
Restaurați valoarea ''240'' pentru macroul ''MY_BLOCK_MAJOR''. | Restaurați valoarea ''240'' pentru macroul ''MY_BLOCK_MAJOR''. | ||
Line 268: | Line 268: | ||
Folosiți macrourile [[https://elixir.bootlin.com/linux/v4.15/source/arch/x86/mm/highmem_32.c#L55|kmap_atomic]], respectiv [[https://elixir.bootlin.com/linux/v4.15/source/include/linux/highmem.h#L125|kunmap_atomic]] pentru maparea paginilor fiecărui bio și accesarea bufferelor acestuia. Pentru transferul efectiv, apelați funcția ''my_block_transfer'' implementată la exercițiul anterior. | Folosiți macrourile [[https://elixir.bootlin.com/linux/v4.15/source/arch/x86/mm/highmem_32.c#L55|kmap_atomic]], respectiv [[https://elixir.bootlin.com/linux/v4.15/source/include/linux/highmem.h#L125|kunmap_atomic]] pentru maparea paginilor fiecărui bio și accesarea bufferelor acestuia. Pentru transferul efectiv, apelați funcția ''my_block_transfer'' implementată la exercițiul anterior. | ||
- | Pentru testare folosiți fișierul de test ''ram-disk-test.c''. Îl compilați folosind, pe sistemul fizic, comanda<code> | + | Pentru testare folosiți fișierul de test ''ram-disk-test.c''. |
- | make -f Makefile.test | + | |
</code> | </code> | ||
- | și apoi îl rulați folosind, pe mașina virtuală QEMU, comanda<code> | + | îl rulați folosind, pe mașina virtuală QEMU, comanda<code> |
./ram-disk-test | ./ram-disk-test | ||
</code> | </code> |