Below you find the gdb thread infos for the single idling process (recall: all processes have 100% but one, which idles). As you can see, there a quite a few threads stuck in some kind of TCMalloc spin lock.
Most backtraces in those threads contain a free(), but there are also allocs()
(see thread 68 and 79 backtraces at end for examples).
In fact, in the phase of my program where the deadlock happens, all threads do
perform many dynamic allocations and freeings (let’s say thousands). I guess I
could implement some manual pooling, but I thought TCMalloc would manage
everything fast enough and transparently in the background.
Have you ever encountered something like this?
I am using gperftools-2.5 btw.
Thanks!
Tim
(gdb) info threads
Id Target Id Frame
88 Thread 0x7f62aa9cf700 (LWP 708) "hpxvr" 0x00007f62af756d13 in epoll_wait
() from /usr/lib64/libc.so.6
87 Thread 0x7f62aa1ce700 (LWP 709) "hpxvr" 0x00007f62af74bdfd in poll ()
from /usr/lib64/libc.so.6
86 Thread 0x7f62a51b6700 (LWP 714) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
85 Thread 0x7f62a49b5700 (LWP 715) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
84 Thread 0x7f62a41b4700 (LWP 716) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
83 Thread 0x7f62a39b3700 (LWP 717) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
82 Thread 0x7f62a31b2700 (LWP 718) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
81 Thread 0x7f62a29b1700 (LWP 719) "hpxvr" 0x00007f62af756d13 in epoll_wait
() from /usr/lib64/libc.so.6
80 Thread 0x7f62a21b0700 (LWP 720) "hpxvr" 0x00007f62b313f1bd in
__lll_lock_wait () from /usr/lib64/libpthread.so.0
79 Thread 0x7f62a19af700 (LWP 721) "hpxvr" 0x00007f62b2af5626 in sys_futex
(v3=0, a2=0x0, t=0x7f60c74a1250, v=2, o=128, a=0x7f62b2d22f80
<tcmalloc::Static::pageheap_lock_>)
at ./src/base/linux_syscall_support.h:2359
78 Thread 0x7f62a11ae700 (LWP 722) "hpxvr" 0x00007f62b313f1bd in
__lll_lock_wait () from /usr/lib64/libpthread.so.0
77 Thread 0x7f62a09ad700 (LWP 723) "hpxvr" 0x00007f62b2af5626 in sys_futex
(v3=0, a2=0x0, t=0x7f60a53fad30, v=2, o=128, a=0x7f62b2d22f80
<tcmalloc::Static::pageheap_lock_>)
at ./src/base/linux_syscall_support.h:2359
76 Thread 0x7f62a01ac700 (LWP 724) "hpxvr" 0x00007f62b2af5626 in sys_futex
(v3=0, a2=0x0, t=0x7f619c3a2230, v=2, o=128, a=0x7f62b2d22f80
<tcmalloc::Static::pageheap_lock_>)
at ./src/base/linux_syscall_support.h:2359
75 Thread 0x7f629f9ab700 (LWP 725) "hpxvr" 0x00007f62b313f1bd in
__lll_lock_wait () from /usr/lib64/libpthread.so.0
74 Thread 0x7f629f1aa700 (LWP 726) "hpxvr" 0x00007f62b2af5626 in sys_futex
(v3=0, a2=0x0, t=0x7f60cbcaac60, v=2, o=128, a=0x7f62b2d22f80
<tcmalloc::Static::pageheap_lock_>)
at ./src/base/linux_syscall_support.h:2359
73 Thread 0x7f629e9a9700 (LWP 727) "hpxvr" 0x00007f62b2af5626 in sys_futex
(v3=0, a2=0x0, t=0x7f615bb21d30, v=2, o=128, a=0x7f62b2d22f80
<tcmalloc::Static::pageheap_lock_>)
at ./src/base/linux_syscall_support.h:2359
72 Thread 0x7f629e1a8700 (LWP 728) "hpxvr" 0x00007f62b313f1bd in
__lll_lock_wait () from /usr/lib64/libpthread.so.0
* 71 Thread 0x7f629d9a7700 (LWP 729) "hpxvr" 0x00007f62b2af5626 in sys_futex
(v3=0, a2=0x0, t=0x7f60f14f5250, v=2, o=128, a=0x7f62b2d22f80
<tcmalloc::Static::pageheap_lock_>)
at ./src/base/linux_syscall_support.h:2359
70 Thread 0x7f629d1a6700 (LWP 731) "hpxvr" 0x00007f62b2af5626 in sys_futex
(v3=0, a2=0x0, t=0x7f60e0cd3060, v=2, o=128, a=0x7f62b2d22f80
<tcmalloc::Static::pageheap_lock_>)
at ./src/base/linux_syscall_support.h:2359
69 Thread 0x7f629c9a5700 (LWP 732) "hpxvr" 0x00007f62b2af5626 in sys_futex
(v3=0, a2=0x0, t=0x7f62947936f0, v=2, o=128, a=0x7f62b2d22f80
<tcmalloc::Static::pageheap_lock_>)
at ./src/base/linux_syscall_support.h:2359
68 Thread 0x7f629c1a4700 (LWP 733) "hpxvr" 0x00007f62b2af5626 in sys_futex
(v3=0, a2=0x0, t=0x7f60ab4272f0, v=2, o=128, a=0x7f62b2d22f80
<tcmalloc::Static::pageheap_lock_>)
at ./src/base/linux_syscall_support.h:2359
67 Thread 0x7f629b9a3700 (LWP 734) "hpxvr" 0x00007f62b2af5626 in sys_futex
(v3=0, a2=0x0, t=0x7f618fb89250, v=2, o=128, a=0x7f62b2d22f80
<tcmalloc::Static::pageheap_lock_>)
at ./src/base/linux_syscall_support.h:2359
66 Thread 0x7f629b1a2700 (LWP 735) "hpxvr" 0x00007f62b2af5626 in sys_futex
(v3=0, a2=0x0, t=0x7f6030310250, v=2, o=128, a=0x7f62b2d22f80
<tcmalloc::Static::pageheap_lock_>)
at ./src/base/linux_syscall_support.h:2359
65 Thread 0x7f629a9a1700 (LWP 736) "hpxvr" 0x00007f62b2af5626 in sys_futex
(v3=0, a2=0x0, t=0x7f60142d8250, v=2, o=128, a=0x7f62b2d22f80
<tcmalloc::Static::pageheap_lock_>)
at ./src/base/linux_syscall_support.h:2359
64 Thread 0x7f6293792700 (LWP 737) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
63 Thread 0x7f6117a9a700 (LWP 1005) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
62 Thread 0x7f6117699700 (LWP 1006) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
61 Thread 0x7f6117298700 (LWP 1007) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
60 Thread 0x7f6116e97700 (LWP 1008) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
59 Thread 0x7f6116a96700 (LWP 1009) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
58 Thread 0x7f6116695700 (LWP 1010) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
57 Thread 0x7f6116294700 (LWP 1011) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
56 Thread 0x7f6115e93700 (LWP 1012) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
55 Thread 0x7f6115a92700 (LWP 1013) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
54 Thread 0x7f6115691700 (LWP 1014) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
53 Thread 0x7f6115290700 (LWP 1015) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
52 Thread 0x7f6114e8f700 (LWP 1016) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
51 Thread 0x7f6114a8e700 (LWP 1017) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
50 Thread 0x7f611468d700 (LWP 1018) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
49 Thread 0x7f611428c700 (LWP 1019) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
48 Thread 0x7f6113e8b700 (LWP 1020) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
47 Thread 0x7f6113a8a700 (LWP 1021) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
46 Thread 0x7f6113689700 (LWP 1022) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
45 Thread 0x7f6113288700 (LWP 1023) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
44 Thread 0x7f6112e87700 (LWP 1024) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
43 Thread 0x7f6112a86700 (LWP 1025) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
42 Thread 0x7f6112685700 (LWP 1026) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
41 Thread 0x7f6112284700 (LWP 1027) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
40 Thread 0x7f6111e83700 (LWP 1028) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
39 Thread 0x7f6111a82700 (LWP 1030) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
38 Thread 0x7f6111681700 (LWP 1031) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
37 Thread 0x7f6111280700 (LWP 1032) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
36 Thread 0x7f6110e7f700 (LWP 1035) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
35 Thread 0x7f6110a7e700 (LWP 1036) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
34 Thread 0x7f611067d700 (LWP 1037) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
33 Thread 0x7f611027c700 (LWP 1038) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
32 Thread 0x7f6107e7b700 (LWP 1041) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
31 Thread 0x7f6107a7a700 (LWP 1042) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
30 Thread 0x7f6107679700 (LWP 1044) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
29 Thread 0x7f6107278700 (LWP 1046) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
28 Thread 0x7f6106e77700 (LWP 1047) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
27 Thread 0x7f6106a76700 (LWP 1048) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
26 Thread 0x7f6106675700 (LWP 1049) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
25 Thread 0x7f6106274700 (LWP 1051) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
24 Thread 0x7f6105e73700 (LWP 1052) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
23 Thread 0x7f6105a72700 (LWP 1053) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
22 Thread 0x7f6105671700 (LWP 1054) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
21 Thread 0x7f6105270700 (LWP 1055) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
20 Thread 0x7f6104e6f700 (LWP 1056) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
19 Thread 0x7f6104a6e700 (LWP 1057) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
18 Thread 0x7f610466d700 (LWP 1058) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
17 Thread 0x7f610426c700 (LWP 1059) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
16 Thread 0x7f6103e6b700 (LWP 1060) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
15 Thread 0x7f6103a6a700 (LWP 1061) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
14 Thread 0x7f6103669700 (LWP 1062) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
13 Thread 0x7f6103268700 (LWP 1063) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
12 Thread 0x7f6102e67700 (LWP 1064) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
11 Thread 0x7f6102a66700 (LWP 1065) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
10 Thread 0x7f6102665700 (LWP 1066) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
9 Thread 0x7f6102264700 (LWP 1067) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
8 Thread 0x7f6101e63700 (LWP 1068) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
7 Thread 0x7f6101a62700 (LWP 1069) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
6 Thread 0x7f6101661700 (LWP 1070) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
5 Thread 0x7f6101260700 (LWP 1071) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
4 Thread 0x7f6100e5f700 (LWP 1072) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
3 Thread 0x7f6100a5e700 (LWP 1073) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
2 Thread 0x7f610065d700 (LWP 1074) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
1 Thread 0x7f62b63a9800 (LWP 707) "hpxvr" 0x00007f62b313c6d5 in
pthread_cond_wait@@GLIBC_2.3.2 () from /usr/lib64/libpthread.so.0
thread 79:
#0 0x00007f62b2af5626 in sys_futex (v3=0, a2=0x0, t=0x7f60c74a1250, v=2,
o=128, a=0x7f62b2d22f80 <tcmalloc::Static::pageheap_lock_>) at
./src/base/linux_syscall_support.h:2359
#1 base::internal::SpinLockDelay (w=0x7f62b2d22f80
<tcmalloc::Static::pageheap_lock_>, value=2, loop=<optimized out>) at
./src/base/spinlock_linux-inl.h:84
#2 0x00007f62b2af5534 in SpinLock::SlowLock (this=this@entry=0x7f62b2d22f80
<tcmalloc::Static::pageheap_lock_>) at src/base/spinlock.cc:119
#3 0x00007f62b2af7240 in Lock (this=<optimized out>) at src/base/spinlock.h:71
#4 SpinLockHolder (l=<optimized out>, this=<synthetic pointer>) at
src/base/spinlock.h:133
#5 do_free_helper (invalid_free_fn=0x7f62b2ae8bb0 <(anonymous
namespace)::InvalidFree(void*)>, size_hint=0, use_hint=false,
heap_must_be_valid=true, heap=<optimized out>,
ptr=0xc332b0000) at src/tcmalloc.cc:1312
#6 do_free_with_callback (invalid_free_fn=0x7f62b2ae8bb0 <(anonymous
namespace)::InvalidFree(void*)>, size_hint=0, use_hint=false, ptr=0xc332b0000)
at src/tcmalloc.cc:1337
#7 do_free (ptr=0xc332b0000) at src/tcmalloc.cc:1345
#8 tc_free (ptr=0xc332b0000) at src/tcmalloc.cc:1610
#9 0x00007f62b5e60763 in boost::alignment::aligned_free(void*) () from
/home/tbiedert/HPX-VolumeRendering/build/libBlockContainer.so
thread 68:
#0 0x00007f62b2af5626 in sys_futex (v3=0, a2=0x0, t=0x7f60ab4272f0, v=2,
o=128, a=0x7f62b2d22f80 <tcmalloc::Static::pageheap_lock_>) at
./src/base/linux_syscall_support.h:2359
#1 base::internal::SpinLockDelay (w=0x7f62b2d22f80
<tcmalloc::Static::pageheap_lock_>, value=2, loop=<optimized out>) at
./src/base/spinlock_linux-inl.h:84
#2 0x00007f62b2af5534 in SpinLock::SlowLock (this=this@entry=0x7f62b2d22f80
<tcmalloc::Static::pageheap_lock_>) at src/base/spinlock.cc:119
#3 0x00007f62b2ae9f4d in Lock (this=<optimized out>) at src/base/spinlock.h:71
#4 SpinLockHolder (l=<optimized out>, this=<synthetic pointer>) at
src/base/spinlock.h:133
#5 do_malloc_pages (heap=<optimized out>, size=32) at src/tcmalloc.cc:1170
#6 do_malloc (size=32) at src/tcmalloc.cc:1210
#7 (anonymous namespace)::do_memalign (align=align@entry=32,
size=size@entry=2073600) at src/tcmalloc.cc:1437
#8 0x00007f62b2af886e in do_memalign_or_cpp_memalign (size=2073600, align=32)
at src/tcmalloc.cc:1131
#9 tc_posix_memalign (result_ptr=0x7f60ab4273f8, align=32, size=2073600) at
src/tcmalloc.cc:1781
#10 0x0000000000924b50 in boost::alignment::aligned_alloc(unsigned long,
unsigned long) ()
> On 23 Feb 2017, at 15:41, Tim Biedert <[email protected]> wrote:
>
> Unfortunately, this hasn't resolved our deadlock, but thanks!
>
> When checking the deadlock on 4 localities, I found out that on 3 localities
> the processes consume 100% CPU while on one the process just idles with CPU
> usage close to 0%.
>
> Does this somehow help to narrow down the cause?
>
> Thanks
>
> Tim
>
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________ hpx-users mailing list [email protected] https://mail.cct.lsu.edu/mailman/listinfo/hpx-users
