Skip to content

Instantly share code, notes, and snippets.

@weilewei
Created July 24, 2020 19:21
Show Gist options
  • Save weilewei/cb52250e337298ea31a21bb5ad441fc0 to your computer and use it in GitHub Desktop.
Save weilewei/cb52250e337298ea31a21bb5ad441fc0 to your computer and use it in GitHub Desktop.
(gdb) run
Starting program: /home/weile/project/dev/src/hpx/build_libcds_Debug/bin/libcds_hazard_pointer_overhead_test
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7ffff392a700 (LWP 13402)]
[New Thread 0x7ffff3129700 (LWP 13403)]
[New Thread 0x7ffff2928700 (LWP 13404)]
[New Thread 0x7ffff2127700 (LWP 13405)]
[New Thread 0x7ffff1926700 (LWP 13406)]
[New Thread 0x7ffff1125700 (LWP 13407)]
[New Thread 0x7ffff0924700 (LWP 13408)]
[New Thread 0x7ffff0123700 (LWP 13409)]
[New Thread 0x7fffef922700 (LWP 13410)]
[New Thread 0x7fffef121700 (LWP 13411)]
[New Thread 0x7fffee920700 (LWP 13412)]
[New Thread 0x7fffee11f700 (LWP 13413)]
[New Thread 0x7fffed91e700 (LWP 13414)]
[New Thread 0x7fffed11d700 (LWP 13415)]
[New Thread 0x7fffec91c700 (LWP 13416)]
[New Thread 0x7fffec11b700 (LWP 13417)]
[New Thread 0x7fffeb91a700 (LWP 13418)]
[New Thread 0x7fffeb119700 (LWP 13419)]
[New Thread 0x7fffea918700 (LWP 13420)]
[New Thread 0x7fffea117700 (LWP 13421)]
[New Thread 0x7fffe9490700 (LWP 13422)]
invoked 500000 futures, create_thread_hierarchical latch none in 0.929655 seconds : 1.859310 us/future, queue default, numa 0, threads 16, info no-info, libcds 0
invoked 500000 futures, apply ThreadCount parallel_executor in 1.666064 seconds : 3.332128 us/future, queue default, numa 0, threads 16, info no-info, libcds 0
invoked 500000 futures, apply ThreadCount parallel_executor_aggregated in 0.997454 seconds : 1.994908 us/future, queue default, numa 0, threads 16, info no-info, libcds 0
invoked 500000 futures, apply ThreadCount thread_pool_executor in 1.692560 seconds : 3.385119 us/future, queue default, numa 0, threads 16, info no-info, libcds 0
invoked 500000 futures, apply ThreadCount thread_pool_executor in 1.690833 seconds : 3.381665 us/future, queue default, numa 0, threads 16, info no-info, libcds 0
invoked 500000 futures, create_thread_hierarchical latch none in 0.779137 seconds : 1.558273 us/future, queue default, numa 0, threads 16, info no-info, libcds 1
invoked 500000 futures, apply ThreadCount parallel_executor in 1.638588 seconds : 3.277176 us/future, queue default, numa 0, threads 16, info no-info, libcds 1
invoked 500000 futures, apply ThreadCount parallel_executor_aggregated in 0.883352 seconds : 1.766704 us/future, queue default, numa 0, threads 16, info no-info, libcds 1
invoked 500000 futures, apply ThreadCount thread_pool_executor in 1.979742 seconds : 3.959485 us/future, queue default, numa 0, threads 16, info no-info, libcds 1
libcds_hazard_pointer_overhead_test: _deps/libcds-src/src/hp.cpp:519: void cds::gc::hp::smr::help_scan(cds::gc::hp::thread_data*): Assertion `!dest.full()' failed.
libcds_hazard_pointer_overhead_test: _deps/libcds-src/src/hp.cpp:519: void cds::gc::hp::smr::help_scan(cds::gc::hp::thread_data*): Assertion `!dest.full()' failed.
libcds_hazard_pointer_overhead_test: _deps/libcds-src/src/hp.cpp:519: void cds::gc::hp::smr::help_scan(cds::gc::hp::thread_data*): Assertion `!dest.full()' failed.
libcds_hazard_pointer_overhead_test: _deps/libcds-src/src/hp.cpp:519: void cds::gc::hp::smr::help_scan(cds::gc::hp::thread_data*): Assertion `!dest.full()' failed.
Thread 20 "libcds_hazard_p" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffea918700 (LWP 13420)]
0x00007ffff7f1d254 in cds::threading::ThreadData::init (this=0x3000100000002) at _deps/libcds-src/src/thread_data.cpp:17
17 if ( m_nAttachCount++ == 0 ) {
(gdb) bt
#0 0x00007ffff7f1d254 in cds::threading::ThreadData::init (this=0x3000100000002) at _deps/libcds-src/src/thread_data.cpp:17
#1 0x000055555557fbe3 in cds::threading::hpxthread::Manager::attachThread () at _deps/libcds-src/cds/threading/details/hpx_manager.h:63
#2 0x000055555557fd71 in libcds_thread_manager_wrapper::libcds_thread_manager_wrapper (this=0x7fffea9161db, uselibcds=true)
at ../tests/performance/local/libcds_hazard_pointer_overhead.cpp:122
#3 0x0000555555578ed2 in null_function (uselibcds=true) at ../tests/performance/local/libcds_hazard_pointer_overhead.cpp:135
#4 0x0000555555581f9e in measure_function_futures_thread_count<hpx::parallel::execution::thread_pool_executor>(unsigned long, bool, hpx::parallel::execution::thread_pool_executor&, bool)::{lambda()#1}::operator()() const (this=0x5555583e54a0) at ../tests/performance/local/libcds_hazard_pointer_overhead.cpp:173
#5 0x000055555558b6aa in hpx::threads::detail::thread_function_nullary<measure_function_futures_thread_count<hpx::parallel::execution::thread_pool_executor>(unsigned long, bool, hpx::parallel::execution::thread_pool_executor&, bool)::{lambda()#1}>::operator()(hpx::threads::thread_state_ex_enum) (this=0x5555583e54a0)
at ../libs/threading_base/include/hpx/threading_base/register_thread.hpp:78
#6 0x000055555558b61c in hpx::util::detail::callable_vtable<std::pair<hpx::threads::thread_state_enum, hpx::threads::thread_id> (hpx::threads::thread_state_ex_enum)>::_invoke<hpx::threads::detail::thread_function_nullary<measure_function_futures_thread_count<hpx::parallel::execution::thread_pool_executor>(unsigned long, bool, hpx::parallel::execution::thread_pool_executor&, bool)::{lambda()#1}> >(void*, hpx::threads::thread_state_ex_enum&&) (f=0x5555583e54a0,
vs#0=@0x7fffea9162fc: hpx::threads::wait_signaled) at ../libs/functional/include/hpx/functional/detail/vtable/callable_vtable.hpp:93
#7 0x00007ffff789cb62 in hpx::util::detail::basic_function<std::pair<hpx::threads::thread_state_enum, hpx::threads::thread_id> (hpx::threads::thread_state_ex_enum), false, false>::operator()(hpx::threads::thread_state_ex_enum) const (vs#0=hpx::threads::wait_signaled, this=0x5555583e5490)
at ../libs/functional/include/hpx/functional/detail/basic_function.hpp:228
#8 hpx::threads::coroutines::stackless_coroutine::operator() (arg=hpx::threads::wait_signaled, this=0x5555583e5490)
at ../libs/coroutines/include/hpx/coroutines/stackless_coroutine.hpp:290
#9 hpx::threads::thread_data_stackless::call (this=0x5555583e5400) at ../libs/threading_base/include/hpx/threading_base/thread_data_stackless.hpp:63
#10 0x00007ffff789ce70 in hpx::threads::thread_data::operator() (this=0x5555583e5400, agent_storage=0x7fffea918600)
at ../libs/threading_base/include/hpx/threading_base/thread_data.hpp:736
#11 0x00007ffff78bd104 in hpx::threads::detail::scheduling_loop<hpx::threads::policies::local_priority_queue_scheduler<std::mutex, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_lifo> > (num_thread=14, scheduler=..., counters=..., params=...)
at ../libs/thread_pools/include/hpx/thread_pools/scheduling_loop.hpp:711
#12 0x00007ffff79006ff in hpx::threads::detail::scheduled_thread_pool<hpx::threads::policies::local_priority_queue_scheduler<std::mutex, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_lifo> >::thread_func (this=0x555555de8000, thread_num=14,
global_thread_num=14, startup=std::shared_ptr<hpx::util::barrier> (use count 16, weak count 0) = {...})
at ../libs/thread_pools/include/hpx/thread_pools/scheduled_thread_pool_impl.hpp:511
#13 0x00007ffff7945561 in std::__invoke_impl<void, void (hpx::threads::detail::scheduled_thread_pool<hpx::threads::policies::local_priority_queue_scheduler<std::mutex, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_lifo> >::*)(unsigned long, unsigned long, std::shared_ptr<hpx::util::barrier>), hpx::threads::detail::scheduled_thread_pool<hpx::threads::policies::local_priority_queue_scheduler<std::mutex, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_lifo> >*, unsigned long, unsigned long, std::shared_ptr<hpx::util::barrier> > (__f=
@0x555555e506b0: (void (hpx::threads::detail::scheduled_thread_pool<hpx::threads::policies::local_priority_queue_scheduler<std::mutex, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_lifo> >::*)(hpx::threads::detail::scheduled_thread_pool<hpx::threads::policies::local_priority_queue_scheduler<std::mutex, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_lifo> > * const, unsigned long, unsigned long, std::shared_ptr<hpx::util::barrier>)) 0x7ffff78ffde8 <hpx::threads::detail::scheduled_thread_pool<hpx::threads::policies::local_priority_queue_scheduler<std::mutex, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_lifo> >::thread_func(unsigned long, unsigned long, std::shared_ptr<hpx::util::barrier>)>, __t=@0x555555e506a8: 0x555555de8000, __args#0=@0x555555e506a0: 14,
__args#1=@0x555555e50698: 14, __args#2=...) at /usr/include/c++/8/bits/invoke.h:73
#14 0x00007ffff792d58b in std::__invoke<void (hpx::threads::detail::scheduled_thread_pool<hpx::threads::policies::local_priority_queue_scheduler<std::mutex, hpx::t--Type <RET> for more, q to quit, c to continue without paging--
hreads::policies::lockfree_fifo, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_lifo> >::*)(unsigned long, unsigned long, std::shared_ptr<hpx::util::barrier>), hpx::threads::detail::scheduled_thread_pool<hpx::threads::policies::local_priority_queue_scheduler<std::mutex, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_lifo> >*, unsigned long, unsigned long, std::shared_ptr<hpx::util::barrier> > (
__fn=
@0x555555e506b0: (void (hpx::threads::detail::scheduled_thread_pool<hpx::threads::policies::local_priority_queue_scheduler<std::mutex, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_lifo> >::*)(hpx::threads::detail::scheduled_thread_pool<hpx::threads::policies::local_priority_queue_scheduler<std::mutex, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_lifo> > * const, unsigned long, unsigned long, std::shared_ptr<hpx::util::barrier>)) 0x7ffff78ffde8 <hpx::threads::detail::scheduled_thread_pool<hpx::threads::policies::local_priority_queue_scheduler<std::mutex, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_lifo> >::thread_func(unsigned long, unsigned long, std::shared_ptr<hpx::util::barrier>)>, __args#0=@0x555555e506a8: 0x555555de8000, __args#1=@0x555555e506a0: 14,
__args#2=@0x555555e50698: 14, __args#3=...) at /usr/include/c++/8/bits/invoke.h:95
#15 0x00007ffff7976955 in std::thread::_Invoker<std::tuple<void (hpx::threads::detail::scheduled_thread_pool<hpx::threads::policies::local_priority_queue_scheduler<std::mutex, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_lifo> >::*)(unsigned long, unsigned long, std::shared_ptr<hpx::util::barrier>), hpx::threads::detail::scheduled_thread_pool<hpx::threads::policies::local_priority_queue_scheduler<std::mutex, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_lifo> >*, unsigned long, unsigned long, std::shared_ptr<hpx::util::barrier> > >::_M_invoke<0ul, 1ul, 2ul, 3ul, 4ul> (this=0x555555e50688) at /usr/include/c++/8/thread:244
#16 0x00007ffff79765a8 in std::thread::_Invoker<std::tuple<void (hpx::threads::detail::scheduled_thread_pool<hpx::threads::policies::local_priority_queue_scheduler<std::mutex, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_lifo> >::*)(unsigned long, unsigned long, std::shared_ptr<hpx::util::barrier>), hpx::threads::detail::scheduled_thread_pool<hpx::threads::policies::local_priority_queue_scheduler<std::mutex, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_lifo> >*, unsigned long, unsigned long, std::shared_ptr<hpx::util::barrier> > >::operator() (this=0x555555e50688) at /usr/include/c++/8/thread:253
#17 0x00007ffff7976354 in std::thread::_State_impl<std::thread::_Invoker<std::tuple<void (hpx::threads::detail::scheduled_thread_pool<hpx::threads::policies::local_priority_queue_scheduler<std::mutex, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_lifo> >::*)(unsigned long, unsigned long, std::shared_ptr<hpx::util::barrier>), hpx::threads::detail::scheduled_thread_pool<hpx::threads::policies::local_priority_queue_scheduler<std::mutex, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_fifo, hpx::threads::policies::lockfree_lifo> >*, unsigned long, unsigned long, std::shared_ptr<hpx::util::barrier> > > >::_M_run (this=0x555555e50680) at /usr/include/c++/8/thread:196
#18 0x00007ffff686bb2f in ?? () from /lib/x86_64-linux-gnu/libstdc++.so.6
#19 0x00007ffff65f9fa3 in start_thread (arg=<optimized out>) at pthread_create.c:486
#20 0x00007ffff652a4cf in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:95
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment