freenode/#sbcl - IRC Chatlog
Search
12:04:36
stassats
vm_prot_none doesn't help, but, OS_VM_PROT_WRITE does end up with Received signal 11 in non-lisp thread 9219342400, resignalling to a lisp thread.
12:56:53
stassats
pthread_join may be using a futex, so it wakes up the waiting thread, which destroys the stack and that futex call can't return?
13:17:07
stassats
and a test case: (loop repeat 1000 do (let ((sem (sb-thread:make-semaphore))) (loop repeat 10 collect (sb-thread:make-thread (lambda () (sb-thread:wait-on-semaphore sem)))) (sb-thread:signal-semaphore sem 10)))
13:24:40
stassats
https://github.com/openbsd/src/blob/b66614995ab119f75167daaa7755b34001836821/lib/libc/thread/rthread.c#L153
13:34:01
stassats
are we doing something wrong by freeing the stack after pthread_join? i don't know what other trigger to employ after which it's safe to free
13:37:22
stassats
how are other OSes do it? what did openbsd do before? is this only happening after the switch to futexes for sempahores?
13:55:08
stassats
i think i can try one last heuristic, is the value coming from a combination and that combination has no chance of being inlined
13:55:34
pfdietz
And is there a way to test if the property that transforms depend on is true? If nothing else, turning that on as a sanity check could find latent bugs.
14:26:55
stassats
one completely different solution, so i'm removing variables and change the order of LVAR writes, and stack-analyze doesn't like that
15:14:27
stassats
http://openbsd-archive.7691.n7.nabble.com/library-5771-rthreads-concurrent-pthread-exit-and-pthread-join-can-segv-tt189977.html
15:29:11
pfdietz
I don't think it's an accident that two of the most popular CLs are also the fastest to build (sbcl, ccl).
15:37:57
stassats
i'm still using i7-4770K, other than having 4 cores it's still as capable as five years ago (moore's law, where art thou)
15:38:41
pfdietz
Moore's law is over. Computer architecture is becoming a hot topic again. This has implications for programming languages and compilers.
15:39:37
stassats
and i'm really into that much parallel processing, so if all they do is go up to 128 cores, i think i'm good for another five years...
15:44:25
pfdietz
x86 has energy efficiency issues, and that will become more important, especially as the number of cores goes up.
15:44:26
stassats
and doing a full port is a good way to acquaint yourself with the backend and the runtime
15:44:42
pfdietz
For some applications energy cost over the lifetime of the hardware > hardware cost.
15:52:55
pfdietz
To get some idea of performance: this machine is building sbcl from scratch (using the last sbcl release) in almost exactly 2 minutes.
15:56:34
stassats
SBCL_MAKE_PARALLEL=8 is for make-host-2, but it's not as good when something goes wrong
17:53:53
flip214
real 1m38.045s including contribs for both SBCL_MAKE_*=6, Debian amd64 on i7-4810MQ