parallel_next_page_perf.txt
text/plain
Filename: parallel_next_page_perf.txt
Type: text/plain
Part: 0
-- Unpatched select count(*) from lineitem; 71 workers
Children Self Command Shared Object Symbol
+ 99.83% 0.00% postgres libpthread-2.17.so [.] __restore_rt
+ 99.83% 0.00% postgres postgres [.] sigusr1_handler
+ 99.83% 0.00% postgres postgres [.] maybe_start_bgworkers
+ 99.83% 0.00% postgres postgres [.] do_start_bgworker
+ 99.83% 0.93% postgres postgres [.] ExecProcNode
+ 99.83% 0.00% postgres postgres [.] StartBackgroundWorker
+ 99.83% 0.00% postgres postgres [.] ParallelWorkerMain
+ 99.83% 0.00% postgres postgres [.] ParallelQueryMain
+ 99.83% 0.00% postgres postgres [.] ExecutorRun
+ 99.83% 0.00% postgres postgres [.] standard_ExecutorRun
+ 99.83% 0.00% postgres postgres [.] ExecutePlan
+ 99.83% 0.00% postgres postgres [.] ExecAgg
+ 99.69% 0.62% postgres postgres [.] agg_retrieve_direct
+ 91.28% 0.63% postgres postgres [.] fetch_input_tuple
+ 89.75% 0.17% postgres postgres [.] ExecSeqScan
+ 89.41% 1.07% postgres postgres [.] ExecScan
+ 84.46% 0.24% postgres postgres [.] ExecScanFetch
+ 84.26% 0.54% postgres postgres [.] SeqNext
+ 83.05% 0.44% postgres postgres [.] heap_getnext
+ 82.61% 2.00% postgres postgres [.] heapgettup_pagemode
+ 57.81% 0.84% postgres postgres [.] heap_parallelscan_nextpage
+ 53.46% 43.38% postgres postgres [.] s_lock
+ 21.82% 1.24% postgres postgres [.] heapgetpage
+ 20.69% 1.16% postgres postgres [.] ReadBufferExtended
+ 19.52% 0.04% postgres postgres [.] ReadBuffer_common
+ 13.75% 0.00% postgres [kernel.kallsyms] [k] system_call_fastpath
+ 11.54% 0.08% postgres postgres [.] BufferAlloc
+ 8.21% 8.16% postgres postgres [.] tas
+ 7.71% 0.03% postgres postgres [.] smgrread
+ 7.68% 0.02% postgres postgres [.] mdread
+ 7.22% 1.84% postgres postgres [.] advance_aggregates
+ 7.21% 0.03% postgres libpthread-2.17.so [.] __read_nocancel
+ 7.05% 0.02% postgres [kernel.kallsyms] [k] sys_read
+ 7.01% 0.02% postgres [kernel.kallsyms] [k] vfs_read
+ 6.88% 0.04% postgres [kernel.kallsyms] [k] do_sync_read
+ 6.85% 0.08% postgres [xfs] [k] xfs_file_aio_read
+ 6.39% 0.01% postgres [kernel.kallsyms] [k] sys_futex
+ 6.39% 0.01% postgres [kernel.kallsyms] [k] do_futex
+ 6.27% 0.07% postgres [kernel.kallsyms] [k] generic_file_aio_read
+ 5.82% 0.11% postgres [kernel.kallsyms] [k] get_futex_key
+ 5.15% 0.07% postgres postgres [.] LWLockAcquire
+ 4.82% 4.82% postgres [kernel.kallsyms] [k] copy_user_enhanced_fast_string
+ 4.52% 4.52% postgres [kernel.kallsyms] [k] _raw_spin_lock_irqsave
+ 3.92% 0.09% postgres libpthread-2.17.so [.] sem_wait
+ 3.80% 0.02% postgres [kernel.kallsyms] [k] futex_wait
+ 3.61% 0.02% postgres [kernel.kallsyms] [k] futex_wait_setup
+ 3.34% 1.49% postgres postgres [.] ExecProject
+ 3.31% 3.29% postgres postgres [.] tas
+ 3.27% 0.10% postgres postgres [.] LWLockRelease
+ 3.04% 0.01% postgres [kernel.kallsyms] [k] __lock_page
+ 3.02% 0.09% postgres [kernel.kallsyms] [k] __wait_on_bit_lock
+ 3.01% 1.09% postgres postgres [.] ExecProject
+ 2.79% 0.06% postgres postgres [.] LWLockWakeup
+ 2.67% 0.06% postgres libpthread-2.17.so [.] sem_post
+ 2.58% 0.04% postgres [kernel.kallsyms] [k] futex_wake
+ 2.35% 0.02% postgres [kernel.kallsyms] [k] unlock_page
+ 2.31% 0.05% postgres [kernel.kallsyms] [k] __wake_up_bit
+ 2.26% 0.01% postgres [kernel.kallsyms] [k] __wake_up
+ 2.25% 0.09% postgres [kernel.kallsyms] [k] prepare_to_wait_exclusive
+ 2.23% 1.48% postgres postgres [.] hash_search_with_hash_value
+ 2.01% 1.01% postgres postgres [.] advance_transition_function
+ 1.85% 1.83% postgres postgres [.] ExecClearTuple
+ 1.28% 0.98% postgres postgres [.] perform_spin_delay
+ 1.14% 0.10% postgres postgres [.] LWLockAttemptLock
-- Atomics patch select count(*) from lineitem; 71 workers
+ 99.58% 0.00% postgres postgres [.] StartBackgroundWorker
+ 99.58% 0.00% postgres postgres [.] ParallelWorkerMain
+ 99.58% 2.22% postgres postgres [.] ExecProcNode
+ 99.58% 0.00% postgres postgres [.] ParallelQueryMain
+ 99.58% 0.00% postgres postgres [.] ExecutorRun
+ 99.58% 0.00% postgres postgres [.] standard_ExecutorRun
+ 99.58% 0.00% postgres postgres [.] ExecutePlan
+ 99.58% 0.00% postgres postgres [.] ExecAgg
+ 99.33% 1.26% postgres postgres [.] agg_retrieve_direct
+ 82.33% 1.41% postgres postgres [.] fetch_input_tuple
+ 78.65% 0.37% postgres postgres [.] ExecSeqScan
+ 77.94% 1.99% postgres postgres [.] ExecScan
+ 69.07% 0.47% postgres postgres [.] ExecScanFetch
+ 68.65% 1.10% postgres postgres [.] SeqNext
+ 66.15% 0.89% postgres postgres [.] heap_getnext
+ 65.28% 4.12% postgres postgres [.] heapgettup_pagemode
+ 60.01% 1.99% postgres postgres [.] heapgetpage
+ 56.58% 0.07% postgres postgres [.] ReadBufferExtended
+ 56.49% 0.11% postgres postgres [.] ReadBuffer_common
+ 44.37% 0.00% postgres [kernel.kallsyms] [k] system_call_fastpath
+ 41.13% 0.18% postgres postgres [.] BufferAlloc
+ 30.34% 0.02% postgres [kernel.kallsyms] [k] sys_futex
+ 30.31% 0.02% postgres [kernel.kallsyms] [k] do_futex
+ 28.19% 0.50% postgres [kernel.kallsyms] [k] get_futex_key
+ 21.93% 21.93% postgres [kernel.kallsyms] [k] _raw_spin_lock_irqsave
+ 21.42% 0.15% postgres postgres [.] LWLockAcquire
+ 18.82% 0.33% postgres libpthread-2.17.so [.] sem_wait
+ 18.36% 0.08% postgres [kernel.kallsyms] [k] futex_wait
+ 17.67% 0.05% postgres [kernel.kallsyms] [k] futex_wait_setup
+ 15.32% 0.05% postgres [kernel.kallsyms] [k] __lock_page
+ 15.24% 0.44% postgres [kernel.kallsyms] [k] __wait_on_bit_lock
+ 14.76% 0.06% postgres postgres [.] smgrread
+ 14.70% 0.07% postgres postgres [.] mdread
+ 14.63% 3.64% postgres postgres [.] advance_aggregates
+ 13.69% 0.05% postgres libpthread-2.17.so [.] __read_nocancel
+ 13.60% 0.22% postgres postgres [.] LWLockRelease
+ 13.38% 0.05% postgres [kernel.kallsyms] [k] sys_read
+ 13.27% 0.06% postgres [kernel.kallsyms] [k] vfs_read
+ 13.01% 0.08% postgres [kernel.kallsyms] [k] do_sync_read
+ 12.94% 0.13% postgres [xfs] [k] xfs_file_aio_read
+ 12.68% 0.21% postgres postgres [.] LWLockWakeup
+ 12.27% 0.21% postgres libpthread-2.17.so [.] sem_post
+ 11.93% 0.14% postgres [kernel.kallsyms] [k] futex_wake
+ 11.87% 0.13% postgres [kernel.kallsyms] [k] generic_file_aio_read
+ 11.53% 0.48% postgres [kernel.kallsyms] [k] prepare_to_wait_exclusive
+ 11.17% 0.07% postgres [kernel.kallsyms] [k] unlock_page
+ 11.06% 0.38% postgres [kernel.kallsyms] [k] __wake_up_bit
+ 10.66% 0.02% postgres [kernel.kallsyms] [k] __wake_up
+ 9.02% 9.02% postgres [kernel.kallsyms] [k] copy_user_enhanced_fast_string
+ 6.13% 2.10% postgres postgres [.] ExecProject
+ 5.87% 2.14% postgres postgres [.] ExecProject
+ 4.41% 2.95% postgres postgres [.] hash_search_with_hash_value
+ 4.16% 2.17% postgres postgres [.] advance_transition_function
+ 3.59% 3.56% postgres postgres [.] ExecClearTuple
+ 2.38% 0.01% postgres [kernel.kallsyms] [k] finish_wait
+ 2.33% 0.78% postgres postgres [.] ExecEvalExprSwitchContext
+ 2.16% 0.21% postgres postgres [.] LWLockAttemptLock
+ 2.03% 2.01% postgres postgres [.] ExecInterpExpr
+ 1.95% 0.64% postgres postgres [.] ExecEvalExprSwitchContext
+ 1.83% 1.82% postgres postgres [.] MemoryContextReset
+ 1.76% 0.02% postgres postgres [.] BufTableLookup
+ 1.75% 0.91% postgres [kernel.kallsyms] [k] __wake_up_common
+ 1.73% 1.72% postgres postgres [.] int8inc
+ 1.64% 1.01% postgres [kernel.kallsyms] [k] __find_get_page
-- More details on that spin lock.
- 21.93% 21.93% postgres [kernel.kallsyms] [k] _raw_spin_lock_irqsave ▒
- _raw_spin_lock_irqsave ▒
- 48.37% prepare_to_wait_exclusive ▒
__wait_on_bit_lock ▒
__lock_page ▒
+ get_futex_key ▒
+ 39.15% __wake_up ▒
+ 10.37% finish_wait ▒
+ 1.18% pagevec_lru_move_fn ▒
+ 0.77% try_to_wake_up
-- Batch patch, 10 pages at a time, 71 workers.
+ 99.45% 1.91% postgres postgres [.] ExecProcNode
+ 99.45% 0.00% postgres postgres [.] ParallelWorkerMain
+ 99.45% 0.00% postgres postgres [.] ParallelQueryMain
+ 99.45% 0.00% postgres postgres [.] ExecutorRun
+ 99.45% 0.00% postgres postgres [.] standard_ExecutorRun
+ 99.45% 0.00% postgres postgres [.] ExecutePlan
+ 99.45% 0.00% postgres postgres [.] ExecAgg
+ 99.10% 1.18% postgres postgres [.] agg_retrieve_direct
+ 81.94% 1.42% postgres postgres [.] fetch_input_tuple
+ 78.62% 0.35% postgres postgres [.] ExecSeqScan
+ 77.88% 2.02% postgres postgres [.] ExecScan
+ 69.05% 0.53% postgres postgres [.] ExecScanFetch
+ 68.55% 1.17% postgres postgres [.] SeqNext
+ 66.03% 0.93% postgres postgres [.] heap_getnext
+ 65.10% 4.06% postgres postgres [.] heapgettup_pagemode
+ 60.60% 2.02% postgres postgres [.] heapgetpage
+ 57.07% 0.09% postgres postgres [.] ReadBufferExtended
+ 56.96% 0.10% postgres postgres [.] ReadBuffer_common
+ 45.67% 0.01% postgres [kernel.kallsyms] [k] system_call_fastpath
+ 42.58% 0.19% postgres postgres [.] BufferAlloc
+ 32.18% 0.02% postgres [kernel.kallsyms] [k] sys_futex
+ 32.16% 0.02% postgres [kernel.kallsyms] [k] do_futex
+ 30.04% 0.28% postgres [kernel.kallsyms] [k] get_futex_key
+ 23.99% 23.99% postgres [kernel.kallsyms] [k] _raw_spin_lock_irqsave
+ 22.88% 0.15% postgres postgres [.] LWLockAcquire
+ 20.13% 0.30% postgres libpthread-2.17.so [.] sem_wait
+ 19.71% 0.08% postgres [kernel.kallsyms] [k] futex_wait
+ 19.05% 0.05% postgres [kernel.kallsyms] [k] futex_wait_setup
+ 15.98% 0.06% postgres [kernel.kallsyms] [k] __lock_page
+ 15.90% 0.44% postgres [kernel.kallsyms] [k] __wait_on_bit_lock
+ 14.70% 3.71% postgres postgres [.] advance_aggregates
+ 13.94% 0.21% postgres postgres [.] LWLockRelease
+ 13.84% 0.09% postgres postgres [.] smgrread
+ 13.74% 0.05% postgres postgres [.] mdread
+ 13.42% 0.06% postgres libpthread-2.17.so [.] __read_nocancel
+ 13.09% 0.19% postgres postgres [.] LWLockWakeup
+ 12.96% 0.05% postgres [kernel.kallsyms] [k] sys_read
+ 12.77% 0.08% postgres [kernel.kallsyms] [k] vfs_read
+ 12.71% 0.17% postgres libpthread-2.17.so [.] sem_post
+ 12.50% 0.08% postgres [kernel.kallsyms] [k] do_sync_read
+ 12.44% 0.15% postgres [xfs] [k] xfs_file_aio_read
+ 12.42% 0.15% postgres [kernel.kallsyms] [k] futex_wake
+ 12.42% 0.10% postgres [kernel.kallsyms] [k] unlock_page
+ 12.29% 0.42% postgres [kernel.kallsyms] [k] __wake_up_bit
+ 12.28% 0.48% postgres [kernel.kallsyms] [k] prepare_to_wait_exclusive
+ 11.85% 0.02% postgres [kernel.kallsyms] [k] __wake_up
+ 11.31% 0.14% postgres [kernel.kallsyms] [k] generic_file_aio_read
+ 8.83% 8.83% postgres [kernel.kallsyms] [k] copy_user_enhanced_fast_string
+ 6.25% 1.77% postgres postgres [.] ExecProject
+ 5.87% 2.12% postgres postgres [.] ExecProject
+ 3.96% 2.63% postgres postgres [.] hash_search_with_hash_value
+ 3.88% 2.61% postgres postgres [.] advance_transition_function
+ 3.53% 3.51% postgres postgres [.] ExecClearTuple
+ 2.81% 2.79% postgres postgres [.] ExecInterpExpr
+ 2.79% 0.69% postgres postgres [.] ExecEvalExprSwitchContext
+ 2.24% 0.02% postgres [kernel.kallsyms] [k] finish_wait
+ 2.16% 0.22% postgres postgres [.] LWLockAttemptLock
+ 2.07% 2.06% postgres postgres [.] MemoryContextReset
+ 2.02% 0.63% postgres postgres [.] ExecEvalExprSwitchContext
+ 1.59% 0.80% postgres [kernel.kallsyms] [k] __wake_up_common
+ 1.55% 1.54% postgres postgres [.] pg_atomic_read_u32_impl
+ 1.52% 0.04% postgres postgres [.] pg_atomic_read_u32
+ 1.51% 0.02% postgres postgres [.] BufTableLookup
+ 1.45% 0.07% postgres postgres [.] LockBufHdr