2.4.22 -> kmalloc je implementovan v slab.c
cache_sizes je pole struktur cahce_sizes_t kterazto obashuje ukazatel na strukturu kmem_cache_t ktera obsahuje LIST plnejch,castecne a volnejch (slabs_full,slabs_partial,slabs_free) ale krom jineho taky obsahuje cleny tykajici se dle meho skromneho nazoru colorovani.
size_t colour; /* cache colouring range */
212 unsigned int colour_off; /* colour offset */
213 unsigned int colour_next; /* cache colouring */
jak to tedy je s tim barvenim ?
Tohleto je jiný druh barvení --- barvení alokace jednotlivých objektů. Bude to popsáno v dalším díle, který bude o mapování paměti a alokaci objektů. Barvení alokace stránek Linux nemá.
A co patche na linuxove jadro od Jasona Papadopoulose? Neni toto prave barveni cache jako ve FreeBSD? Nicmene mi to tenkrat moc nefungovalo :(
http://groups.google.com/groups?q=page_color+linux&hl=en&lr=&ie=UTF-8&oe=utf-8&selm=20030223234012%244db7%40gated-at.bofh.it&rnum=7
http://groups.google.com/groups?q=page+coloring+linux&hl=en&lr=&ie=UTF-8&oe=utf-8&selm=3.0.6.32.20030104233111.007ed3c0%40boo.net.lucky.linux.kernel&rnum=9
http://groups.google.com/groups?q=page_color+linux&hl=en&lr=&ie=UTF-8&oe=utf-8&selm=20030115054009%246fe2%40gated-at.bofh.it&rnum=10
Diky za info,
nebude to take lahkeeee :-)))
BTW: Mozna by za zminku stala zajimava site
http://lxr.linux.no - Crossrefernce Linux kernel...
> Pole těchto struktur je staticky alokováno při startu systému.
Takže po změně velikosti paměti musím znovu přeložit jádro?
Není v bss. Pojmem staticky jsem myslel, že se za běhu nemění. Po změně velikosti paměti se musí restartovat (Linux ani FreeBSD nemají a asi nikdy nebudou mít možnost přidávání paměti za běhu).
Never say never. Pote co jsem videl co za problemy resi nektere z patchu na http://lse.sourceforge.net/numa/status/, tak bych si netroufal tvrdit, ze nekdo neco takoveho nenapise. Myslim ze prvni krok, ktery kvuli velkym NUMA systemum bude treba udelat je, ze pole struktur struct page bude muset byt rozsekano na kousky a pokud mozno ulozeno tak, aby cast tohoto pole popisujici stranky konkretniho NUMA uzlu bylo uvnitr tohoto uzlu (coz nebude zas tak tezke - viz discontigmem patche). No a odsud je uz jen krucek k pridavani novych struktur struct page z nove vznikleho NUMA uzlu.
Ja fakt s uzasem hledim, jaky kus prace lide od SGI odvedli.
-Yenya
něco o memory hotplug je tady:
http://people.valinux.co.jp/~iwamoto/mh.html
Chtel bych se zeptat, v prvnim dile jste zminoval, ze NT maji lepsi system maskovani preruseni. Jsem rad, ze mi konecne nekdo vysvetlil, proc na Pentiu 133 mohu v NTckach prehravat mp3ky bez jakehokoli zasekavani (i kdyz mechanika zurive cte a disk swapuje), ale v Linuxu to dela potize. Uvazuje nekdo o tom, to v Linuxu nejak predelat? Bylo by to docela fajn, ne? Diky
Mne to zase pomohlo pochopit bluescreen hlasku IRQ_LESS_OR_EQUAL :-)
O předělání maskování interruptů se neuvažuje, protože by se pak musely přepsat všechny ovladače. Je třeba si koupit zvukovou kartu s velkým bufferem. Pokud je problém zasekávání způsoben schedulerem, pak pomůže jádro 2.6, které má scheduler vylepšený --- nebo tomu přehrávači dát prostě vysokou prioritu.