Perl 6 - the future is here, just unevenly distributed

IRC log for #divine, 2018-02-12

| Channels | #divine index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:48 divine-buildbot Build divine-nightly-release #300 is complete: Success [build successful] - https://paradise.fi.muni.cz/builds/#builders/2/builds/300
02:56 ilbot3 joined #divine
02:56 Topic for #divine is now DIVINE | http://divine.fi.muni.cz | http://irclog.perlgeek.de/divine/
03:55 divine-buildbot Build divine-nightly-debug #305 is complete: Success [build successful] - https://paradise.fi.muni.cz/builds/#builders/13/builds/305
06:57 divine-buildbot Build divine-nightly-semidbg #11 is complete: Success [build successful] - https://paradise.fi.muni.cz/builds/#builders/15/builds/11
14:19 xstill mornfall: budeš tento týden někdy na FI?
14:19 mornfall ve čtvrtek
14:19 mornfall adamat: ~xrockai/src/divine/work/sym-subst-3.bc
14:21 mornfall adamat: houby, to sice hází chyby ale asi ještě jinde...
14:22 mornfall blbý je, že --track-origins ve valgrindu vůbec nefunguje :|
14:29 xstill mornfall: mám totiž problém s interferencí mezi weakmem a redukcí, čtvrtek je docela daleko, tak to zkusím zruba popsat tu. Weakmem tak jak je teď totiž nefunguje skrz to mazání interruptů při opouštění masky. Já jsem se totiž spoléhal na to, že to co se děje uvnitř store bufferů je zhlediska prokládání nezajímavé a podstatné jsou jen ty interrupty, které se tam vloží za
14:29 xstill tím (a které jsou vně masek). Jenže tohle funguje jen pokud je tam flusher thread, pokud je weakmem líný, tak může zapisovat i jiné věci, ty co už jsou nějakou dobu v bufferu (což vlastně mohl i před tím, když to přepadlo za bound), no a tyhle věci teď schovám z hlediska redukce, takže se to celé rozbije. Jenže, když tu masku vyhodím, tak dostávám výraznou penalizaci, něco
14:29 xstill jako 5 hodin 10 namísto 1 hodina 45 a 3928 k stavů místo 24 k stavů na všech TSO benchmarkách, protože tohle zas sbírá věšechny interference, takže každá weakmem operace interferuje se všema ostatníma (zhruba). Tak řeším jak to udělat líp. Jedna možnost by byla říct, že ty weakmem funkce se neanotují na interrupty, s výjimkou té věci co skutečně čte/zapisuje. To by pak mělo
14:29 xstill být v pořádku snad (pro korektní implementaci weakmem samozřejmě). Co si o tom myslíš? Nevýhoda je, že weakmem transformace musí vědět o interrupt hypercallech. Výhoda by naopak byla, že by ty interference sety o tom nevěděli vůbec, takže by to mohlo trochu zrychlit interpretaci.
14:30 xstill je to compare --instance-id 2063706 --instance-id 2067422 (první je s mazáním interruptů, druhá je bez)
14:31 xstill (jelikož je tam změřený i SC hashset, tak je asi lepší se podívat na tso tag v --by-tag pro sumární data)
14:36 mornfall no, řešení, kde manipulace se store bufferem nebude obsahovat interrupty mem interrupty je asi rozumný... asi bych to zkusil formulovat tak, že podobně jako skipcfl by se do interrupt pass přidala skipmem anotace a flush do paměti by se outsorcoval na noinline funkci bez té anotace?
14:40 xstill jo, něco takového jsem taky zamýšlel, jen budu muset prověřit, že se můžu spolehnout, že mi clang zainlinuje všechny ty operace nad datovýma strukturama, který jsou implementovaný v brick-data nebo diosu, ale to snad zainlinuje
14:41 mornfall (když ta noinline fce dostane ukazatel a hodnotu jako parametry, tak by to mělo vyrobit přesně ten žádoucí interrupt.mem a nic jinýho)
14:42 xstill zároveň se tím vyřeší i to, že bariéra je teď úplně neviditelná, což je hodně špatně
14:44 xstill ok, ještě si rozmyslím, že nepřehlížím nějakou další interferenci a udělám to
14:58 xstill boha jeho, ten thecus je hroznej krám, se snažím smazat nějaký starý zálohy a už to běží několik hodin a smazalo to pár giga
21:11 ChanServ joined #divine

| Channels | #divine index | Today | | Search | Google Search | Plain-Text | summary