Nemel byste||(by jste) oznacovat BLEK.a za idiota... Bud je mu to jedno nebo mu to spusti hluboke deprese.. Mel byste se zamyslet nad tim, kdo je tady idiot.. Jsou tu minimalne dva idioti...Jeden jsem ja a druhy??? Hadejte...
Já nejsem idiot inteligenčně (nebyla mi diagnostikována idiocie, ale porucha osobnosti), ale ze sociálního hlediska idiot jsem. Mám EQ 40. Kdybych měl IQ 40, tak už by to na idiocii bylo.
ano ale dost psychologou zastava nazor ze EQ/IQ/ a ine ?Q su viacmenej len informacne. (naspriklad nedostatocna slovna zasova nieje zavysla na inteligencii ale napriek tomu ti moze u niektorych IQ testou dost pokazit skore)
EQ40: z toho bych si nic nedělal. já mám EQ105 a přesto jsem se s příznaky popsanými minule dokázal téměř ztotožnit. neberte tyhle pseudo-testy tak vážně.
Jsem sociální idiot. Nebyl jsem tu, protože jsem stahoval informace o hardwaru a nyní začnu zkoumat, jak synchronizovat CPU cache s PCI busmasterem. BTW nerozumí tomu někdo? Myslel jsem, že se to synchronizuje automaticky, ale ono ne :-/
Mam pocit, ze jsem nekde cetl, ze PCI busmaster zneplatnuje zmenena data v cache CPU stejnym zpusobem/protokolem, jako si zneplatnuji polozky dve CPU navzajem v SMP. Ale kdybys me zabil, tak si nevzpomenu jake architektury se to tykalo ... a sazka 100%x86 je u mne dost riskantni, klidne to mohla byt alpha, ppc, mips ... fakt uz nevim.
Zkusil bych najit primo dokumentaci k nejakemu PCI busmaster chipu. Jestli neco nebude pod NDA (mozna nejaka VIA? ale ti maji vsechno ziskana reverse engineeringem), tak by se to z toho mozna dalo vycist.
Vetsinou to tak dela, ale v urcitych pripadech muze PCI zarizeni udelat transakci, ve ktere urci, ze se cache nemuseji synchronizovat, a ony se pak nesynchronizuji ... dela to High definition audio na ICH7 (na ICH6 se s cachemi synchronizuje spravne). Dela se to jenom na PCIE, nebo i na PCI?
Takze jedna moznost je donutit to zarizeni, aby takove cunarny nedelalo (je-li k nemu nejaka dokumentace ... mozna staci jenom prehodit nejaky bit nekde v conf prostoru PCI), druha moznost je nejak odhadnout kdy k tomu mohlo dojit a nejak donutit cache, aby se syncly, nebo aspon zneplatnily, to imho jde ...
Mezi PCI a PCI express by snad nemel byt v protokolu rozdil ... jenomze tyhle drobne zivot zneprijemnujici featury se casto dostanou i nekam, kde vyrobce rika, ze jsou obe zarizeni stejna :-(.
No ... nejdulezitejsi otazka je, jak jsi na tom s dokumentaci.
Syncnutí těch cachí pomocí WBINVD ten problém sice zdánlivě vyřeší (zvukovka už hraje a netimeoutuje), ale 100% korektní to není --- Athlon má totiž takovou featuru, že dělá spekulativní označování cachových řádek jako dirty --- vypadá to tak, že procesor uvidí instrukci pro zápis, nahraje cachovou řádku a označí ji jako "MODIFIED" (ale ještě do ní nezapíše) --- a pokud se tato větev programu neprovedla, tak tu stejnou cachovou řádku zapíše do paměti. Pokud do té paměti mezitím zapisoval busmaster, tak se zápis busmasteru ztratí. Na tomhle se již spálili vývojáři 3D grafiky --- u zvuku to nejhorší možnou škodu může napáchat jako praskání v nahrávaných datech, ale korektní to není. Správné je tu paměť označit jako necachovatelnou, což je hnus (není pak možno používat 4M stránky).
Intel ve sve specifikaci kdysi rekl, ze neni podporovano, kdyz jedna pamet je mapovana pres vic ruznych cache-policy. Tak si to AMD vzalo za sve a takhle to implementovalo :-/
Donutit audio nejspis nejde, aby cache dodrzovalo --- uz dlouho jsem na nem menil vsecky mozne bitiky a bez vysledku. Tak to budu muset namapovat v modu uncached.
Co namapovat jedno "okno" uncached a do toho si nechap psat, druhe cached, s tim si hrat a obcas je prohodit? Otazka je, jak moc realtime to potrebujes - na nahravani, nebo prehravani muziky/filmu muzou byt hodne velke latence ...
To nevadí, že se nebude cachovat, ty datové toky u zvukovky jsou stejně minimální (šlo by to ještě namapovat write-combining, ale pak by mohl být problém s programy, které si ten buffer zvukovky přímo namapují a zapisují do něj --- neflushnou totiž WC buffer). Spíš víc vadí, že stránky kolem toho bufferu zvukovky, které s driverem zvukovky vůbec nesouvisí, nebudou moct být namapovány pomocí 4M položek.
Už jsem to dnes ve škole zkoušel a funguje to.
Nesynchronizuje a na nekterych architekturach (ARM) se nesynchronizuje ani cache s hlavni pameti a dokonce ani cachovane bloky pro dve ruzna namapovani shodne stranky do pameti (VIVT chache). Doporucuji se podivat na
v /usr/src/linux-git/Documentation/DMA-mapping.txt
Je mi lito, ze se trapis svym EQ. Kasli na nej. Dej si nejakou lepsi prezdivku, at se pokazde pri jejim psani necitis vyblite. A pak se podivej kolem sebe. Je zajimave, ze casto nejvetsich uspechu v urcitem oboru/sportu/dovednosti dosahuji lide, kteri prave v teto oblasti trpi nejakym fatalnim handicapem. Napr Armstrong, Terry Fox, Katerina Neumanova (doktori ji v mladi predpovidali, ze nebude kvuli pateri chodit), Jana Fletcherova (invalidni modelka). Dokonce se tvrdi, ze i Casanova spada do teto kategorie. Takze obecne se zda, ze velmi casto plati, ze ti, co dosahuji uspechu v dane oblasti snadneji bud zakrni nabo jsou jen slabe nad prumerem. Ti co maji objektivni potize, tak bud vec vzdaji a nebo se diky prekonavani prekazek, ktere ostatni vidi jako neprekonatelne, stavaji temi nejlepsimi.
Nejsi zadny blbec, Tvoje diplomka a clanky z rootu me vzdy zaujaly, tak se nejak vzchop a nedelej ze sebe mrsinu.
PS: sve EQ radeji vedet ani nechci a pres Velikonoce (a jiz vlasne nekolik let) BLEKuji, presto ze bych byl strasne rad s kamarady venku. Kdybych byl tak dobry programator jako Ty, mel bych jiz veci dopsane a mohl se toulat krasnou jarni krajinou.
Jo, ale tyto funkce na x86/x86_64 predpokladaji, ze cache jsou synchronizovany automaticky a nedelaji nic (krome vyprazdneni write bufferu, coz nestaci).
To psal Pavel Machek? Dozvedel jsem vcera ze Mikulas ma prej skejta kdesi doma
zapadlyho z detstvi - mohl bys Mikulase vytahnout ven a oba byste se mohli naucit na skejtu a delat pak frajery na matfyzu :)
Me teda osobne prijde ze vcerejsiho rozhovou ze Mikulas nema poruchu osobnosti, pouze ma samotarskou osobnost (coz vztahu se zenami podle me nijak nevadi), a nechce se mu se sebou vubec nic delat. Taky rikal ze ho netrapi porucha osobnosti ze nejaky formalni oznaceni mu je jedno, ze to co ho trapi je ze nema zenskou (chybi mu citovy vztah s zenskou).
Ale Mikulas tomu co si myslim stejne neveri a ja nejsem specialsta na psychologii. Dle meho nazoru na psychologii neni specialista ani ta psycholozka a jediny rozumny specialista je wikipedia prip. dalsi odborne stranky na Internetu.
Mne to nejde jezdit na skejtu, protoze uvazuju prilis pomalu. Muj mozek ma dlouhou pipelinu a neni schopen reagovat behem zlomku sekundy. Real-timove sporty mi moc nerikaji; nejde mi treba ani Quake, i kdyz ho obcas hraji.
2Clock: to asi nepsal Pavel Machek ... podle te posledni zminky o programovani ...
2Blek: Real-time sporty mi taky nic nerikaji, snad krome jezdeni v aute :-), Ale existuje i dost non-real-time sportu - treba lezeni na skaly, lezeni do podzemi, vandrovani (zvlast pokud clovek tahne v baglu baterky na cely weekend a notebooka, tak je to velmi sportovni :-)) ...
No jo no, BLEK. tam nebyl, protoze prohanel holky s pomlazkou. Ostatne to jak pomalu ted o velikonocich reaguje na prispevky vypovida o tom, ze s nepretrzitym sezenim pred pocitacem to nebude tak horke.
OK, člověk si má za svým názorem stát, tak se k němu tedy hlásím. Nepovažoval jsem svůj podpis a prosazování své osobnosti v této kauze za důležité, ale pokud vznikají zbytečné dohady, tak se hlásím.
Jinak na té x86 jsem si hned neuvědomil, že tam je synchronizace kvůli kompatibilitě s i386 řešená hardwarově. Bojuji teď víc s ARMem. Souhlasím s tím, že konzistence datové cache mezi CPU v SMP systému je výhodná. Nejsem si jistý, jestli hardware navíc pro synchronizaci mezi I a D-CACHE je potřebný. Myslím, že hardwarová synchronizace s PCI je zbytečná, protože by měla být hlídána drivery, ty mají úplnou informaci a mohou včas rozhodnout, co lze zahodit a co je potřeba sesynchronizovat. Nakonec ty různé prasárny typu lock; addl $0,0(esp) se snaží doplnit chybějící instrukce pro synchronizaci out of order instrukcí a cache. Takové PowerPC definuje vše potřebné pro synchronizace od začátku (eieio & comp) a oprasy typu lock také nepotřebuje. Používá rezervation lwarx a conditional save stwcx.
Docela by mě zajímalo, kolik všechny ty často i zbytečné synchronizace ubírají výkonu na SMP s x86_64. Pokud si vzpomínám dobře, tak tam má každý CPU vlastní řadič paměti a vše se vykomunikováná přes HT a že těch snoopů musí být. To je také možná ten důvod, proč spekulativní zápisy špiní cache. Doba vykomunikovíní přes MOESI protokol, jestli se má položka stát Owned+přetažení dat či jen Modified, je dlouhá a je proto výhodné operaci provést dříve, než je vlastně potřeba instrukci skutečně vykonat a a čakat na dokončení komunikace s jiným CPU.
Co se týče RT sportů (na rozdíl od RT systémů) a honění se za kulatým nesmyslem, tak je to u mě také dost bída (i když když jsem měl čas, tak jsem s kamarády cvičit chodil a i jsem se her zúčastňoval). Toulám se ale rád v přírodě a po horách a k duševní rovnováze by mi to stačilo, bohužel čas je nepřítel, nad kterým se velmi těžko vítězí. Každé prázdniny se alespoň snažím na pár týdnů zmizet a ten pocit, když člověk odjíždí a ví, že ho nikdo k řešení problémů prostě z promočeného stanu ve Skonsku či jinde nedostane je báječný. Zároveň si člověk času venku pak strašně o moc víc váží a i když se zrovna počasí nevyvede, tak to bere jako sedmé nebe. A musím říct, že když si v té době náhodou vzpomenu na počítače tak jen s ulehčením, že jsou daleko. I když po měsíci by na mě asi přišel silný absťák.
Synchronizace cache na SMP je nutna --- co je vsak uplne zbytecne a ubira tam vykon je specifikace, ze ostatni procesory musi videt zapisy jednoho procesoru v poradi, v jakem byly provedeny. --- kdysi to intel tak specifikoval, pri programovani je to celkem k nicemu (jedine uziti teto featury je, ze pri pousteni spinlocku neni treba atomicka instrukce) a kremiku to asi spotrebuje spousty. Vsecky ne-x86 procesory maji tohle poradi nespecifikovano.
BTW. na te PCI existuje drat, kterym by bus-master mohl signalizovat, ze nechce synchronizovat cache? Nebo je to az na PCIe? Nebo to muze delat jenom chipset a mimo nej jsou cache synchronizovany? Docela by me zajimalo, kde vsude mam problemy tohoto typu ocekavat.
Nejde jezdit na skejtu protoze uvazuju prilis pomalu -> ja pri jizde na skejtu vetsinou neuvazuju vubec
(a kdyz, tak casto o Ronje :) ) coz dokazuje ze rychlost uvazovani pri jizde na skejtu dulezita neni.
Muj mozek ma dlouhou pipelinu -> a) jak se definuje pipelina u mozku?, b) dokaz.
Neni schopen reagovat behem zlomku sekundy -> dokaz (Argument ze neni schopen reagovat v situaci
X jeste navic nedokazuje ze nebude schopen reagovat na skejtu.
Quake mi taky nejde. Zezacatku mi skejt taky nesel.