|
01:41
FROGGS_ joined
01:48
ilbot3 joined
03:41
jackc2 joined
|
|||
| FROGGS_ | btw, nqp just works using debian++'s libatomoic_ops!! | 04:28 | |
|
04:30
vendethiel joined
|
|||
| nwc10 | good **, FROGGS_ | 04:51 | |
| FROGGS_ | aye | 04:57 | |
| (all tests pass) | 04:58 | ||
| which is a relief | 05:08 | ||
| now rakudo has to build, and I'm happy :o) | |||
| I've got a ppc64 machine now, but network isnt working yet... | 05:10 | ||
|
05:16
vendethiel- joined
07:13
domidumont joined
07:18
domidumont joined
08:14
FROGGS joined
|
|||
| jnthn | morning, #moarvm | 09:03 | |
| nwc10 | good *, jnthn | 09:04 | |
| I guess you have fewer FROGGSlets than FROGGS does :-) | |||
| jnthn | Indeed | ||
| nwc10 | this morning we had a bonus alarm clock that was requesting Cherios from about 06:20 onwards | ||
| jnthn | Also probably less capable of making coffee | ||
| nwc10 | or was it 06:00 | ||
| arnsholt | Tadpoles, surely, not FROGGSlets? =) | ||
| nwc10 | I forget | ||
| arnsholt | Those twenty minutes make little difference, in my recent experience =) | 09:05 | |
| jnthn only managed to get half the spoon of ground coffee into the machine's basket | |||
| nwc10 | bootstrapping problems again? | ||
| jnthn | Indeed | ||
| arnsholt | That's a particularly gnarly bootstrapping problem | 09:06 | |
| jnthn | .oO( particularly granually ) |
09:08 | |
| arnsholt | Point. In that case, I guess using a French press is better than an espresso machine, seeing how it lets you use a much coarser-grained approach | 09:11 | |
| Both in inputs and execution, come to think of it | |||
| jnthn | www.brendangregg.com/linuxperf.html is nice | 09:50 | |
| timotimo | quite | 09:53 | |
| last night before bed i was playing around with having a probe in malloc again | |||
| but for some reason the report only showed addresses, not function names for the stack traces | |||
| at first i tried running the whole recording thing with sudo (so i didn't have to attach it to a running process) and i thought that was the reason for missing symbols, but it turned out even when i gave every user on my system (that's not dangerous at all!) permission to use the debug/tracing stuff it still wouldn't show | 09:56 | ||
| jnthn | Won't something like perf or callgrind be able to tell you all the top malloc callers? | 09:57 | |
| timotimo | yup | 09:58 | |
| even with a read-out of the size parameter | |||
| you can insert a trace point into any library and output any parameters you like - in this case i had to use the name of the register that the calling convention would associate with the parameter i wanted because for some reason the name wasn't in there | 09:59 | ||
| jnthn | Maybe we mark the function as a static inline or so | 10:01 | |
| timotimo | a stackoverflow post says i might have to give perf report a "-g dwarf" parameter | 10:02 | |
| oh, i actually put a probe into libc, not into libmoar | |||
| okay, adding the probe to libmoar for "MVM_malloc size" also gives "sorry, we don't support this variable location yet." | 10:06 | ||
| it'd be helpful if it told what kind of variable location it's getting, but oh well | 10:07 | ||
| Too many( > 128) probe point found. | 10:08 | ||
| Failed to find symbol MVM_malloc in /home/timo/perl6/install/lib/libmoar.so | |||
| so much for our static inline :) | |||
| in any case, the malloc results are: 29.3% size=0x18, 9.19% size=0x8, 8.7% size=0x10, 8.3% size=0x30, 5.91% 0x28, 4.04% size=0x38, 3.77% 0x40, 3.11% 0x20, 2.42% 0xc | 10:22 | ||
| after that there's 0x2, 0x4, 0x1c, 0x6, 0x60, 0x68, 0x24, 0xa, 0x78, 0x2c | 10:23 | ||
| the last of those was 0.51% | |||
| this is for perl6 -e '' basically | |||
| jnthn | m: say 0x18 | 10:24 | |
| camelia | rakudo-moar 84b4c8: OUTPUTĀ«24ā¤Ā» | ||
| jnthn | Hm, that could be many things :) | 10:25 | |
| timotimo | right, without a stack trace, it's not easy to say | 10:26 | |
| oh, whoops :) | 10:31 | ||
| seems like --call-graph dwarf is the flag you actually have to use, but now it's saying it lost "10 chunks" when processing the events | |||
| so, looks like too much data on the callstack | 10:32 | ||
| given it "processed 195984 events" that could be a lot. record_size is described as "if record_mode is 'dwarf', max size of stack recording (<bytes>) default: 8192 (bytes)" | |||
| m: say (195984 * 8) / (1024 * 1024) | 10:33 | ||
| camelia | rakudo-moar 84b4c8: OUTPUTĀ«1.495239ā¤Ā» | ||
| timotimo | my system is now screaming about the full hard drive | ||
| moritz | get a gag order for your system :-) | 10:34 | |
| timotimo | i have stacks now! i lost some data again, but oh well ... | 10:37 | |
| gist.github.com/timo/7b985bbd50a93...3d8ad65887 | 10:39 | ||
| i'm not sure what those symbols "deserialize" are about | 10:43 | ||
| impressive, we apparently call MVM_malloc with a size of 1 a few times even | 10:55 | ||
| nwc10 | there was a reason that Devel::NYTProf got compressed file output *before* Test::Harness got refactored... | 10:56 | |
| (even one profile file written out uncompressed was larger than my laptop's drive) | 10:57 | ||
| timotimo | :D | 10:59 | |
| arnsholt | timotimo: malloc(1) sounds like the malloc(size_to_allocate > 0 ? size_to_allocate : 1) hack that is (was?) in CStruct | 11:01 | |
| Come to think of it, that might be copied from P6opaque | |||
| timotimo | haha, ugh :D | 11:03 | |
| but i thought malloc(0) gives you a valid pointer? | |||
| or rather | |||
| arnsholt | Nope | ||
| timotimo | a pointer that is valid to call free on | ||
| arnsholt | malloc(0) is undefined behaviour | ||
| =) | |||
| If it's purely MoarVM-internal, it might be possible to replace it with size_to_allocate > 0 ? malloc(size_to_allocate) : NULL | 11:05 | ||
| Given that there's nothing to allocate memory for, it should never be accessed either | |||
| timotimo | doesn't crash on perl6 -e '' at least | ||
|
11:18
cygx joined
|
|||
| cygx | arnsholt: malloc(0) is implementation-defined, not undefined | 11:18 | |
| it may return NULL or a valid pointer | 11:19 | ||
| either way, you're fine to call free() on it | |||
| arnsholt | Oh, right | ||
| ISTR it causing a crash though | |||
| cygx | at last, that's how it's supposed to work | ||
| *at least | |||
| arnsholt | Hmm | 11:20 | |
| I remember there being a good reason for this, but now that I reread the manpage I'm not sure anymore what it was | |||
| cygx | well, according to the C99 rationale, not that good a reason (a combination of existing practice/implementation and the decision not to introduce zero-length objects for this purpose alone) | 11:25 | |
| arnsholt | Oh, maybe it's a MSVC-affordance? | 11:27 | |
| That being C89, not C99 | |||
|
11:57
zakharyas joined
13:55
colomon joined
14:03
brrt joined
|
|||
| brrt | good * #moarvm | 14:40 | |
|
15:21
FROGGS[mobile] joined
|
|||
| FROGGS[mobile] | lol, building the setting only took 5.44 hours on my ppc64 qemu machine /o\ | 15:22 | |
| diakopter | o_O | 15:31 | |
| FROGGS[mobile]: did the libatomicops patches help the other thing? | |||
| FROGGS[mobile] | the debian lib (including said patches) makes moarvm work | 15:34 | |
| dang, the timings before were for mips, not ppc64 | 15:35 | ||
| diakopter: dunno what thing you are talking about | |||
| it fixes the nqp segfault I posted the other day | 15:36 | ||
| diakopter | yes, that's the thing | 15:37 | |
| FROGGS[mobile] | then the answer is yes | ||
| diakopter | oh, your mention of ppc64 instead of mips is what confused me | ||
| FROGGS[mobile] | yeah, sorry for that | 15:38 | |
| I keep loosing track of my machines | |||
|
17:43
domidumont joined
18:27
FROGGS joined
19:48
brrt joined
20:25
dalek joined
|
|||
| timotimo | i wonder if we should make the smallest bin for our fixedsize allocator 4 byte on an arch with 32bit pointers | 20:55 | |
| as far as i can tell the biggest reason to have the smallest bin 8 bytes big is that it has to fit a pointer for the free list to work | 20:56 | ||
| FROGGS | .tell nebuchadnezzar nqp and rakudo pass their tests on mips64el, it just takes ages to build and test | 21:16 | |
| yoleaux2 | FROGGS: I'll pass your message to nebuchadnezzar. | ||
|
21:38
colomon_ joined
21:56
colomon joined
22:16
colomon joined
|
|||