On Fri, Nov 27, 2015 at 09:43:50PM -0500, Glauber Costa wrote:
> Hello my dear XFSers,
>
> For those of you who don't know, we at ScyllaDB produce a modern NoSQL
> data store that, at the moment, runs on top of XFS only. We deal
> exclusively with asynchronous and direct IO, due to our
> thread-per-core architecture. Due to that, we avoid issuing any
> operation that will sleep.
>
> While debugging an extreme case of bad performance (most likely
> related to a not-so-great disk), I have found a variety of cases in
> which XFS blocks. To find those, I have used perf record -e
> sched:sched_switch -p <pid_of_db>, and I am attaching the perf report
> as xfs-sched_switch.log. Please note that this doesn't tell me for how
> long we block, but as mentioned before, blocking operations outside
> our control are detrimental to us regardless of the elapsed time.
>
> For those who are not acquainted to our internals, please ignore
> everything in that file but the xfs functions. For the xfs symbols,
> there are two kinds of events: the ones that are a children of
> io_submit, where we don't tolerate blocking, and the ones that are
> children of our helper IO thread, to where we push big operations that
> we know will block until we can get rid of them all. We care about the
> former and ignore the latter.
>
> Please allow me to ask you a couple of questions about those findings.
> If we are doing anything wrong, advise on best practices is truly
> welcome.
>
> 1) xfs_buf_lock -> xfs_log_force.
>
> I've started wondering what would make xfs_log_force sleep. But then I
> have noticed that xfs_log_force will only be called when a buffer is
> marked stale. Most of the times a buffer is marked stale seems to be
> due to errors. Although that is not my case (more on that), it got me
> thinking that maybe the right thing to do would be to avoid hitting
> this case altogether?
>
I'm not following where you get the "only if marked stale" part..? It
certainly looks like that's one potential purpose for the call, but this
is called in a variety of other places as well. E.g., forcing the log
via pushing on the ail when it has pinned items is another case. The ail
push itself can originate from transaction reservation, etc., when log
space is needed. In other words, I'm not sure this is something that's
easily controlled from userspace, if at all. Rather, it's a significant
part of the wider state machine the fs uses to manage logging.
> The file example-stale.txt contains a backtrace of the case where we
> are being marked as stale. It seems to be happening when we convert
> the the inode's extents from unwritten to real. Can this case be
> avoided? I won't pretend I know the intricacies of this, but couldn't
> we be keeping extents from the very beginning to avoid creating stale
> buffers?
>
This is down in xfs_fs_evict_inode()->xfs_inactive(), which is generally
when an inode is evicted from cache. In this case, it looks like the
inode is unlinked (permanently removed), the extents are being removed
and a bmap btree block is being invalidated as part of that overall
process. I don't think this has anything to do with unwritten extents.
> 2) xfs_buf_lock -> down
> This is one I truly don't understand. What can be causing contention
> in this lock? We never have two different cores writing to the same
> buffer, nor should we have the same core doingCAP_FOWNER so.
>
This is not one single lock. An XFS buffer is the data structure used to
modify/log/read-write metadata on-disk and each buffer has its own lock
to prevent corruption. Buffer lock contention is possible because the
filesystem has bits of "global" metadata that has to be updated via
buffers.
For example, usually one has multiple allocation groups to maximize
parallelism, but we still have per-ag metadata that has to be tracked
globally with respect to each AG (e.g., free space trees, inode
allocation trees, etc.). Any operation that affects this metadata (e.g.,
block/inode allocation) has to lock the agi/agf buffers along with any
buffers associated with the modified btree leaf/node blocks, etc.
One example in your attached perf traces has several threads looking to
acquire the AGF, which is a per-AG data structure for tracking free
space in the AG. One thread looks like the inode eviction case noted
above (freeing blocks), another looks like a file truncate (also freeing
blocks), and yet another is a block allocation due to a direct I/O
write. Were any of these operations directed to an inode in a separate
AG, they would be able to proceed in parallel (but I believe they would
still hit the same codepaths as far as perf can tell).
> 3) xfs_file_aio_write_checks -> file_update_time -> xfs_vn_update_time
>
> You guys seem to have an interface to avoid that, by setting the
> FMODE_NOCMTIME flag. This is done by issuing the open by handle ioctl,
> which will set this flag for all regular files. That's great, but that
> ioctl required CAP_SYS_ADMIN, which is a big no for us, since we run
> our server as an unprivileged user. I don't understand, however, why
> such an strict check is needed. If we have full rights on the
> filesystem, why can't we issue this operation? In my view, CAP_FOWNER
> should already be enough.I do understand the handles have to be stable
> and a file can have its ownership changed, in which case the previous
> owner would keep the handle valid. Is that the reason you went with
> the most restrictive capability ?
I'm not familiar enough with the open-by-handle stuff to comment on the
permission constraints. Perhaps Dave or others can comment further on
this bit...
Brian
> # To display the perf.data header info, please use --header/--header-only options.
> #
> #
> # Total Lost Samples: 0
> #
> # Samples: 2K of event 'sched:sched_switch'
> # Event count (approx.): 2669
> #
> # Overhead Command Shared Object Symbol
> # ........ ....... ................. ..............
> #
> 100.00% scylla [kernel.kallsyms] [k] __schedule
> |
> ---__schedule
> |
> |--96.18%-- schedule
> | |
> | |--56.14%-- schedule_user
> | | |
> | | |--53.30%-- int_careful
> | | | |
> | | | |--45.05%-- 0x7f4ade6f74ed
> | | | | reactor_backend_epoll::make_reactor_notifier
> | | | | |
> | | | | |--67.63%-- syscall_work_queue::submit_item
> | | | | | |
> | | | | | |--32.05%-- posix_file_impl::truncate
> | | | | | | |
> | | | | | | |--65.33%-- _ZN12continuationIZN6futureIJEE4thenIZN19file_data_sink_impl5flushEvEUlvE_S1_EET0_OT_EUlS7_E_JEE3runEv
> | | | | | | | reactor::del_timer
> | | | | | | | 0x60b0000e2040
> | | | | | | |
> | | | | | | |--20.00%-- db::commitlog::segment::flush(unsigned long)::{lambda()#1}::operator()
> | | | | | | | |
> | | | | | | | |--73.33%-- future<>::then<db::commitlog::segment::flush(unsigned long)::{lambda()#1}, future<lw_shared_ptr<db::commitlog::segment> > >
> | | | | | | | | _ZN12continuationIZN6futureIJ13lw_shared_ptrIN2db9commitlog7segmentEEEE4thenIZNS4_4syncEvEUlT_E_S6_EET0_OS8_EUlSB_E_JS5_EE3runEv
> | | | | | | | | reactor::del_timer
> | | | | | | | | 0x60e0000e2040
> | | | | | | | |
> | | | | | | | --26.67%-- _ZN12continuationIZN6futureIJEE4thenIZN2db9commitlog7segment5flushEmEUlvE_S0_IJ13lw_shared_ptrIS5_EEEEET0_OT_EUlSC_E_JEE3runEv
> | | | | | | | reactor::del_timer
> | | | | | | | 0x6090000e2040
> | | | | | | |
> | | | | | | |--10.67%-- sstables::sstable::seal_sstable
> | | | | | | | std::_Function_handler<void (), futurize<std::result_of<std::decay<sstables::sstable::write_components(mutation_reader, unsigned long, lw_shared_ptr<schema const>, unsigned long)::{lambda()#1}>::type ()>::type>::type seastar::async<sstables::sstable::write_components(mutation_reader, unsigned long, lw_shared_ptr<schema const>, unsigned long)::{lambda()#1}>(std::decay&&, (std::decay<sstables::sstable::write_components(mutation_reader, unsigned long, lw_shared_ptr<schema const>, unsigned long)::{lambda()#1}>::type&&)...)::{lambda(futurize<std::result_of<std::decay<{lambda()#1}>::type ()>::type> seastar::async<{lambda()#1}>(futurize<std::result_of<std::decay<{lambda()#1}>::type ()>::type>::type, std::decay<{lambda()#1}>::type&&)::work&)#1}::operator()(futurize<std::result_of<std::decay<{lambda()#1}>::type ()>::type> seastar::async<{lambda()#1}>(futurize<std::result_of<std::decay<{lambda()#1}>::type ()>::type>::type, std::decay<{lambda()#1}>::type&&)::work)::{lambda()#1}>::_M_invoke
> | | | | | | | _GLOBAL__sub_I__ZN12app_templateC2Ev
> | | | | | | |
> | | | | | | --4.00%-- sstables::sstable::write_toc
> | | | | | | sstables::sstable::prepare_write_components
> | | | | | | |
> | | | | | | |--50.00%-- 0x4d3a4f6ec4e8cd75
> | | | | | | |
> | | | | | | --50.00%-- 0x3ebf3dd80e3b174d
> | | | | | |
> | | | | | |--23.93%-- posix_file_impl::discard
> | | | | | | |
> | | | | | | |--82.14%-- _ZN12continuationIZN6futureIImEE4thenIZN19file_data_sink_impl6do_putEm16temporary_bufferIcEEUlmE_S0_IIEEEET0_OT_EUlSA_E_ImEE3runEv
> | | | | | | | reactor::del_timer
> | | | | | | | 0x6080000e2040
> | | | | | | |
> | | | | | | --17.86%-- futurize<future<lw_shared_ptr<db::commitlog::segment> > >::apply<db::commitlog::segment_manager::allocate_segment(bool)::{lambda(file)#1}, file>
> | | | | | | _ZN12continuationIZN6futureIJ4fileEE4thenIZN2db9commitlog15segment_manager16allocate_segmentEbEUlS1_E_S0_IJ13lw_shared_ptrINS5_7segmentEEEEEET0_OT_EUlSE_E_JS1_EE3runEv
> | | | | | |
> | | | | | |--20.94%-- reactor::open_file_dma
> | | | | | | |
> | | | | | | |--20.41%-- db::commitlog::segment_manager::allocate_segment
> | | | | | | | db::commitlog::segment_manager::on_timer()::{lambda()#1}::operator()
> | | | | | | | 0xb8c264
> | | | | | | |
> | | | | | | |--14.29%-- sstables::sstable::write_simple<(sstables::sstable::component_type)8, sstables::statistics>
> | | | | | | | std::_Function_handler<void (), futurize<std::result_of<std::decay<sstables::sstable::write_components(mutation_reader, unsigned long, lw_shared_ptr<schema const>, unsigned long)::{lambda()#1}>::type ()>::type>::type seastar::async<sstables::sstable::write_components(mutation_reader, unsigned long, lw_shared_ptr<schema const>, unsigned long)::{lambda()#1}>(std::decay&&, (std::decay<sstables::sstable::write_components(mutation_reader, unsigned long, lw_shared_ptr<schema const>, unsigned long)::{lambda()#1}>::type&&)...)::{lambda(futurize<std::result_of<std::decay<{lambda()#1}>::type ()>::type> seastar::async<{lambda()#1}>(futurize<std::result_of<std::decay<{lambda()#1}>::type ()>::type>::type, std::decay<{lambda()#1}>::type&&)::work&)#1}::operator()(futurize<std::result_of<std::decay<{lambda()#1}>::type ()>::type> seastar::async<{lambda()#1}>(futurize<std::result_of<std::decay<{lambda()#1}>::type ()>::type>::type, std::decay<{lambda()#1}>::type&&)::work)::{lambda()#1}>::_M_invoke
> | | | | | | | _GLOBAL__sub_I__ZN12app_templateC2Ev
> | | | | | | |
> | | | | | | |--12.24%-- sstables::write_crc
> | | | | | | | |
> | | | | | | | |--16.67%-- 0x313532343536002f
> | | | | | | | |
> | | | | | | | |--16.67%-- 0x373633323533002f
> | | | | | | | |
> | | | | | | | |--16.67%-- 0x363139333232002f
> | | | | | | | |
> | | | | | | | |--16.67%-- 0x353933303330002f
> | | | | | | | |
> | | | | | | | |--16.67%-- 0x383930383133002f
> | | | | | | | |
> | | | | | | | --16.67%-- 0x323338303037002f
> | | | | | | |
> | | | | | | |--12.24%-- sstables::write_digest
> | | | | | | |
> | | | | | | |--10.20%-- sstables::sstable::write_simple<(sstables::sstable::component_type)7, sstables::filter>
> | | | | | | | sstables::sstable::write_filter
> | | | | | | | std::_Function_handler<void (), futurize<std::result_of<std::decay<sstables::sstable::write_components(mutation_reader, unsigned long, lw_shared_ptr<schema const>, unsigned long)::{lambda()#1}>::type ()>::type>::type seastar::async<sstables::sstable::write_components(mutation_reader, unsigned long, lw_shared_ptr<schema const>, unsigned long)::{lambda()#1}>(std::decay&&, (std::decay<sstables::sstable::write_components(mutation_reader, unsigned long, lw_shared_ptr<schema const>, unsigned long)::{lambda()#1}>::type&&)...)::{lambda(futurize<std::result_of<std::decay<{lambda()#1}>::type ()>::type> seastar::async<{lambda()#1}>(futurize<std::result_of<std::decay<{lambda()#1}>::type ()>::type>::type, std::decay<{lambda()#1}>::type&&)::work&)#1}::operator()(futurize<std::result_of<std::decay<{lambda()#1}>::type ()>::type> seastar::async<{lambda()#1}>(futurize<std::result_of<std::decay<{lambda()#1}>::type ()>::type>::type, std::decay<{lambda()#1}>::type&&)::work)::{lambda()#1}>::_M_invoke
> | | | | | | | _GLOBAL__sub_I__ZN12app_templateC2Ev
> | | | | | | |
> | | | | | | |--10.20%-- sstables::sstable::write_simple<(sstables::sstable::component_type)4, sstables::summary_ka>
> | | | | | | | std::_Function_handler<void (), futurize<std::result_of<std::decay<sstables::sstable::write_components(mutation_reader, unsigned long, lw_shared_ptr<schema const>, unsigned long)::{lambda()#1}>::type ()>::type>::type seastar::async<sstables::sstable::write_components(mutation_reader, unsigned long, lw_shared_ptr<schema const>, unsigned long)::{lambda()#1}>(std::decay&&, (std::decay<sstables::sstable::write_components(mutation_reader, unsigned long, lw_shared_ptr<schema const>, unsigned long)::{lambda()#1}>::type&&)...)::{lambda(futurize<std::result_of<std::decay<{lambda()#1}>::type ()>::type> seastar::async<{lambda()#1}>(futurize<std::result_of<std::decay<{lambda()#1}>::type ()>::type>::type, std::decay<{lambda()#1}>::type&&)::work&)#1}::operator()(futurize<std::result_of<std::decay<{lambda()#1}>::type ()>::type> seastar::async<{lambda()#1}>(futurize<std::result_of<std::decay<{lambda()#1}>::type ()>::type>::type, std::decay<{lambda()#1}>::type&&)::work)::{lambda()#1}>::_M_invoke
> | | | | | | | _GLOBAL__sub_I__ZN12app_templateC2Ev
> | | | | | | |
> | | | | | | |--10.20%-- 0x78d93b
> | | | | | | |
> | | | | | | |--6.12%-- sstables::sstable::open_data
> | | | | | | | |
> | | | | | | | --100.00%-- 0x8000000004000000
> | | | | | | |
> | | | | | | --4.08%-- sstables::sstable::write_toc
> | | | | | | sstables::sstable::prepare_write_components
> | | | | | | |
> | | | | | | --100.00%-- 0x6100206690ef
> | | | | | |
> | | | | | |--18.38%-- syscall_work_queue::submit_item
> | | | | | | |
> | | | | | | |--10.00%-- 0x7f4ad89f8fe0
> | | | | | | |
> | | | | | | |--7.50%-- 0x7f4ad83f8fe0
> | | | | | | |
> | | | | | | |--7.50%-- 0x7f4ad6bf8fe0
> | | | | | | |
> | | | | | | |--7.50%-- 0x7f4ad65f8fe0
> | | | | | | |
> | | | | | | |--5.00%-- 0x60b015e8cd90
> | | | | | | |
> | | | | | | |--5.00%-- 0x60100acaed90
> | | | | | | |
> | | | | | | |--5.00%-- 0x607006f04d90
> | | | | | | |
> | | | | | | |--5.00%-- 0xffffffffffffa5d0
> | | | | | | |
> | | | | | | |--2.50%-- 0x60e01acbed90
> | | | | | | |
> | | | | | | |--2.50%-- 0x60e01acbec60
> | | | | | | |
> | | | | | | |--2.50%-- 0x60a018d7ad90
> | | | | | | |
> | | | | | | |--2.50%-- 0x60a018d7ac60
> | | | | | | |
> | | | | | | |--2.50%-- 0x60b015e8cc60
> | | | | | | |
> | | | | | | |--2.50%-- 0x60900bb8ad60
> | | | | | | |
> | | | | | | |--2.50%-- 0x60100acaec60
> | | | | | | |
> | | | | | | |--2.50%-- 0x60800951dd90
> | | | | | | |
> | | | | | | |--2.50%-- 0x60800951dc60
> | | | | | | |
> | | | | | | |--2.50%-- 0x60d009089d90
> | | | | | | |
> | | | | | | |--2.50%-- 0x60d009089c60
> | | | | | | |
> | | | | | | |--2.50%-- 0x607006f04c60
> | | | | | | |
> | | | | | | |--2.50%-- 0x60f005984d60
> | | | | | | |
> | | | | | | |--2.50%-- 0x7f4ad77f8fe0
> | | | | | | |
> | | | | | | |--2.50%-- 0x7f4adb9f8fe0
> | | | | | | |
> | | | | | | |--2.50%-- 0x7f4ad9bf8fe0
> | | | | | | |
> | | | | | | |--2.50%-- 0x7f4ad7df8fe0
> | | | | | | |
> | | | | | | |--2.50%-- 0x7f4ad77f8fe0
> | | | | | | |
> | | | | | | --2.50%-- 0x7f4ad5ff8fe0
> | | | | | |
> | | | | | |--2.99%-- reactor::open_directory
> | | | | | | |
> | | | | | | |--57.14%-- sstables::sstable::filename
> | | | | | | |
> | | | | | | --42.86%-- sstables::sstable::write_toc
> | | | | | | sstables::sstable::prepare_write_components
> | | | | | | |
> | | | | | | |--50.00%-- 0x4d3a4f6ec4e8cd75
> | | | | | | |
> | | | | | | --50.00%-- 0x3ebf3dd80e3b174d
> | | | | | |
> | | | | | --1.71%-- reactor::rename_file
> | | | | | sstables::sstable::seal_sstable
> | | | | | std::_Function_handler<void (), futurize<std::result_of<std::decay<sstables::sstable::write_components(mutation_reader, unsigned long, lw_shared_ptr<schema const>, unsigned long)::{lambda()#1}>::type ()>::type>::type seastar::async<sstables::sstable::write_components(mutation_reader, unsigned long, lw_shared_ptr<schema const>, unsigned long)::{lambda()#1}>(std::decay&&, (std::decay<sstables::sstable::write_components(mutation_reader, unsigned long, lw_shared_ptr<schema const>, unsigned long)::{lambda()#1}>::type&&)...)::{lambda(futurize<std::result_of<std::decay<{lambda()#1}>::type ()>::type> seastar::async<{lambda()#1}>(futurize<std::result_of<std::decay<{lambda()#1}>::type ()>::type>::type, std::decay<{lambda()#1}>::type&&)::work&)#1}::operator()(futurize<std::result_of<std::decay<{lambda()#1}>::type ()>::type> seastar::async<{lambda()#1}>(futurize<std::result_of<std::decay<{lambda()#1}>::type ()>::type>::type, std::decay<{lambda()#1}>::type&&)::work)::{lambda()#1}>::_M_invoke
> | | | | | _GLOBAL__sub_I__ZN12app_templateC2Ev
> | | | | |
> | | | | --32.37%-- _ZN12continuationIZN6futureIJEE4thenIZN18syscall_work_queue11submit_itemEPNS3_9work_itemEEUlvE_S1_EET0_OT_EUlS9_E_JEE3runEv
> | | | | reactor::del_timer
> | | | | 0x60d0000e2040
> | | | |
> | | | |--29.04%-- __vdso_clock_gettime
> | | | |
> | | | |--19.66%-- 0x7f4ade42b193
> | | | | reactor_backend_epoll::complete_epoll_event
> | | | | |
> | | | | |--41.61%-- smp_message_queue::async_work_item<future<> seastar::sharded<database>::invoke_on<service::storage_proxy::mutate_locally(frozen_mutation const&)::{lambda(database&)#1}, future<> >(unsigned int, service::storage_proxy::mutate_locally(frozen_mutation const&)::{lambda(database&)#1}&&)::{lambda()#1}>::process
> | | | | | |
> | | | | | |--79.03%-- smp_message_queue::process_queue<2ul, smp_message_queue::process_incoming()::{lambda(smp_message_queue::work_item*)#1}>
> | | | | | | |
> | | | | | | |--95.92%-- 0x6070000c3000
> | | | | | | |
> | | | | | | |--2.04%-- 0x61d0000c1000
> | | | | | | |
> | | | | | | --2.04%-- 0x61d0000c1000
> | | | | | |
> | | | | | |--3.23%-- 0x14dd51
> | | | | | |
> | | | | | |--1.61%-- 0x162a54
> | | | | | |
> | | | | | |--1.61%-- 0x161dca
> | | | | | |
> | | | | | |--1.61%-- 0x159c8b
> | | | | | |
> | | | | | |--1.61%-- 0x1598b5
> | | | | | |
> | | | | | |--1.61%-- 0x14dd3e
> | | | | | |
> | | | | | |--1.61%-- 0x14bad8
> | | | | | |
> | | | | | |--1.61%-- 0x14a880
> | | | | | |
> | | | | | |--1.61%-- 0x127105
> | | | | | |
> | | | | | |--1.61%-- 0x6070000e2040
> | | | | | |
> | | | | | |--1.61%-- smp_message_queue::process_queue<2ul, smp_message_queue::process_incoming()::{lambda(smp_message_queue::work_item*)#1}>
> | | | | | | 0x60d0000c3000
> | | | | | |
> | | | | | --1.61%-- __vdso_clock_gettime
> | | | | | 0x7f4ad77f9160
> | | | | |
> | | | | |--30.20%-- __restore_rt
> | | | | | |
> | | | | | |--57.14%-- __vdso_clock_gettime
> | | | | | | 0x1d
> | | | | | |
> | | | | | |--9.52%-- smp_message_queue::smp_message_queue
> | | | | | | 0x6070000c3000
> | | | | | |
> | | | | | |--4.76%-- 0x600000357240
> | | | | | |
> | | | | | |--4.76%-- 0x60000031a640
> | | | | | |
> | | | | | |--2.38%-- posix_file_impl::list_directory
> | | | | | | 0x609000044730
> | | | | | |
> | | | | | |--2.38%-- 0x46efbf
> | | | | | |
> | | | | | |--2.38%-- 0x600000442e40
> | | | | | |
> | | | | | |--2.38%-- 0x600000376440
> | | | | | |
> | | | | | |--2.38%-- 0x6000002bac40
> | | | | | |
> | | | | | |--2.38%-- 0x600000295640
> | | | | | |
> | | | | | |--2.38%-- 0x600000289e40
> | | | | | |
> | | | | | |--2.38%-- 0x60000031a640
> | | | | | |
> | | | | | |--2.38%-- 0x7f4ade6f74ed
> | | | | | | __libc_siglongjmp
> | | | | | | 0x60000047be40
> | | | | | |
> | | | | | --2.38%-- 0x7f4adb3f7fd0
> | | | | |
> | | | | |--14.09%-- 0x33
> | | | | |
> | | | | |--12.08%-- promise<temporary_buffer<char> >::promise
> | | | | | _ZN6futureIJ16temporary_bufferIcEEE4thenIZN12input_streamIcE12read_exactlyEmEUlT_E_S2_EET0_OS6_
> | | | | | |
> | | | | | |--44.44%-- input_stream<char>::read_exactly
> | | | | | | 0x8
> | | | | | |
> | | | | | |--11.11%-- 0x7f4adb3f8ea0
> | | | | | |
> | | | | | |--11.11%-- 0x7f4ad9bf8ea0
> | | | | | |
> | | | | | |--11.11%-- 0x7f4ad89f8ea0
> | | | | | |
> | | | | | |--11.11%-- 0x7f4ad83f8ea0
> | | | | | |
> | | | | | |--5.56%-- 0x7f4ad77f8ea0
> | | | | | |
> | | | | | --5.56%-- 0x7f4ad7df8ea0
> | | | | |
> | | | | |--1.34%-- 0x7f4ad6bf8d80
> | | | | |
> | | | | --0.67%-- 0x7f4adadf8d80
> | | | |
> | | | |--4.43%-- __libc_send
> | | | | _ZN12continuationIZN6futureIJmEE4thenIZN7reactor14write_all_partER17pollable_fd_statePKvmmEUlmE_S0_IJEEEET0_OT_EUlSC_E_JmEE3runEv
> | | | | |
> | | | | |--14.71%-- 0x4
> | | | | |
> | | | | |--11.76%-- 0x7f4ad89f8de0
> | | | | |
> | | | | |--8.82%-- 0x7f4adb3f8de0
> | | | | |
> | | | | |--8.82%-- 0x7f4ad9bf8de0
> | | | | |
> | | | | |--8.82%-- 0x7f4ad77f8de0
> | | | | |
> | | | | |--8.82%-- 0x7f4ad6bf8de0
> | | | | |
> | | | | |--5.88%-- 0x7f4ad83f8de0
> | | | | |
> | | | | |--5.88%-- 0x7f4ad7df8de0
> | | | | |
> | | | | |--5.88%-- 0x7f4ad53f8de0
> | | | | |
> | | | | |--2.94%-- 0x7f4acc9f8de0
> | | | | |
> | | | | |--2.94%-- continuation<future<file>::wait()::{lambda(future_state<file>&&)#1}, file>::~continuation
> | | | | | 0x611003c8e9b8
> | | | | |
> | | | | |--2.94%-- 0x7f4adb9f8de0
> | | | | |
> | | | | |--2.94%-- 0x7f4ad71f8de0
> | | | | |
> | | | | |--2.94%-- 0x7f4ad65f8de0
> | | | | |
> | | | | |--2.94%-- 0x7f4ad59f8de0
> | | | | |
> | | | | --2.94%-- 0x7f4ad35f8de0
> | | | |
> | | | |--1.56%-- 0x7f4ade6f754d
> | | | | reactor::read_some
> | | | | |
> | | | | |--66.67%-- _ZN12continuationIZN6futureIJEE4thenIZZN7service13storage_proxy22send_to_live_endpointsEmENKUlRSt4pairIK13basic_sstringIcjLj15EESt6vectorIN3gms12inet_addressESaISB_EEEE_clESF_EUlvE_S1_EET0_OT_EUlSK_E_JEE3runEv
> | | | | | reactor::del_timer
> | | | | | 0x6070000e2040
> | | | | |
> | | | | |--8.33%-- _ZN12continuationIZN6futureIIEE4thenIZ5sleepINSt6chrono3_V212system_clockEmSt5ratioILl1ELl1000000EEES1_NS4_8durationIT0_T1_EEEUlvE_S1_EESA_OT_EUlSF_E_IEE3runEv
> | | | | | reactor::del_timer
> | | | | | 0x6080000e2040
> | | | | |
> | | | | |--8.33%-- 0x600000483640
> | | | | |
> | | | | |--8.33%-- 0x600000480440
> | | | | |
> | | | | --8.33%-- 0x36
> | | | --0.26%-- [...]
> | | |
> | | --46.70%-- retint_careful
> | | |
> | | |--6.24%-- posix_file_impl::list_directory
> | | | |
> | | | |--80.00%-- 0x60f0000e2020
> | | | |
> | | | |--5.00%-- 0x601000044730
> | | | |
> | | | |--5.00%-- 0x60e000044720
> | | | |
> | | | |--2.50%-- 0x60f000135500
> | | | |
> | | | |--2.50%-- 0x6190000e2098
> | | | |
> | | | |--2.50%-- 0x60d0000c3000
> | | | |
> | | | --2.50%-- 0x1
> | | |
> | | |--3.42%-- boost::lockfree::detail::ringbuffer_base<smp_message_queue::work_item*>::pop
> | | | |
> | | | |--95.65%-- boost::program_options::variables_map::get
> | | | |
> | | | --4.35%-- 0x618000044680
> | | |
> | | |--3.12%-- memory::small_pool::add_more_objects
> | | | |
> | | | |--10.53%-- managed_vector<atomic_cell_or_collection, 5u, unsigned int>::clear_and_release
> | | | | mutation_partition::clustered_row
> | | | | mutation::set_clustered_cell
> | | | | cql3::constants::setter::execute
> | | | | cql3::statements::update_statement::add_update_for_key
> | | | | _ZN8futurizeI6futureIJSt6vectorI8mutationSaIS2_EEEEE5applyIZN4cql310statements22modification_statement13get_mutationsERN7seastar7shardedIN7service13storage_proxyEEERKNS8_13query_optionsEblEUlT_E_JSt10unique_ptrINS8_17update_parametersESt14default_deleteISN_EEEEES5_OSK_OSt5tupleIJDpT0_EE
> | | | | cql3::statements::modification_statement::get_mutations
> | | | | cql3::statements::modification_statement::execute_without_condition
> | | | | cql3::query_options::query_options
> | | | | |
> | | | | |--50.00%-- 0x7f4ad77f80e0
> | | | | |
> | | | | --50.00%-- 0x7f4ad6bf80e0
> | | | |
> | | | |--10.53%-- memory::small_pool::add_more_objects
> | | | | |
> | | | | |--50.00%-- 0x60e00015d000
> | | | | |
> | | | | --50.00%-- 0x60b00af6c758
> | | | |
> | | | |--5.26%-- 0x60a018ee3867
> | | | |
> | | | |--5.26%-- 0x60d00d41f680
> | | | |
> | | | |--5.26%-- 0x61400c6bb4d0
> | | | |
> | | | |--5.26%-- 0x60e007c918d6
> | | | |
> | | | |--5.26%-- 0x60e0078294ce
> | | | |
> | | | |--5.26%-- 0x607006ee4da0
> | | | |
> | | | |--5.26%-- _ZN12continuationIZN6futureIJEE12then_wrappedIZNS1_16handle_exceptionIZN7service13storage_proxy22send_to_live_endpointsEmEUlNSt15__exception_ptr13exception_ptrEE0_EES1_OT_EUlSA_E_S1_EET0_SA_EUlSA_E_JEE3runEv
> | | | | reactor::del_timer
> | | | | 0x6030000e2040
> | | | |
> | | | |--5.26%-- service::storage_proxy::mutate_locally
> | | | | service::storage_proxy::send_to_live_endpoints
> | | | | parallel_for_each<__gnu_cxx::__normal_iterator<unsigned long*, std::vector<unsigned long, std::allocator<unsigned long> > >, service::storage_proxy::mutate_begin(std::vector<unsigned long, std::allocator<unsigned long> >, db::consistency_level)::{lambda(unsigned long)#1}>
> | | | | 0x601000136d00
> | | | |
> | | | |--5.26%-- 0x60a0001900e0
> | | | |
> | | | |--5.26%-- 0x60e00015d040
> | | | |
> | | | |--5.26%-- 0x61300015d000
> | | | |
> | | | |--5.26%-- 0x60e00013bde0
> | | | |
> | | | |--5.26%-- 0x60b00010f308
> | | | |
> | | | |--5.26%-- 0x6010000e4808
> | | | |
> | | | --5.26%-- 0x7f4ad65f7f50
> | | |
> | | |--2.82%-- std::unique_ptr<reactor::pollfn, std::default_delete<std::unique_ptr> > reactor::make_pollfn<reactor::run()::{lambda()#3}>(reactor::run()::{lambda()#3}&&)::the_pollfn::poll_and_check_more_work
> | | | |
> | | | |--25.00%-- boost::lockfree::detail::ringbuffer_base<smp_message_queue::work_item*>::pop
> | | | | boost::program_options::variables_map::get
> | | | |
> | | | |--25.00%-- 0x1
> | | | |
> | | | |--12.50%-- 0x53
> | | | |
> | | | |--12.50%-- 0x3e
> | | | |
> | | | |--12.50%-- 0x24
> | | | |
> | | | --12.50%-- 0xb958000000000000
> | | |
> | | |--2.67%-- std::_Function_handler<partition_presence_checker_result (partition_key const&), column_family::make_partition_presence_checker(lw_shared_ptr<std::map<long, lw_shared_ptr<sstables::sstable>, std::less<long>, std::allocator<std::pair<long const, lw_shared_ptr<sstables::sstable> > > > >)::{lambda(partition_key const&)#1}>::_M_invoke
> | | | |
> | | | |--66.67%-- 0x1b5c280
> | | | |
> | | | |--27.78%-- managed_vector<atomic_cell_or_collection, 5u, unsigned int>::resize
> | | | | row::apply
> | | | | mutation_partition_applier::accept_row_cell
> | | | | mutation_partition_view::accept
> | | | |
> | | | --5.56%-- 0x2a4399
> | | |
> | | |--2.08%-- smp_message_queue::smp_message_queue
> | | | |
> | | | |--60.00%-- 0x60f0000c3000
> | | | |
> | | | |--10.00%-- 0x6000002d7240
> | | | |
> | | | |--10.00%-- 0x19
> | | | |
> | | | |--10.00%-- 0xb
> | | | |
> | | | --10.00%-- 0x7
> | | |
> | | |--1.93%-- smp_message_queue::process_queue<4ul, smp_message_queue::process_completions()::{lambda(smp_message_queue::work_item*)#1}>
> | | |
> | | |--1.63%-- __vdso_clock_gettime
> | | | |
> | | | --100.00%-- __clock_gettime
> | | | std::chrono::_V2::system_clock::now
> | | | 0xa63209
> | | |
> | | |--1.49%-- memory::small_pool::deallocate
> | | | |
> | | | |--40.00%-- managed_vector<atomic_cell_or_collection, 5u, unsigned int>::emplace_back<atomic_cell_or_collection>
> | | | |
> | | | |--20.00%-- std::_Hashtable<unsigned long, std::pair<unsigned long const, service::storage_proxy::rh_entry>, std::allocator<std::pair<unsigned long const, service::storage_proxy::rh_entry> >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_erase
> | | | | service::storage_proxy::got_response
> | | | | _ZN12continuationIZN6futureIJEE4thenIZZN7service13storage_proxy22send_to_live_endpointsEmENKUlRSt4pairIK13basic_sstringIcjLj15EESt6vectorIN3gms12inet_addressESaISB_EEEE_clESF_EUlvE_S1_EET0_OT_EUlSK_E_JEE3runEv
> | | | | reactor::del_timer
> | | | | 0x6100000e2040
> | | | |
> | | | |--10.00%-- cql3::statements::modification_statement::get_mutations
> | | | |
> | | | |--10.00%-- cql3::statements::modification_statement::build_partition_keys
> | | | | cql3::statements::modification_statement::create_exploded_clustering_prefix
> | | | | 0x60c014be0b00
> | | | |
> | | | |--10.00%-- mutation_partition::~mutation_partition
> | | | | std::vector<mutation, std::allocator<mutation> >::~vector
> | | | | service::storage_proxy::mutate_with_triggers
> | | | | cql3::statements::modification_statement::execute_without_condition
> | | | | cql3::statements::modification_statement::execute
> | | | | cql3::query_processor::process_statement
> | | | | transport::cql_server::connection::process_execute
> | | | | transport::cql_server::connection::process_request_one
> | | | | futurize<future<std::pair<foreign_ptr<shared_ptr<transport::cql_server::response> >, service::client_state> > >::apply<transport::cql_server::connection::process_request()::{lambda(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&)#1}::operator()(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&) const::{lambda(temporary_buffer<char>)#1}::operator()(temporary_buffer) const::{lambda()#1}::operator()()::{lambda()#1}&>
> | | | | futurize<future<> >::apply<transport::cql_server::connection::process_request()::{lambda(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&)#1}::operator()(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&) const::{lambda(temporary_buffer<char>)#1}, temporary_buffer>
> | | | | futurize<future<> >::apply<transport::cql_server::connection::process_request()::{lambda(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&)#1}, future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> > >
> | | | | 0x8961de
> | | | |
> | | | --10.00%-- object_deleter_impl<deleter>::~object_deleter_impl
> | | | _ZN12continuationIZN6futureIJEE12then_wrappedIZZNS1_7finallyIZ7do_withI11foreign_ptrI10shared_ptrIN9transport10cql_server8responseEEEZZNS8_10connection14write_responseEOSB_ENUlvE_clEvEUlRT_E_EDaOSF_OT0_EUlvE_EES1_SI_ENUlS1_E_clES1_EUlSF_E_S1_EESJ_SI_EUlSI_E_JEED0Ev
> | | | 0x61a0000c3db0
> | | |
> | | |--1.34%-- dht::decorated_key::equal
> | | | |
> | | | |--83.33%-- 0x607000138f00
> | | | |
> | | | --16.67%-- 0x60a0000e0f40
> | | |
> | | |--1.34%-- service::storage_proxy::send_to_live_endpoints
> | | |
> | | |--1.19%-- transport::cql_server::connection::process_execute
> | | | transport::cql_server::connection::process_request_one
> | | | futurize<future<std::pair<foreign_ptr<shared_ptr<transport::cql_server::response> >, service::client_state> > >::apply<transport::cql_server::connection::process_request()::{lambda(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&)#1}::operator()(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&) const::{lambda(temporary_buffer<char>)#1}::operator()(temporary_buffer) const::{lambda()#1}::operator()()::{lambda()#1}&>
> | | | futurize<future<> >::apply<transport::cql_server::connection::process_request()::{lambda(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&)#1}::operator()(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&) const::{lambda(temporary_buffer<char>)#1}, temporary_buffer>
> | | | futurize<future<> >::apply<transport::cql_server::connection::process_request()::{lambda(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&)#1}, future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> > >
> | | | |
> | | | |--87.50%-- transport::cql_server::connection::process_request
> | | | | do_until_continued<transport::cql_server::connection::process()::{lambda()#2}, transport::cql_server::connection::process()::{lambda()#1}&>
> | | | | do_void_futurize_apply<void do_until_continued<transport::cql_server::connection::process()::{lambda()#2}, transport::cql_server::connection::process()::{lambda()#1}&>(transport::cql_server::connection::process()::{lambda()#1}&, transport::cql_server::connection::process()::{lambda()#2}&&, promise<>)::{lambda(future<>)#1}, promise<> >
> | | | | do_void_futurize_apply<void do_until_continued<transport::cql_server::connection::process()::{lambda()#2}, transport::cql_server::connection::process()::{lambda()#1}&>(transport::cql_server::connection::process()::{lambda()#1}&, transport::cql_server::connection::process()::{lambda()#2}&&, promise<>)::{lambda(future<>)#1}, promise<> >
> | | | | 0x60e0000c3000
> | | | |
> | | | --12.50%-- 0x8961de
> | | |
> | | |--1.19%-- reactor::run
> | | | |
> | | | |--87.50%-- smp::configure(boost::program_options::variables_map)::{lambda()#1}::operator()
> | | | | continuation<future<temporary_buffer<char> > future<>::then<future<temporary_buffer<char> > file::dma_read_bulk<char>(unsigned long, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long)::{lambda()#3}, future<temporary_buffer<char> > >(future<temporary_buffer<char> > file::dma_read_bulk<char>(unsigned long, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long)::{lambda()#3}&&)::{lambda(future<temporary_buffer<char> >)#1}>::run
> | | | | 0x600000043d00
> | | | |
> | | | --12.50%-- app_template::run_deprecated
> | | | main
> | | | __libc_start_main
> | | | _GLOBAL__sub_I__ZN3org6apache9cassandra21g_cassandra_constantsE
> | | | 0x7f4ae20c9fa0
> | | |
> | | |--1.04%-- __clock_gettime
> | | | std::chrono::_V2::system_clock::now
> | | | |
> | | | |--42.86%-- reactor::run
> | | | | smp::configure(boost::program_options::variables_map)::{lambda()#1}::operator()
> | | | | continuation<future<temporary_buffer<char> > future<>::then<future<temporary_buffer<char> > file::dma_read_bulk<char>(unsigned long, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long)::{lambda()#3}, future<temporary_buffer<char> > >(future<temporary_buffer<char> > file::dma_read_bulk<char>(unsigned long, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long)::{lambda()#3}&&)::{lambda(future<temporary_buffer<char> >)#1}>::run
> | | | | 0x600000043d00
> | | | |
> | | | |--14.29%-- 0xa63209
> | | | |
> | | | |--14.29%-- continuation<future<> future<>::finally<auto do_with<std::vector<frozen_mutation, std::allocator<frozen_mutation> >, shared_ptr<service::storage_proxy>, service::storage_proxy::init_messaging_service()::{lambda(std::vector<frozen_mutation, std::allocator<frozen_mutation> >)#1}::operator()(std::vector<frozen_mutation, std::allocator<frozen_mutation> >) const::{lambda(std::vector<frozen_mutation, std::allocator<frozen_mutation> > const&, shared_ptr<service::storage_proxy>&)#1}>(std::vector<frozen_mutation, std::allocator<frozen_mutation> >&&, shared_ptr<service::storage_proxy>&&, service::storage_proxy::init_messaging_service()::{lambda(std::vector<frozen_mutation, std::allocator<frozen_mutation> >)#1}::operator()(std::vector<frozen_mutation, std::allocator<frozen_mutation> >) const::{lambda(std::vector<frozen_mutation, std::allocator<frozen_mutation> > const&, shared_ptr<service::storage_proxy>&)#1}&&)::{lambda()#1}>(service::storage_proxy::init_messaging_service()::{lambda(std::vector<frozen_mutation, std::a
> | | | | 0x2b7434
> | | | |
> | | | |--14.29%-- _ZN8futurizeI6futureIJSt10unique_ptrIN4cql317update_parametersESt14default_deleteIS3_EEEEE5applyIZNS2_10statements22modification_statement22make_update_parametersERN7seastar7shardedIN7service13storage_proxyEEE13lw_shared_ptrISt6vectorI13partition_keySaISK_EEESI_I26exploded_clustering_prefixERKNS2_13query_optionsEblEUlT_E_JNSt12experimental15fundamentals_v18optionalINS3_13prefetch_dataEEEEEES7_OST_OSt5tupleIJDpT0_EE
> | | | | cql3::statements::modification_statement::make_update_parameters
> | | | | cql3::statements::modification_statement::get_mutations
> | | | | cql3::statements::modification_statement::execute_without_condition
> | | | | cql3::query_options::query_options
> | | | | 0x7f4ad6bf80e0
> | | | |
> | | | --14.29%-- database::apply_in_memory
> | | | database::do_apply
> | | | _ZN12continuationIZN6futureIJEE4thenIZN8database5applyERK15frozen_mutationEUlvE_S1_EET0_OT_EUlSA_E_JEE3runEv
> | | | reactor::del_timer
> | | | 0x6090000e2040
> | | |
> | | |--1.04%-- memory::small_pool::allocate
> | | | |
> | | | |--14.29%-- 0x5257c379469d9
> | | | |
> | | | |--14.29%-- 0x609002b9fe98
> | | | |
> | | | |--14.29%-- 0x13c8b90
> | | | |
> | | | |--14.29%-- 0x60f000190710
> | | | |
> | | | |--14.29%-- 0x25
> | | | |
> | | | |--14.29%-- 0x7f4ad6bf84c0
> | | | |
> | | | --14.29%-- 0x7f4ad53f81f0
> | | |
> | | |--0.89%-- db::serializer<atomic_cell_view>::serializer
> | | | mutation_partition_serializer::write_without_framing
> | | | frozen_mutation::frozen_mutation
> | | | frozen_mutation::frozen_mutation
> | | |
> | | |--0.89%-- do_until_continued<transport::cql_server::connection::process()::{lambda()#2}, transport::cql_server::connection::process()::{lambda()#1}&>
> | | | do_void_futurize_apply<void do_until_continued<transport::cql_server::connection::process()::{lambda()#2}, transport::cql_server::connection::process()::{lambda()#1}&>(transport::cql_server::connection::process()::{lambda()#1}&, transport::cql_server::connection::process()::{lambda()#2}&&, promise<>)::{lambda(future<>)#1}, promise<> >
> | | | do_void_futurize_apply<void do_until_continued<transport::cql_server::connection::process()::{lambda()#2}, transport::cql_server::connection::process()::{lambda()#1}&>(transport::cql_server::connection::process()::{lambda()#1}&, transport::cql_server::connection::process()::{lambda()#2}&&, promise<>)::{lambda(future<>)#1}, promise<> >
> | | | 0x60f0000c3000
> | | |
> | | |--0.89%-- futurize<future<> >::apply<transport::cql_server::connection::process_request()::{lambda(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&)#1}::operator()(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&) const::{lambda(temporary_buffer<char>)#1}, temporary_buffer>
> | | | futurize<future<> >::apply<transport::cql_server::connection::process_request()::{lambda(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&)#1}, future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> > >
> | | | transport::cql_server::connection::process_request
> | | | do_until_continued<transport::cql_server::connection::process()::{lambda()#2}, transport::cql_server::connection::process()::{lambda()#1}&>
> | | | do_void_futurize_apply<void do_until_continued<transport::cql_server::connection::process()::{lambda()#2}, transport::cql_server::connection::process()::{lambda()#1}&>(transport::cql_server::connection::process()::{lambda()#1}&, transport::cql_server::connection::process()::{lambda()#2}&&, promise<>)::{lambda(future<>)#1}, promise<> >
> | | | do_void_futurize_apply<void do_until_continued<transport::cql_server::connection::process()::{lambda()#2}, transport::cql_server::connection::process()::{lambda()#1}&>(transport::cql_server::connection::process()::{lambda()#1}&, transport::cql_server::connection::process()::{lambda()#2}&&, promise<>)::{lambda(future<>)#1}, promise<> >
> | | | |
> | | | |--83.33%-- 0x6090000c3000
> | | | |
> | | | --16.67%-- 0x600000044400
> | | |
> | | |--0.89%-- std::_Function_handler<void (), reactor::run()::{lambda()#8}>::_M_invoke
> | | | |
> | | | |--50.00%-- reactor::run
> | | | | smp::configure(boost::program_options::variables_map)::{lambda()#1}::operator()
> | | | | continuation<future<temporary_buffer<char> > future<>::then<future<temporary_buffer<char> > file::dma_read_bulk<char>(unsigned long, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long)::{lambda()#3}, future<temporary_buffer<char> > >(future<temporary_buffer<char> > file::dma_read_bulk<char>(unsigned long, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long)::{lambda()#3}&&)::{lambda(future<temporary_buffer<char> >)#1}>::run
> | | | | 0x600000043d00
> | | | |
> | | | --50.00%-- reactor::signals::signal_handler::signal_handler
> | | | 0x3e8
> | | |
> | | |--0.74%-- db::commitlog::segment::allocate
> | | | |
> | | | --100.00%-- db::commitlog::add
> | | | database::do_apply
> | | | |
> | | | |--75.00%-- database::apply
> | | | | smp_message_queue::async_work_item<future<> seastar::sharded<database>::invoke_on<service::storage_proxy::mutate_locally(mutation const&)::{lambda(database&)#1}, future<> >(unsigned int, service::storage_proxy::mutate_locally(mutation const&)::{lambda(database&)#1}&&)::{lambda()#1}>::process
> | | | | smp_message_queue::process_queue<2ul, smp_message_queue::process_incoming()::{lambda(smp_message_queue::work_item*)#1}>
> | | | | boost::lockfree::detail::ringbuffer_base<smp_message_queue::work_item*>::pop
> | | | | boost::program_options::variables_map::get
> | | | |
> | | | --25.00%-- _ZN12continuationIZN6futureIJEE4thenIZN8database5applyERK15frozen_mutationEUlvE_S1_EET0_OT_EUlSA_E_JEE3runEv
> | | | reactor::del_timer
> | | | 0x60b0000e2040
> | | |
> | | |--0.74%-- service::storage_proxy::create_write_response_handler
> | | |
> | | |--0.74%-- transport::cql_server::connection::process_request_one
> | | | futurize<future<std::pair<foreign_ptr<shared_ptr<transport::cql_server::response> >, service::client_state> > >::apply<transport::cql_server::connection::process_request()::{lambda(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&)#1}::operator()(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&) const::{lambda(temporary_buffer<char>)#1}::operator()(temporary_buffer) const::{lambda()#1}::operator()()::{lambda()#1}&>
> | | | futurize<future<> >::apply<transport::cql_server::connection::process_request()::{lambda(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&)#1}::operator()(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&) const::{lambda(temporary_buffer<char>)#1}, temporary_buffer>
> | | | futurize<future<> >::apply<transport::cql_server::connection::process_request()::{lambda(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&)#1}, future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> > >
> | | | |
> | | | |--80.00%-- transport::cql_server::connection::process_request
> | | | | do_until_continued<transport::cql_server::connection::process()::{lambda()#2}, transport::cql_server::connection::process()::{lambda()#1}&>
> | | | | do_void_futurize_apply<void do_until_continued<transport::cql_server::connection::process()::{lambda()#2}, transport::cql_server::connection::process()::{lambda()#1}&>(transport::cql_server::connection::process()::{lambda()#1}&, transport::cql_server::connection::process()::{lambda()#2}&&, promise<>)::{lambda(future<>)#1}, promise<> >
> | | | | do_void_futurize_apply<void do_until_continued<transport::cql_server::connection::process()::{lambda()#2}, transport::cql_server::connection::process()::{lambda()#1}&>(transport::cql_server::connection::process()::{lambda()#1}&, transport::cql_server::connection::process()::{lambda()#2}&&, promise<>)::{lambda(future<>)#1}, promise<> >
> | | | | 0x60a0000c3000
> | | | |
> | | | --20.00%-- 0x8961de
> | | |
> | | |--0.74%-- compound_type<(allow_prefixes)0>::compare
> | | | |
> | | | |--20.00%-- 0x6030056c0f20
> | | | |
> | | | |--20.00%-- boost::intrusive::bstbase2<boost::intrusive::mhtraits<rows_entry, boost::intrusive::set_member_hook<void, void, void, void>, &rows_entry::_link>, rows_entry::compare, (boost::intrusive::algo_types)5, boost::intrusive::detail::default_header_holder<boost::intrusive::rbtree_node_traits<void*, false> > >::find
> | | | | mutation_partition::clustered_row
> | | | | mutation::set_clustered_cell
> | | | | cql3::constants::setter::execute
> | | | | cql3::statements::update_statement::add_update_for_key
> | | | | _ZN8futurizeI6futureIJSt6vectorI8mutationSaIS2_EEEEE5applyIZN4cql310statements22modification_statement13get_mutationsERN7seastar7shardedIN7service13storage_proxyEEERKNS8_13query_optionsEblEUlT_E_JSt10unique_ptrINS8_17update_parametersESt14default_deleteISN_EEEEES5_OSK_OSt5tupleIJDpT0_EE
> | | | | cql3::statements::modification_statement::get_mutations
> | | | | cql3::statements::modification_statement::execute_without_condition
> | | | | cql3::query_options::query_options
> | | | | 0x7f4adb3f80e0
> | | | |
> | | | |--20.00%-- compound_type<(allow_prefixes)0>::compare
> | | | |
> | | | |--20.00%-- mutation_partition::clustered_row
> | | | | boost::intrusive::bstree_impl<boost::intrusive::mhtraits<rows_entry, boost::intrusive::set_member_hook<void, void, void, void>, &rows_entry::_link>, rows_entry::compare, unsigned long, true, (boost::intrusive::algo_types)5, boost::intrusive::detail::default_header_holder<boost::intrusive::rbtree_node_traits<void*, false> > >::insert_unique
> | | | | boost::intrusive::bstree_algorithms<boost::intrusive::rbtree_node_traits<void*, false> >::prev_node
> | | | | 0x12d
> | | | |
> | | | --20.00%-- 0x60f00052daf0
> | | |
> | | |--0.74%-- __memmove_ssse3_back
> | | | |
> | | | |--40.00%-- output_stream<char>::write
> | | | | |
> | | | | |--50.00%-- transport::cql_server::response::output
> | | | | | futurize<future<> >::apply<transport::cql_server::connection::write_response(foreign_ptr<shared_ptr<transport::cql_server::response> >&&)::{lambda()#1}>
> | | | | |
> | | | | --50.00%-- 0x7c7fb2
> | | | | 0x5257c37847fa0
> | | | |
> | | | |--20.00%-- transport::cql_server::connection::read_short_bytes
> | | | | transport::cql_server::connection::process_query
> | | | | 0x7f4ada7f86f0
> | | | |
> | | | |--20.00%-- transport::cql_server::response::output
> | | | | futurize<future<> >::apply<transport::cql_server::connection::write_response(foreign_ptr<shared_ptr<transport::cql_server::response> >&&)::{lambda()#1}>
> | | | | 0x2
> | | | |
> | | | --20.00%-- smp_message_queue::flush_response_batch
> | | | boost::lockfree::detail::ringbuffer_base<smp_message_queue::work_item*>::pop
> | | | boost::program_options::variables_map::get
> | | |
> | | |--0.74%-- syscall_work_queue::work_item_returning<syscall_result_extra<stat>, reactor::file_size(basic_sstring<char, unsigned int, 15u>)::{lambda()#1}>::~work_item_returning
> | | | |
> | | | |--60.00%-- 0x6130000c3000
> | | | |
> | | | |--20.00%-- 0x608001fe59a0
> | | | |
> | | | --20.00%-- 0x16
> | | |
> | | |--0.74%-- __memset_sse2
> | | | |
> | | | |--40.00%-- std::_Hashtable<range<dht::token>, std::pair<range<dht::token> const, std::unordered_set<gms::inet_address, std::hash<gms::inet_address>, std::equal_to<gms::inet_address>, std::allocator<gms::inet_address> > >, std::allocator<std::pair<range<dht::token> const, std::unordered_set<gms::inet_address, std::hash<gms::inet_address>, std::equal_to<gms::inet_address>, std::allocator<gms::inet_address> > > >, std::__detail::_Select1st, std::equal_to<range<dht::token> >, std::hash<range<dht::token> >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::~_Hashtable
> | | | | locator::token_metadata::pending_endpoints_for
> | | | | service::storage_proxy::create_write_response_handler
> | | | | service::storage_proxy::mutate_prepare<std::vector<mutation, std::allocator<mutation> >, service::storage_proxy::mutate_prepare(std::vector<mutation, std::allocator<mutation> >&, db::consistency_level, db::write_type)::{lambda(mutation const&, db::consistency_level, db::write_type)#1}>
> | | | | service::storage_proxy::mutate
> | | | | service::storage_proxy::mutate_with_triggers
> | | | | cql3::statements::modification_statement::execute_without_condition
> | | | | cql3::statements::modification_statement::execute
> | | | | cql3::query_processor::process_statement
> | | | | transport::cql_server::connection::process_execute
> | | | | transport::cql_server::connection::process_request_one
> | | | | futurize<future<std::pair<foreign_ptr<shared_ptr<transport::cql_server::response> >, service::client_state> > >::apply<transport::cql_server::connection::process_request()::{lambda(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&)#1}::operator()(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&) const::{lambda(temporary_buffer<char>)#1}::operator()(temporary_buffer) const::{lambda()#1}::operator()()::{lambda()#1}&>
> | | | | futurize<future<> >::apply<transport::cql_server::connection::process_request()::{lambda(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&)#1}::operator()(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&) const::{lambda(temporary_buffer<char>)#1}, temporary_buffer>
> | | | | futurize<future<> >::apply<transport::cql_server::connection::process_request()::{lambda(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&)#1}, future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> > >
> | | | | transport::cql_server::connection::process_request
> | | | | do_until_continued<transport::cql_server::connection::process()::{lambda()#2}, transport::cql_server::connection::process()::{lambda()#1}&>
> | | | | do_void_futurize_apply<void do_until_continued<transport::cql_server::connection::process()::{lambda()#2}, transport::cql_server::connection::process()::{lambda()#1}&>(transport::cql_server::connection::process()::{lambda()#1}&, transport::cql_server::connection::process()::{lambda()#2}&&, promise<>)::{lambda(future<>)#1}, promise<> >
> | | | | do_void_futurize_apply<void do_until_continued<transport::cql_server::connection::process()::{lambda()#2}, transport::cql_server::connection::process()::{lambda()#1}&>(transport::cql_server::connection::process()::{lambda()#1}&, transport::cql_server::connection::process()::{lambda()#2}&&, promise<>)::{lambda(future<>)#1}, promise<> >
> | | | | 0x6020000c3000
> | | | |
> | | | |--40.00%-- service::digest_read_resolver::~digest_read_resolver
> | | | | |
> | | | | --100.00%-- 0x610002612b50
> | | | |
> | | | --20.00%-- std::_Hashtable<basic_sstring<char, unsigned int, 15u>, std::pair<basic_sstring<char, unsigned int, 15u> const, std::vector<gms::inet_address, std::allocator<gms::inet_address> > >, std::allocator<std::pair<basic_sstring<char, unsigned int, 15u> const, std::vector<gms::inet_address, std::allocator<gms::inet_address> > > >, std::__detail::_Select1st, std::equal_to<basic_sstring<char, unsigned int, 15u> >, std::hash<basic_sstring<char, unsigned int, 15u> >, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<true, false, true> >::~_Hashtable
> | | | service::storage_proxy::send_to_live_endpoints
> | | | parallel_for_each<__gnu_cxx::__normal_iterator<unsigned long*, std::vector<unsigned long, std::allocator<unsigned long> > >, service::storage_proxy::mutate_begin(std::vector<unsigned long, std::allocator<unsigned long> >, db::consistency_level)::{lambda(unsigned long)#1}>
> | | | service::storage_proxy::mutate
> | | | service::storage_proxy::mutate_with_triggers
> | | | cql3::statements::modification_statement::execute_without_condition
> | | | cql3::statements::modification_statement::execute
> | | | cql3::query_processor::process_statement
> | | | transport::cql_server::connection::process_execute
> | | | transport::cql_server::connection::process_request_one
> | | | futurize<future<std::pair<foreign_ptr<shared_ptr<transport::cql_server::response> >, service::client_state> > >::apply<transport::cql_server::connection::process_request()::{lambda(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&)#1}::operator()(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&) const::{lambda(temporary_buffer<char>)#1}::operator()(temporary_buffer) const::{lambda()#1}::operator()()::{lambda()#1}&>
> | | | futurize<future<> >::apply<transport::cql_server::connection::process_request()::{lambda(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&)#1}::operator()(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&) const::{lambda(temporary_buffer<char>)#1}, temporary_buffer>
> | | | futurize<future<> >::apply<transport::cql_server::connection::process_request()::{lambda(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&)#1}, future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> > >
> | | | transport::cql_server::connection::process_request
> | | | do_until_continued<transport::cql_server::connection::process()::{lambda()#2}, transport::cql_server::connection::process()::{lambda()#1}&>
> | | | do_void_futurize_apply<void do_until_continued<transport::cql_server::connection::process()::{lambda()#2}, transport::cql_server::connection::process()::{lambda()#1}&>(transport::cql_server::connection::process()::{lambda()#1}&, transport::cql_server::connection::process()::{lambda()#2}&&, promise<>)::{lambda(future<>)#1}, promise<> >
> | | | do_void_futurize_apply<void do_until_continued<transport::cql_server::connection::process()::{lambda()#2}, transport::cql_server::connection::process()::{lambda()#1}&>(transport::cql_server::connection::process()::{lambda()#1}&, transport::cql_server::connection::process()::{lambda()#2}&&, promise<>)::{lambda(future<>)#1}, promise<> >
> | | | 0x6070000c3000
> | | |
> | | |--0.74%-- reactor::del_timer
> | | | |
> | | | |--80.00%-- 0x60a0000e2040
> | | | |
> | | | --20.00%-- 0x6080000c3db0
> | | |
> | | |--0.59%-- unimplemented::operator<<
> | | | |
> | | | |--25.00%-- _ZN12continuationIZN6futureIJ10shared_ptrIN9transport8messages14result_messageEEEE4thenIZN4cql315query_processor17process_statementES1_INS8_13cql_statementEERN7service11query_stateERKNS8_13query_optionsEEUlT_E_S6_EET0_OSI_EUlSL_E_JS5_EED2Ev
> | | | | 0x600100000008
> | | | |
> | | | |--25.00%-- floating_type_impl<float>::from_string
> | | | |
> | | | |--25.00%-- 0x60e0000e4c10
> | | | |
> | | | --25.00%-- _ZN12continuationIZN6futureIJ10shared_ptrIN9transport8messages14result_messageEEEE4thenIZN4cql315query_processor17process_statementES1_INS8_13cql_statementEERN7service11query_stateERKNS8_13query_optionsEEUlT_E_S6_EET0_OSI_EUlSL_E_JS5_EED2Ev
> | | | 0x600100000008
> | | |
> | | |--0.59%-- std::_Hashtable<unsigned long, std::pair<unsigned long const, service::storage_proxy::rh_entry>, std::allocator<std::pair<unsigned long const, service::storage_proxy::rh_entry> >, std::__detail::_Select1st, std::equal_to<unsigned long>, std::hash<unsigned long>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, false, true> >::_M_insert_unique_node
> | | | service::storage_proxy::register_response_handler
> | | | service::storage_proxy::create_write_response_handler
> | | | service::storage_proxy::create_write_response_handler
> | | | service::storage_proxy::mutate_prepare<std::vector<mutation, std::allocator<mutation> >, service::storage_proxy::mutate_prepare(std::vector<mutation, std::allocator<mutation> >&, db::consistency_level, db::write_type)::{lambda(mutation const&, db::consistency_level, db::write_type)#1}>
> | | | service::storage_proxy::mutate
> | | | service::storage_proxy::mutate_with_triggers
> | | | cql3::statements::modification_statement::execute_without_condition
> | | | cql3::statements::modification_statement::execute
> | | | cql3::query_processor::process_statement
> | | | transport::cql_server::connection::process_execute
> | | | transport::cql_server::connection::process_request_one
> | | | futurize<future<std::pair<foreign_ptr<shared_ptr<transport::cql_server::response> >, service::client_state> > >::apply<transport::cql_server::connection::process_request()::{lambda(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&)#1}::operator()(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&) const::{lambda(temporary_buffer<char>)#1}::operator()(temporary_buffer) const::{lambda()#1}::operator()()::{lambda()#1}&>
> | | | futurize<future<> >::apply<transport::cql_server::connection::process_request()::{lambda(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&)#1}::operator()(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&) const::{lambda(temporary_buffer<char>)#1}, temporary_buffer>
> | | | futurize<future<> >::apply<transport::cql_server::connection::process_request()::{lambda(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&)#1}, future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> > >
> | | | transport::cql_server::connection::process_request
> | | | do_until_continued<transport::cql_server::connection::process()::{lambda()#2}, transport::cql_server::connection::process()::{lambda()#1}&>
> | | | do_void_futurize_apply<void do_until_continued<transport::cql_server::connection::process()::{lambda()#2}, transport::cql_server::connection::process()::{lambda()#1}&>(transport::cql_server::connection::process()::{lambda()#1}&, transport::cql_server::connection::process()::{lambda()#2}&&, promise<>)::{lambda(future<>)#1}, promise<> >
> | | | do_void_futurize_apply<void do_until_continued<transport::cql_server::connection::process()::{lambda()#2}, transport::cql_server::connection::process()::{lambda()#1}&>(transport::cql_server::connection::process()::{lambda()#1}&, transport::cql_server::connection::process()::{lambda()#2}&&, promise<>)::{lambda(future<>)#1}, promise<> >
> | | | 0x60b0000c3000
> | | |
> | | |--0.59%-- mutation::set_clustered_cell
> | | | |
> | | | |--75.00%-- 0xa
> | | | |
> | | | --25.00%-- cql3::constants::setter::execute
> | | | cql3::statements::update_statement::add_update_for_key
> | | | _ZN8futurizeI6futureIJSt6vectorI8mutationSaIS2_EEEEE5applyIZN4cql310statements22modification_statement13get_mutationsERN7seastar7shardedIN7service13storage_proxyEEERKNS8_13query_optionsEblEUlT_E_JSt10unique_ptrINS8_17update_parametersESt14default_deleteISN_EEEEES5_OSK_OSt5tupleIJDpT0_EE
> | | | cql3::statements::modification_statement::get_mutations
> | | | cql3::statements::modification_statement::execute_without_condition
> | | | cql3::query_options::query_options
> | | | 0x7f4ad89f80e0
> | | |
> | | |--0.59%-- memory::small_pool::small_pool
> | | | |
> | | | |--25.00%-- memory::stats
> | | | | boost::program_options::variables_map::get
> | | | |
> | | | |--25.00%-- memory::reclaimer::~reclaimer
> | | | | 0x1e
> | | | |
> | | | |--25.00%-- memory::allocate_aligned
> | | | |
> | | | --25.00%-- memory::small_pool::add_more_objects
> | | | memory::small_pool::add_more_objects
> | | | 0x6100000e0310
> | | |
> | | |--0.59%-- __memcpy_sse2_unaligned
> | | | |
> | | | |--50.00%-- mutation_partition_applier::accept_row_cell
> | | | | mutation_partition_view::accept
> | | | | boost::intrusive::bstree_algorithms<boost::intrusive::rbtree_node_traits<void*, false> >::prev_node
> | | | | 0x12d
> | | | |
> | | | |--25.00%-- scanning_reader::operator()
> | | | | sstables::sstable::do_write_components
> | | | | sstables::sstable::prepare_write_components
> | | | | std::_Function_handler<void (), futurize<std::result_of<std::decay<sstables::sstable::write_components(mutation_reader, unsigned long, lw_shared_ptr<schema const>, unsigned long)::{lambda()#1}>::type ()>::type>::type seastar::async<sstables::sstable::write_components(mutation_reader, unsigned long, lw_shared_ptr<schema const>, unsigned long)::{lambda()#1}>(std::decay&&, (std::decay<sstables::sstable::write_components(mutation_reader, unsigned long, lw_shared_ptr<schema const>, unsigned long)::{lambda()#1}>::type&&)...)::{lambda(futurize<std::result_of<std::decay<{lambda()#1}>::type ()>::type> seastar::async<{lambda()#1}>(futurize<std::result_of<std::decay<{lambda()#1}>::type ()>::type>::type, std::decay<{lambda()#1}>::type&&)::work&)#1}::operator()(futurize<std::result_of<std::decay<{lambda()#1}>::type ()>::type> seastar::async<{lambda()#1}>(futurize<std::result_of<std::decay<{lambda()#1}>::type ()>::type>::type, std::decay<{lambda()#1}>::type&&)::work)::{lambda()#1}>::_M_invoke
> | | | | _GLOBAL__sub_I__ZN12app_templateC2Ev
> | | | |
> | | | --25.00%-- memtable::find_or_create_partition_slow
> | | | memtable::apply
> | | | database::apply_in_memory
> | | | database::do_apply
> | | | database::apply
> | | | smp_message_queue::async_work_item<future<> seastar::sharded<database>::invoke_on<service::storage_proxy::mutate_locally(mutation const&)::{lambda(database&)#1}, future<> >(unsigned int, service::storage_proxy::mutate_locally(mutation const&)::{lambda(database&)#1}&&)::{lambda()#1}>::process
> | | | smp_message_queue::process_queue<2ul, smp_message_queue::process_incoming()::{lambda(smp_message_queue::work_item*)#1}>
> | | | boost::lockfree::detail::ringbuffer_base<smp_message_queue::work_item*>::pop
> | | | boost::program_options::variables_map::get
> | | |
> | | |--0.59%-- smp_message_queue::flush_response_batch
> | | | |
> | | | |--25.00%-- boost::lockfree::detail::ringbuffer_base<smp_message_queue::work_item*>::pop
> | | | | boost::program_options::variables_map::get
> | | | |
> | | | |--25.00%-- 0x13
> | | | |
> | | | |--25.00%-- 0x7f4ad5ff8f40
> | | | |
> | | | --25.00%-- reactor::run
> | | | smp::configure(boost::program_options::variables_map)::{lambda()#1}::operator()
> | | | continuation<future<temporary_buffer<char> > future<>::then<future<temporary_buffer<char> > file::dma_read_bulk<char>(unsigned long, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long)::{lambda()#3}, future<temporary_buffer<char> > >(future<temporary_buffer<char> > file::dma_read_bulk<char>(unsigned long, unsigned long)::{lambda(unsigned long)#1}::operator()(unsigned long)::{lambda()#3}&&)::{lambda(future<temporary_buffer<char> >)#1}>::run
> | | | 0x600000043d00
> | | --54.38%-- [...]
> | |
> | |--14.26%-- schedule_timeout
> | | |
> | | |--38.52%-- wait_for_completion
> | | | |
> | | | |--90.07%-- flush_work
> | | | | xlog_cil_force_lsn
> | | | | |
> | | | | |--96.85%-- _xfs_log_force_lsn
> | | | | | |
> | | | | | |--79.67%-- xfs_file_fsync
> | | | | | | vfs_fsync_range
> | | | | | | do_fsync
> | | | | | | sys_fdatasync
> | | | | | | entry_SYSCALL_64_fastpath
> | | | | | | |
> | | | | | | --100.00%-- 0x7f4ade4212ad
> | | | | | | syscall_work_queue::work_item_returning<syscall_result<int>, posix_file_impl::flush()::{lambda()#1}>::process
> | | | | | | 0x6030000c3ec0
> | | | | | |
> | | | | | --20.33%-- xfs_dir_fsync
> | | | | | vfs_fsync_range
> | | | | | do_fsync
> | | | | | sys_fdatasync
> | | | | | entry_SYSCALL_64_fastpath
> | | | | | |
> | | | | | --100.00%-- 0x7f4ade4212ad
> | | | | | syscall_work_queue::work_item_returning<syscall_result<int>, posix_file_impl::flush()::{lambda()#1}>::process
> | | | | | 0x6040000c3ec0
> | | | | |
> | | | | --3.15%-- _xfs_log_force
> | | | | xfs_log_force
> | | | | xfs_buf_lock
> | | | | _xfs_buf_find
> | | | | xfs_buf_get_map
> | | | | xfs_trans_get_buf_map
> | | | | xfs_btree_get_bufl
> | | | | xfs_bmap_extents_to_btree
> | | | | xfs_bmap_add_extent_hole_real
> | | | | xfs_bmapi_write
> | | | | xfs_iomap_write_direct
> | | | | __xfs_get_blocks
> | | | | xfs_get_blocks_direct
> | | | | do_blockdev_direct_IO
> | | | | __blockdev_direct_IO
> | | | | xfs_vm_direct_IO
> | | | | xfs_file_dio_aio_write
> | | | | xfs_file_write_iter
> | | | | aio_run_iocb
> | | | | do_io_submit
> | | | | sys_io_submit
> | | | | entry_SYSCALL_64_fastpath
> | | | | io_submit
> | | | | 0x46d98a
> | | | |
> | | | --9.93%-- submit_bio_wait
> | | | blkdev_issue_flush
> | | | xfs_blkdev_issue_flush
> | | | xfs_file_fsync
> | | | vfs_fsync_range
> | | | do_fsync
> | | | sys_fdatasync
> | | | entry_SYSCALL_64_fastpath
> | | | |
> | | | --100.00%-- 0x7f4ade4212ad
> | | | syscall_work_queue::work_item_returning<syscall_result<int>, posix_file_impl::flush()::{lambda()#1}>::process
> | | | 0x6030000c3ec0
> | | |
> | | |--32.79%-- io_schedule_timeout
> | | | bit_wait_io
> | | | __wait_on_bit
> | | | |
> | | | |--51.67%-- wait_on_page_bit
> | | | | |
> | | | | |--95.16%-- filemap_fdatawait_range
> | | | | | filemap_write_and_wait_range
> | | | | | xfs_file_fsync
> | | | | | vfs_fsync_range
> | | | | | do_fsync
> | | | | | sys_fdatasync
> | | | | | entry_SYSCALL_64_fastpath
> | | | | | 0x7f4ade4212ad
> | | | | | syscall_work_queue::work_item_returning<syscall_result<int>, posix_file_impl::flush()::{lambda()#1}>::process
> | | | | | 0x60b0000c3ec0
> | | | | |
> | | | | --4.84%-- __migration_entry_wait
> | | | | migration_entry_wait
> | | | | handle_mm_fault
> | | | | __do_page_fault
> | | | | do_page_fault
> | | | | page_fault
> | | | | std::_Function_handler<void (), httpd::http_server::_date_format_timer::{lambda()#1}>::_M_invoke
> | | | | |
> | | | | --100.00%-- service::storage_proxy::mutate_prepare<std::vector<mutation, std::allocator<mutation> >, service::storage_proxy::mutate_prepare(std::vector<mutation, std::allocator<mutation> >&, db::consistency_level, db::write_type)::{lambda(mutation const&, db::consistency_level, db::write_type)#1}>
> | | | | service::storage_proxy::mutate
> | | | | service::storage_proxy::mutate_with_triggers
> | | | | cql3::statements::modification_statement::execute_without_condition
> | | | | cql3::statements::modification_statement::execute
> | | | | cql3::query_processor::process_statement
> | | | | transport::cql_server::connection::process_execute
> | | | | transport::cql_server::connection::process_request_one
> | | | | futurize<future<std::pair<foreign_ptr<shared_ptr<transport::cql_server::response> >, service::client_state> > >::apply<transport::cql_server::connection::process_request()::{lambda(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&)#1}::operator()(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&) const::{lambda(temporary_buffer<char>)#1}::operator()(temporary_buffer) const::{lambda()#1}::operator()()::{lambda()#1}&>
> | | | | futurize<future<> >::apply<transport::cql_server::connection::process_request()::{lambda(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&)#1}::operator()(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&) const::{lambda(temporary_buffer<char>)#1}, temporary_buffer>
> | | | | futurize<future<> >::apply<transport::cql_server::connection::process_request()::{lambda(future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> >&&)#1}, future<std::experimental::fundamentals_v1::optional<transport::cql_binary_frame_v3> > >
> | | | | transport::cql_server::connection::process_request
> | | | | do_until_continued<transport::cql_server::connection::process()::{lambda()#2}, transport::cql_server::connection::process()::{lambda()#1}&>
> | | | | do_void_futurize_apply<void do_until_continued<transport::cql_server::connection::process()::{lambda()#2}, transport::cql_server::connection::process()::{lambda()#1}&>(transport::cql_server::connection::process()::{lambda()#1}&, transport::cql_server::connection::process()::{lambda()#2}&&, promise<>)::{lambda(future<>)#1}, promise<> >
> | | | | do_void_futurize_apply<void do_until_continued<transport::cql_server::connection::process()::{lambda()#2}, transport::cql_server::connection::process()::{lambda()#1}&>(transport::cql_server::connection::process()::{lambda()#1}&, transport::cql_server::connection::process()::{lambda()#2}&&, promise<>)::{lambda(future<>)#1}, promise<> >
> | | | | 0x6140000c3000
> | | | |
> | | | --48.33%-- out_of_line_wait_on_bit
> | | | block_truncate_page
> | | | xfs_setattr_size
> | | | xfs_vn_setattr
> | | | notify_change
> | | | do_truncate
> | | | do_sys_ftruncate.constprop.15
> | | | sys_ftruncate
> | | | entry_SYSCALL_64_fastpath
> | | | __GI___ftruncate64
> | | | syscall_work_queue::work_item_returning<syscall_result_extra<stat>, posix_file_impl::stat()::{lambda()#1}>::process
> | | | |
> | | | |--13.79%-- 0x7f4ad29ff700
> | | | |
> | | | |--13.79%-- 0x7f4acdbff700
> | | | |
> | | | |--12.07%-- 0x7f4ad05ff700
> | | | |
> | | | |--12.07%-- 0x7f4acedff700
> | | | |
> | | | |--10.34%-- 0x7f4ad0bff700
> | | | |
> | | | |--6.90%-- 0x7f4ad2fff700
> | | | |
> | | | |--6.90%-- 0x7f4ad11ff700
> | | | |
> | | | |--6.90%-- 0x7f4acf9ff700
> | | | |
> | | | |--6.90%-- 0x7f4acf3ff700
> | | | |
> | | | |--6.90%-- 0x7f4ace7ff700
> | | | |
> | | | |--1.72%-- 0x7f4ad17ff700
> | | | |
> | | | --1.72%-- 0x7f4aca5ff700
> | | |
> | | --28.69%-- __down
> | | down
> | | xfs_buf_lock
> | | _xfs_buf_find
> | | xfs_buf_get_map
> | | |
> | | |--97.14%-- xfs_buf_read_map
> | | | xfs_trans_read_buf_map
> | | | |
> | | | |--98.04%-- xfs_read_agf
> | | | | xfs_alloc_read_agf
> | | | | xfs_alloc_fix_freelist
> | | | | |
> | | | | |--93.00%-- xfs_free_extent
> | | | | | xfs_bmap_finish
> | | | | | xfs_itruncate_extents
> | | | | | |
> | | | | | |--87.10%-- xfs_inactive_truncate
> | | | | | | xfs_inactive
> | | | | | | xfs_fs_evict_inode
> | | | | | | evict
> | | | | | | iput
> | | | | | | __dentry_kill
> | | | | | | dput
> | | | | | | __fput
> | | | | | | ____fput
> | | | | | | task_work_run
> | | | | | | do_notify_resume
> | | | | | | int_signal
> | | | | | | __libc_close
> | | | | | | std::experimental::fundamentals_v1::bad_optional_access::~bad_optional_access
> | | | | | |
> | | | | | --12.90%-- xfs_setattr_size
> | | | | | xfs_vn_setattr
> | | | | | notify_change
> | | | | | do_truncate
> | | | | | do_sys_ftruncate.constprop.15
> | | | | | sys_ftruncate
> | | | | | entry_SYSCALL_64_fastpath
> | | | | | |
> | | | | | --100.00%-- __GI___ftruncate64
> | | | | | syscall_work_queue::work_item_returning<syscall_result_extra<stat>, posix_file_impl::stat()::{lambda()#1}>::process
> | | | | | |
> | | | | | |--20.00%-- 0x7f4ad0bff700
> | | | | | |
> | | | | | |--20.00%-- 0x7f4acedff700
> | | | | | |
> | | | | | |--10.00%-- 0x7f4ad2fff700
> | | | | | |
> | | | | | |--10.00%-- 0x7f4ad17ff700
> | | | | | |
> | | | | | |--10.00%-- 0x7f4ad11ff700
> | | | | | |
> | | | | | |--10.00%-- 0x7f4ad05ff700
> | | | | | |
> | | | | | |--10.00%-- 0x7f4acf3ff700
> | | | | | |
> | | | | | --10.00%-- 0x7f4acdbff700
> | | | | |
> | | | | --7.00%-- xfs_alloc_vextent
> | | | | xfs_bmap_btalloc
> | | | | xfs_bmap_alloc
> | | | | xfs_bmapi_write
> | | | | xfs_iomap_write_direct
> | | | | __xfs_get_blocks
> | | | | xfs_get_blocks_direct
> | | | | do_blockdev_direct_IO
> | | | | __blockdev_direct_IO
> | | | | xfs_vm_direct_IO
> | | | | xfs_file_dio_aio_write
> | | | | xfs_file_write_iter
> | | | | aio_run_iocb
> | | | | do_io_submit
> | | | | sys_io_submit
> | | | | entry_SYSCALL_64_fastpath
> | | | | io_submit
> | | | | 0x46d98a
> | | | |
> | | | --1.96%-- xfs_read_agi
> | | | xfs_iunlink_remove
> | | | xfs_ifree
> | | | xfs_inactive_ifree
> | | | xfs_inactive
> | | | xfs_fs_evict_inode
> | | | evict
> | | | iput
> | | | __dentry_kill
> | | | dput
> | | | __fput
> | | | ____fput
> | | | task_work_run
> | | | do_notify_resume
> | | | int_signal
> | | | __libc_close
> | | | std::experimental::fundamentals_v1::bad_optional_access::~bad_optional_access
> | | |
> | | --2.86%-- xfs_trans_get_buf_map
> | | xfs_btree_get_bufl
> | | xfs_bmap_extents_to_btree
> | | xfs_bmap_add_extent_hole_real
> | | xfs_bmapi_write
> | | xfs_iomap_write_direct
> | | __xfs_get_blocks
> | | xfs_get_blocks_direct
> | | do_blockdev_direct_IO
> | | __blockdev_direct_IO
> | | xfs_vm_direct_IO
> | | xfs_file_dio_aio_write
> | | xfs_file_write_iter
> | | aio_run_iocb
> | | do_io_submit
> | | sys_io_submit
> | | entry_SYSCALL_64_fastpath
> | | io_submit
> | | 0x46d98a
> | |
> | |--13.48%-- eventfd_ctx_read
> | | eventfd_read
> | | __vfs_read
> | | vfs_read
> | | sys_read
> | | entry_SYSCALL_64_fastpath
> | | 0x7f4ade6f754d
> | | smp_message_queue::respond
> | | 0xffffffffffffffff
> | |
> | |--7.83%-- md_flush_request
> | | raid0_make_request
> | | md_make_request
> | | generic_make_request
> | | submit_bio
> | | |
> | | |--92.54%-- submit_bio_wait
> | | | blkdev_issue_flush
> | | | xfs_blkdev_issue_flush
> | | | xfs_file_fsync
> | | | vfs_fsync_range
> | | | do_fsync
> | | | sys_fdatasync
> | | | entry_SYSCALL_64_fastpath
> | | | |
> | | | --100.00%-- 0x7f4ade4212ad
> | | | syscall_work_queue::work_item_returning<syscall_result<int>, posix_file_impl::flush()::{lambda()#1}>::process
> | | | 0x6010000c3ec0
> | | |
> | | --7.46%-- _xfs_buf_ioapply
> | | xfs_buf_submit
> | | xlog_bdstrat
> | | xlog_sync
> | | xlog_state_release_iclog
> | | |
> | | |--73.33%-- _xfs_log_force_lsn
> | | | xfs_file_fsync
> | | | vfs_fsync_range
> | | | do_fsync
> | | | sys_fdatasync
> | | | entry_SYSCALL_64_fastpath
> | | | |
> | | | --100.00%-- 0x7f4ade4212ad
> | | | syscall_work_queue::work_item_returning<syscall_result<int>, posix_file_impl::flush()::{lambda()#1}>::process
> | | | 0x6080000c3ec0
> | | |
> | | --26.67%-- _xfs_log_force
> | | xfs_log_force
> | | xfs_buf_lock
> | | _xfs_buf_find
> | | xfs_buf_get_map
> | | xfs_trans_get_buf_map
> | | xfs_btree_get_bufl
> | | xfs_bmap_extents_to_btree
> | | xfs_bmap_add_extent_hole_real
> | | xfs_bmapi_write
> | | xfs_iomap_write_direct
> | | __xfs_get_blocks
> | | xfs_get_blocks_direct
> | | do_blockdev_direct_IO
> | | __blockdev_direct_IO
> | | xfs_vm_direct_IO
> | | xfs_file_dio_aio_write
> | | xfs_file_write_iter
> | | aio_run_iocb
> | | do_io_submit
> | | sys_io_submit
> | | entry_SYSCALL_64_fastpath
> | | io_submit
> | | 0x46d98a
> | |
> | |--5.53%-- _xfs_log_force_lsn
> | | |
> | | |--80.28%-- xfs_file_fsync
> | | | vfs_fsync_range
> | | | do_fsync
> | | | sys_fdatasync
> | | | entry_SYSCALL_64_fastpath
> | | | |
> | | | --100.00%-- 0x7f4ade4212ad
> | | | syscall_work_queue::work_item_returning<syscall_result<int>, posix_file_impl::flush()::{lambda()#1}>::process
> | | | |
> | | | |--97.92%-- 0x60d0000c3ec0
> | | | |
> | | | |--1.04%-- 0x6020000c3ec0
> | | | |
> | | | --1.04%-- 0x600000557ec0
> | | |
> | | --19.72%-- xfs_dir_fsync
> | | vfs_fsync_range
> | | do_fsync
> | | sys_fdatasync
> | | entry_SYSCALL_64_fastpath
> | | |
> | | --100.00%-- 0x7f4ade4212ad
> | | syscall_work_queue::work_item_returning<syscall_result<int>, posix_file_impl::flush()::{lambda()#1}>::process
> | | 0x6040000c3ec0
> | |
> | |--1.25%-- rwsem_down_read_failed
> | | call_rwsem_down_read_failed
> | | |
> | | |--90.62%-- xfs_ilock
> | | | |
> | | | |--86.21%-- xfs_ilock_data_map_shared
> | | | | __xfs_get_blocks
> | | | | xfs_get_blocks_direct
> | | | | do_blockdev_direct_IO
> | | | | __blockdev_direct_IO
> | | | | xfs_vm_direct_IO
> | | | | xfs_file_dio_aio_write
> | | | | xfs_file_write_iter
> | | | | aio_run_iocb
> | | | | do_io_submit
> | | | | sys_io_submit
> | | | | entry_SYSCALL_64_fastpath
> | | | | |
> | | | | --100.00%-- io_submit
> | | | | 0x46d98a
> | | | |
> | | | |--6.90%-- xfs_file_fsync
> | | | | vfs_fsync_range
> | | | | do_fsync
> | | | | sys_fdatasync
> | | | | entry_SYSCALL_64_fastpath
> | | | | 0x7f4ade4212ad
> | | | | syscall_work_queue::work_item_returning<syscall_result<int>, posix_file_impl::flush()::{lambda()#1}>::process
> | | | | 0x6090000c3ec0
> | | | |
> | | | --6.90%-- xfs_dir_fsync
> | | | vfs_fsync_range
> | | | do_fsync
> | | | sys_fdatasync
> | | | entry_SYSCALL_64_fastpath
> | | | 0x7f4ade4212ad
> | | | syscall_work_queue::work_item_returning<syscall_result<int>, posix_file_impl::flush()::{lambda()#1}>::process
> | | | 0x6070000c3ec0
> | | |
> | | --9.38%-- xfs_log_commit_cil
> | | __xfs_trans_commit
> | | xfs_trans_commit
> | | |
> | | |--33.33%-- xfs_setattr_size
> | | | xfs_vn_setattr
> | | | notify_change
> | | | do_truncate
> | | | do_sys_ftruncate.constprop.15
> | | | sys_ftruncate
> | | | entry_SYSCALL_64_fastpath
> | | | __GI___ftruncate64
> | | | syscall_work_queue::work_item_returning<syscall_result_extra<stat>, posix_file_impl::stat()::{lambda()#1}>::process
> | | | 0x7f4acedff700
> | | |
> | | |--33.33%-- xfs_vn_update_time
> | | | file_update_time
> | | | xfs_file_aio_write_checks
> | | | xfs_file_dio_aio_write
> | | | xfs_file_write_iter
> | | | aio_run_iocb
> | | | do_io_submit
> | | | sys_io_submit
> | | | entry_SYSCALL_64_fastpath
> | | | io_submit
> | | | 0x46d98a
> | | |
> | | --33.33%-- xfs_bmap_add_attrfork
> | | xfs_attr_set
> | | xfs_initxattrs
> | | security_inode_init_security
> | | xfs_init_security
> | | xfs_generic_create
> | | xfs_vn_mknod
> | | xfs_vn_create
> | | vfs_create
> | | path_openat
> | | do_filp_open
> | | do_sys_open
> | | sys_open
> | | entry_SYSCALL_64_fastpath
> | | 0x7f4ade6f7cdd
> | | syscall_work_queue::work_item_returning<syscall_result<int>, reactor::open_file_dma(basic_sstring<char, unsigned int, 15u>, open_flags, file_open_options)::{lambda()#1}>::process
> | | 0xffffffffffffffff
> | |
> | |--0.97%-- rwsem_down_write_failed
> | | call_rwsem_down_write_failed
> | | xfs_ilock
> | | xfs_vn_update_time
> | | file_update_time
> | | xfs_file_aio_write_checks
> | | xfs_file_dio_aio_write
> | | xfs_file_write_iter
> | | aio_run_iocb
> | | do_io_submit
> | | sys_io_submit
> | | entry_SYSCALL_64_fastpath
> | | io_submit
> | | 0x46d98a
> | |
> | |--0.51%-- xlog_cil_force_lsn
> | | |
> | | |--92.31%-- _xfs_log_force_lsn
> | | | |
> | | | |--91.67%-- xfs_file_fsync
> | | | | vfs_fsync_range
> | | | | do_fsync
> | | | | sys_fdatasync
> | | | | entry_SYSCALL_64_fastpath
> | | | | 0x7f4ade4212ad
> | | | | syscall_work_queue::work_item_returning<syscall_result<int>, posix_file_impl::flush()::{lambda()#1}>::process
> | | | | 0x60b0000c3ec0
> | | | |
> | | | --8.33%-- xfs_dir_fsync
> | | | vfs_fsync_range
> | | | do_fsync
> | | | sys_fdatasync
> | | | entry_SYSCALL_64_fastpath
> | | | 0x7f4ade4212ad
> | | | syscall_work_queue::work_item_returning<syscall_result<int>, posix_file_impl::flush()::{lambda()#1}>::process
> | | | 0x60d0000c3ec0
> | | |
> | | --7.69%-- _xfs_log_force
> | | xfs_log_force
> | | xfs_buf_lock
> | | _xfs_buf_find
> | | xfs_buf_get_map
> | | xfs_trans_get_buf_map
> | | xfs_btree_get_bufl
> | | xfs_bmap_extents_to_btree
> | | xfs_bmap_add_extent_hole_real
> | | xfs_bmapi_write
> | | xfs_iomap_write_direct
> | | __xfs_get_blocks
> | | xfs_get_blocks_direct
> | | do_blockdev_direct_IO
> | | __blockdev_direct_IO
> | | xfs_vm_direct_IO
> | | xfs_file_dio_aio_write
> | | xfs_file_write_iter
> | | aio_run_iocb
> | | do_io_submit
> | | sys_io_submit
> | | entry_SYSCALL_64_fastpath
> | | io_submit
> | | 0x46d98a
> | --0.04%-- [...]
> |
> --3.82%-- preempt_schedule_common
> |
> |--99.02%-- _cond_resched
> | |
> | |--41.58%-- wait_for_completion
> | | |
> | | |--66.67%-- flush_work
> | | | xlog_cil_force_lsn
> | | | |
> | | | |--96.43%-- _xfs_log_force_lsn
> | | | | |
> | | | | |--77.78%-- xfs_file_fsync
> | | | | | vfs_fsync_range
> | | | | | do_fsync
> | | | | | sys_fdatasync
> | | | | | entry_SYSCALL_64_fastpath
> | | | | | 0x7f4ade4212ad
> | | | | | syscall_work_queue::work_item_returning<syscall_result<int>, posix_file_impl::flush()::{lambda()#1}>::process
> | | | | | 0x6030000c3ec0
> | | | | |
> | | | | --22.22%-- xfs_dir_fsync
> | | | | vfs_fsync_range
> | | | | do_fsync
> | | | | sys_fdatasync
> | | | | entry_SYSCALL_64_fastpath
> | | | | |
> | | | | --100.00%-- 0x7f4ade4212ad
> | | | | syscall_work_queue::work_item_returning<syscall_result<int>, posix_file_impl::flush()::{lambda()#1}>::process
> | | | | 0x6030000c3ec0
> | | | |
> | | | --3.57%-- _xfs_log_force
> | | | xfs_log_force
> | | | xfs_buf_lock
> | | | _xfs_buf_find
> | | | xfs_buf_get_map
> | | | xfs_trans_get_buf_map
> | | | xfs_btree_get_bufl
> | | | xfs_bmap_extents_to_btree
> | | | xfs_bmap_add_extent_hole_real
> | | | xfs_bmapi_write
> | | | xfs_iomap_write_direct
> | | | __xfs_get_blocks
> | | | xfs_get_blocks_direct
> | | | do_blockdev_direct_IO
> | | | __blockdev_direct_IO
> | | | xfs_vm_direct_IO
> | | | xfs_file_dio_aio_write
> | | | xfs_file_write_iter
> | | | aio_run_iocb
> | | | do_io_submit
> | | | sys_io_submit
> | | | entry_SYSCALL_64_fastpath
> | | | io_submit
> | | | 0x46d98a
> | | |
> | | --33.33%-- submit_bio_wait
> | | blkdev_issue_flush
> | | xfs_blkdev_issue_flush
> | | xfs_file_fsync
> | | vfs_fsync_range
> | | do_fsync
> | | sys_fdatasync
> | | entry_SYSCALL_64_fastpath
> | | |
> | | --100.00%-- 0x7f4ade4212ad
> | | syscall_work_queue::work_item_returning<syscall_result<int>, posix_file_impl::flush()::{lambda()#1}>::process
> | | 0x6030000c3ec0
> | |
> | |--33.66%-- flush_work
> | | xlog_cil_force_lsn
> | | |
> | | |--97.06%-- _xfs_log_force_lsn
> | | | |
> | | | |--78.79%-- xfs_file_fsync
> | | | | vfs_fsync_range
> | | | | do_fsync
> | | | | sys_fdatasync
> | | | | entry_SYSCALL_64_fastpath
> | | | | 0x7f4ade4212ad
> | | | | syscall_work_queue::work_item_returning<syscall_result<int>, posix_file_impl::flush()::{lambda()#1}>::process
> | | | | 0x6030000c3ec0
> | | | |
> | | | --21.21%-- xfs_dir_fsync
> | | | vfs_fsync_range
> | | | do_fsync
> | | | sys_fdatasync
> | | | entry_SYSCALL_64_fastpath
> | | | |
> | | | --100.00%-- 0x7f4ade4212ad
> | | | syscall_work_queue::work_item_returning<syscall_result<int>, posix_file_impl::flush()::{lambda()#1}>::process
> | | | 0x6030000c3ec0
> | | |
> | | --2.94%-- _xfs_log_force
> | | xfs_log_force
> | | xfs_buf_lock
> | | _xfs_buf_find
> | | xfs_buf_get_map
> | | xfs_trans_get_buf_map
> | | xfs_btree_get_bufl
> | | xfs_bmap_extents_to_btree
> | | xfs_bmap_add_extent_hole_real
> | | xfs_bmapi_write
> | | xfs_iomap_write_direct
> | | __xfs_get_blocks
> | | xfs_get_blocks_direct
> | | do_blockdev_direct_IO
> | | __blockdev_direct_IO
> | | xfs_vm_direct_IO
> | | xfs_file_dio_aio_write
> | | xfs_file_write_iter
> | | aio_run_iocb
> | | do_io_submit
> | | sys_io_submit
> | | entry_SYSCALL_64_fastpath
> | | io_submit
> | | 0x46d98a
> | |
> | |--13.86%-- lock_sock_nested
> | | |
> | | |--78.57%-- tcp_sendmsg
> | | | inet_sendmsg
> | | | sock_sendmsg
> | | | SYSC_sendto
> | | | sys_sendto
> | | | entry_SYSCALL_64_fastpath
> | | | __libc_send
> | | | _ZN12continuationIZN6futureIJmEE4thenIZN7reactor14write_all_partER17pollable_fd_statePKvmmEUlmE_S0_IJEEEET0_OT_EUlSC_E_JmEE3runEv
> | | | |
> | | | |--36.36%-- 0x7f4ad6bf8de0
> | | | |
> | | | |--9.09%-- 0x4
> | | | |
> | | | |--9.09%-- 0x7f4adadf8de0
> | | | |
> | | | |--9.09%-- 0x7f4ada1f8de0
> | | | |
> | | | |--9.09%-- 0x7f4ad89f8de0
> | | | |
> | | | |--9.09%-- 0x7f4ad83f8de0
> | | | |
> | | | |--9.09%-- 0x7f4ad4df8de0
> | | | |
> | | | --9.09%-- 0x7f4ad35f8de0
> | | |
> | | --21.43%-- tcp_recvmsg
> | | inet_recvmsg
> | | sock_recvmsg
> | | sock_read_iter
> | | __vfs_read
> | | vfs_read
> | | sys_read
> | | entry_SYSCALL_64_fastpath
> | | 0x7f4ade6f754d
> | | reactor::read_some
> | | |
> | | |--66.67%-- _ZN12continuationIZN6futureIJEE4thenIZZN7service13storage_proxy22send_to_live_endpointsEmENKUlRSt4pairIK13basic_sstringIcjLj15EESt6vectorIN3gms12inet_addressESaISB_EEEE_clESF_EUlvE_S1_EET0_OT_EUlSK_E_JEE3runEv
> | | | reactor::del_timer
> | | | 0x6160000e2040
> | | |
> | | --33.33%-- continuation<future<> future<>::then_wrapped<future<> future<>::finally<auto seastar::with_gate<transport::cql_server::connection::process()::{lambda()#2}::operator()() const::{lambda()#1}>(seastar::gate&, transport::cql_server::connection::process()::{lambda()#2}::operator()() const::{lambda()#1}&&)::{lambda()#1}>(seastar::gate&)::{lambda(future<>)#1}::operator()(future<>)::{lambda(seastar::gate)#1}, future<> >(seastar::gate&)::{lambda(seastar::gate&)#1}>::run
> | | reactor::del_timer
> | | 0x6030000e2040
> | |
> | |--3.96%-- generic_make_request_checks
> | | generic_make_request
> | | submit_bio
> | | do_blockdev_direct_IO
> | | __blockdev_direct_IO
> | | xfs_vm_direct_IO
> | | xfs_file_dio_aio_write
> | | xfs_file_write_iter
> | | aio_run_iocb
> | | do_io_submit
> | | sys_io_submit
> | | entry_SYSCALL_64_fastpath
> | | io_submit
> | | 0x46d98a
> | |
> | |--3.96%-- kmem_cache_alloc_node
> | | __alloc_skb
> | | sk_stream_alloc_skb
> | | tcp_sendmsg
> | | inet_sendmsg
> | | sock_sendmsg
> | | SYSC_sendto
> | | sys_sendto
> | | entry_SYSCALL_64_fastpath
> | | __libc_send
> | | _ZN12continuationIZN6futureIJmEE4thenIZN7reactor14write_all_partER17pollable_fd_statePKvmmEUlmE_S0_IJEEEET0_OT_EUlSC_E_JmEE3runEv
> | | |
> | | |--25.00%-- 0x7f4ad9bf8de0
> | | |
> | | |--25.00%-- 0x7f4ad7df8de0
> | | |
> | | |--25.00%-- 0x7f4ad77f8de0
> | | |
> | | --25.00%-- 0x7f4ad59f8de0
> | |
> | |--0.99%-- unmap_underlying_metadata
> | | do_blockdev_direct_IO
> | | __blockdev_direct_IO
> | | xfs_vm_direct_IO
> | | xfs_file_dio_aio_write
> | | xfs_file_write_iter
> | | aio_run_iocb
> | | do_io_submit
> | | sys_io_submit
> | | entry_SYSCALL_64_fastpath
> | | io_submit
> | | 0x46d98a
> | |
> | |--0.99%-- __kmalloc_node_track_caller
> | | __kmalloc_reserve.isra.32
> | | __alloc_skb
> | | sk_stream_alloc_skb
> | | tcp_sendmsg
> | | inet_sendmsg
> | | sock_sendmsg
> | | SYSC_sendto
> | | sys_sendto
> | | entry_SYSCALL_64_fastpath
> | | __libc_send
> | | _ZN12continuationIZN6futureIJmEE4thenIZN7reactor14write_all_partER17pollable_fd_statePKvmmEUlmE_S0_IJEEEET0_OT_EUlSC_E_JmEE3runEv
> | | 0x7f4ad6bf8de0
> | |
> | --0.99%-- task_work_run
> | do_notify_resume
> | int_signal
> | __libc_close
> | std::experimental::fundamentals_v1::bad_optional_access::~bad_optional_access
> |
> --0.98%-- __cond_resched_softirq
> release_sock
> tcp_sendmsg
> inet_sendmsg
> sock_sendmsg
> SYSC_sendto
> sys_sendto
> entry_SYSCALL_64_fastpath
> __libc_send
> _ZN12continuationIZN6futureIJmEE4thenIZN7reactor14write_all_partER17pollable_fd_statePKvmmEUlmE_S0_IJEEEET0_OT_EUlSC_E_JmEE3runEv
> 0x7f4ada1f8de0
>
>
>
> #
> # (For a higher level overview, try: perf report --sort comm,dso)
> #
> [164814.835933] CPU: 22 PID: 48042 Comm: scylla Tainted: G E 4.2.6-200.fc22.x86_64 #1
> [164814.835936] Hardware name: Xen HVM domU, BIOS 4.2.amazon 05/06/2015
> [164814.835937] 0000000000000000 00000000a8713b7a ffff8802fb977ab8 ffffffff817729ea
> [164814.835941] 0000000000000000 ffff88076a69f780 ffff8802fb977ad8 ffffffffa03217a6
> [164814.835946] ffff88077119bcb0 0000000000000000 ffff8802fb977b08 ffffffffa034e749
> [164814.835951] Call Trace:
> [164814.835954] [<ffffffff817729ea>] dump_stack+0x45/0x57
> [164814.835971] [<ffffffffa03217a6>] xfs_buf_stale+0x26/0x80 [xfs]
> [164814.835989] [<ffffffffa034e749>] xfs_trans_binval+0x79/0x100 [xfs]
> [164814.836001] [<ffffffffa02f479b>] xfs_bmap_btree_to_extents+0x12b/0x1a0 [xfs]
> [164814.836012] [<ffffffffa02f8977>] xfs_bunmapi+0x967/0x9f0 [xfs]
> [164814.836027] [<ffffffffa0334b9e>] xfs_itruncate_extents+0x10e/0x220 [xfs]
> [164814.836044] [<ffffffffa033f75a>] ? kmem_zone_alloc+0x5a/0xe0 [xfs]
> [164814.836084] [<ffffffffa0334d49>] xfs_inactive_truncate+0x99/0x110 [xfs]
> [164814.836120] [<ffffffffa0335aa2>] xfs_inactive+0x102/0x120 [xfs]
> [164814.836135] [<ffffffffa033a6cf>] xfs_fs_evict_inode+0x6f/0xa0 [xfs]
> [164814.836138] [<ffffffff81238d76>] evict+0xa6/0x170
> [164814.836140] [<ffffffff81239026>] iput+0x196/0x220
> [164814.836147] [<ffffffff81234fe4>] __dentry_kill+0x174/0x1c0
> [164814.836150] [<ffffffff8123514b>] dput+0x11b/0x200
> [164814.836155] [<ffffffff8121fe02>] __fput+0x172/0x1e0
> [164814.836158] [<ffffffff8121febe>] ____fput+0xe/0x10
> [164814.836161] [<ffffffff810bab75>] task_work_run+0x85/0xb0
> [164814.836164] [<ffffffff81014a4d>] do_notify_resume+0x8d/0x90
> [164814.836167] [<ffffffff817795bc>] int_signal+0x12/0x17
> _______________________________________________
> xfs mailing list
> xfs at oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs