New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 838614 link

Starred by 1 user

Issue metadata

Status: WontFix
Owner: ----
Closed: May 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 2
Type: Bug
Hotlist-MemoryInfra



Sign in to add a comment

base::ProcessMetrics::GetMemoryBytes hogs 100% CPU on MacOS

Project Member Reported by alph@chromium.org, May 1 2018

Issue description

Google Chrome	66.0.3359.139 (Official Build) (64-bit)
Revision	a020eddf0d85fe84d4a6787b304f50aafb670969-refs/branch-heads/3359@{#767}
OS	Mac OS 10.13.3 (17D102)

Today I noticed that the browser process is taking 100% CPU time. I captured a trace and sampled the process with Mac Activity Monitor. It seems to spend most of the time in syscalls invoked from base::ProcessMetrics::GetMemoryBytes

=====

    2374 Thread_372173: TaskSchedulerBackgroundBlockingWorker
    + 2374 thread_start  (in libsystem_pthread.dylib) + 13  [0x7fff796e5c5d]
    +   2374 _pthread_start  (in libsystem_pthread.dylib) + 377  [0x7fff796e656d]
    +     2374 _pthread_body  (in libsystem_pthread.dylib) + 340  [0x7fff796e66c1]
    +       2374 base::(anonymous namespace)::ThreadFunc(void*)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x206cf47  [platform_thread_posix.cc:78]
    +         2371 base::internal::SchedulerWorker::Thread::ThreadMain()  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x205ac99  [type_traits:4644]
    +         ! 2370 base::internal::TaskTracker::RunAndPopNextTask(scoped_refptr<base::internal::Sequence>, base::internal::CanScheduleSequenceObserver*)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2060625  [task_tracker.cc:353]
    +         ! : 2370 base::internal::TaskTrackerPosix::RunOrSkipTask(base::internal::Task, base::internal::Sequence*, bool)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2061d13  [task_tracker_posix.cc:25]
    +         ! :   2358 base::internal::TaskTracker::RunOrSkipTask(base::internal::Task, base::internal::Sequence*, bool)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2060cb3  [trace_event.h:1094]
    +         ! :   | 2358 base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x1ff2858  [callback_forward.h:11]
    +         ! :   |   2354 base::(anonymous namespace)::PostTaskAndReplyRelay::RunTaskAndPostReply()  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x206d109  [callback_forward.h:11]
    +         ! :   |   + 2352 base::internal::Invoker<base::internal::BindState<void (*)(base::OnceCallback<task_manager::MemoryUsageStats ()>, task_manager::MemoryUsageStats*), base::OnceCallback<task_manager::MemoryUsageStats ()>, task_manager::MemoryUsageStats*>, void ()>::RunOnce(base::internal::BindStateBase*)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x1ea86ab  [callback_forward.h:11]
    +         ! :   |   + ! 2352 void base::internal::ReturnAsParamAdapter<task_manager::MemoryUsageStats>(base::OnceCallback<task_manager::MemoryUsageStats ()>, task_manager::MemoryUsageStats*)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x1ea85fb  [callback_forward.h:11]
    +         ! :   |   + !   2352 base::internal::Invoker<base::internal::BindState<task_manager::MemoryUsageStats (task_manager::TaskGroupSampler::*)(), scoped_refptr<task_manager::TaskGroupSampler> >, task_manager::MemoryUsageStats ()>::Run(base::internal::BindStateBase*)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x1ea845a  [bind_internal.h:589]
    +         ! :   |   + !     2352 task_manager::TaskGroupSampler::RefreshMemoryUsage()  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x1ea82c3  [task_group_sampler.cc:132]
    +         ! :   |   + !       624 base::ProcessMetrics::GetMemoryBytes(unsigned long*, unsigned long*, unsigned long*, unsigned long*) const  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2038683  [process_metrics_mac.cc:490]
    +         ! :   |   + !       : 606 mach_vm_region  (in libsystem_kernel.dylib) + 142  [0x7fff79598187]
    +         ! :   |   + !       : | 589 mach_msg  (in libsystem_kernel.dylib) + 60  [0x7fff795a0cdc]
    +         ! :   |   + !       : | + 589 mach_msg_trap  (in libsystem_kernel.dylib) + 10  [0x7fff795a17c2]
    +         ! :   |   + !       : | 17 mach_msg  (in libsystem_kernel.dylib) + 60,221,...  [0x7fff795a0cdc,0x7fff795a0d7d,...]
    +         ! :   |   + !       : 16 mach_vm_region  (in libsystem_kernel.dylib) + 0,42,...  [0x7fff795980f9,0x7fff79598123,...]
    +         ! :   |   + !       : 2 mach_vm_region  (in libsystem_kernel.dylib) + 428  [0x7fff795982a5]
    +         ! :   |   + !       :   2 memcpy  (in libsystem_kernel.dylib) + 274,308  [0x7fff7958fb25,0x7fff7958fb47]
    +         ! :   |   + !       579 base::ProcessMetrics::GetMemoryBytes(unsigned long*, unsigned long*, unsigned long*, unsigned long*) const  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x20386fa  [process_metrics_mac.cc:506]
    +         ! :   |   + !       : 546 mach_vm_region  (in libsystem_kernel.dylib) + 142  [0x7fff79598187]
    +         ! :   |   + !       : | 531 mach_msg  (in libsystem_kernel.dylib) + 60  [0x7fff795a0cdc]
    +         ! :   |   + !       : | + 531 mach_msg_trap  (in libsystem_kernel.dylib) + 10  [0x7fff795a17c2]
    +         ! :   |   + !       : | 15 mach_msg  (in libsystem_kernel.dylib) + 60,0,...  [0x7fff795a0cdc,0x7fff795a0ca0,...]
    +         ! :   |   + !       : 21 mach_vm_region  (in libsystem_kernel.dylib) + 0,142,...  [0x7fff795980f9,0x7fff79598187,...]
    +         ! :   |   + !       : 10 mach_vm_region  (in libsystem_kernel.dylib) + 428  [0x7fff795982a5]
    +         ! :   |   + !       : | 10 memcpy  (in libsystem_kernel.dylib) + 0,9,...  [0x7fff7958fa13,0x7fff7958fa1c,...]
    +         ! :   |   + !       : 2 mach_vm_region  (in libsystem_kernel.dylib) + 95  [0x7fff79598158]
    +         ! :   |   + !       :   2 mig_get_reply_port  (in libsystem_kernel.dylib) + 8  [0x7fff795a1abb]
    +         ! :   |   + !       564 base::ProcessMetrics::GetMemoryBytes(unsigned long*, unsigned long*, unsigned long*, unsigned long*) const  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2038693  [process_metrics_mac.cc:210]
    +         ! :   |   + !       : 397 _kernelrpc_mach_port_deallocate  (in libsystem_kernel.dylib) + 91  [0x7fff795953f7]
    +         ! :   |   + !       : | 390 mach_msg  (in libsystem_kernel.dylib) + 60  [0x7fff795a0cdc]
    +         ! :   |   + !       : | + 390 mach_msg_trap  (in libsystem_kernel.dylib) + 10  [0x7fff795a17c2]
    +         ! :   |   + !       : | 7 mach_msg  (in libsystem_kernel.dylib) + 60,0,...  [0x7fff795a0cdc,0x7fff795a0ca0,...]
    +         ! :   |   + !       : 144 mach_port_deallocate  (in libsystem_kernel.dylib) + 17  [0x7fff795a964e]
    +         ! :   |   + !       : | 144 _kernelrpc_mach_port_deallocate_trap  (in libsystem_kernel.dylib) + 10  [0x7fff795a1732]
    +         ! :   |   + !       : 16 mach_port_deallocate  (in libsystem_kernel.dylib) + 17,0,...  [0x7fff795a964e,0x7fff795a963d,...]
    +         ! :   |   + !       : 4 _kernelrpc_mach_port_deallocate  (in libsystem_kernel.dylib) + 0,19  [0x7fff7959539c,0x7fff795953af]
    +         ! :   |   + !       : 3 _kernelrpc_mach_port_deallocate  (in libsystem_kernel.dylib) + 44  [0x7fff795953c8]
    +         ! :   |   + !       :   3 mig_get_reply_port  (in libsystem_kernel.dylib) + 8  [0x7fff795a1abb]
    +         ! :   |   + !       522 base::ProcessMetrics::GetMemoryBytes(unsigned long*, unsigned long*, unsigned long*, unsigned long*) const  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x203870a  [process_metrics_mac.cc:218]
    +         ! :   |   + !       : 368 _kernelrpc_mach_port_deallocate  (in libsystem_kernel.dylib) + 91  [0x7fff795953f7]
    +         ! :   |   + !       : | 361 mach_msg  (in libsystem_kernel.dylib) + 60  [0x7fff795a0cdc]
    +         ! :   |   + !       : | + 361 mach_msg_trap  (in libsystem_kernel.dylib) + 10  [0x7fff795a17c2]
    +         ! :   |   + !       : | 7 mach_msg  (in libsystem_kernel.dylib) + 60,0  [0x7fff795a0cdc,0x7fff795a0ca0]
    +         ! :   |   + !       : 126 mach_port_deallocate  (in libsystem_kernel.dylib) + 17  [0x7fff795a964e]
    +         ! :   |   + !       : | 126 _kernelrpc_mach_port_deallocate_trap  (in libsystem_kernel.dylib) + 10  [0x7fff795a1732]
    +         ! :   |   + !       : 17 mach_port_deallocate  (in libsystem_kernel.dylib) + 17,0,...  [0x7fff795a964e,0x7fff795a963d,...]
    +         ! :   |   + !       : 8 _kernelrpc_mach_port_deallocate  (in libsystem_kernel.dylib) + 1,19,...  [0x7fff7959539d,0x7fff795953af,...]
    +         ! :   |   + !       : 3 _kernelrpc_mach_port_deallocate  (in libsystem_kernel.dylib) + 44  [0x7fff795953c8]
    +         ! :   |   + !       :   3 mig_get_reply_port  (in libsystem_kernel.dylib) + 8  [0x7fff795a1abb]
    +         ! :   |   + !       13 base::ProcessMetrics::GetMemoryBytes(unsigned long*, unsigned long*, unsigned long*, unsigned long*) const  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x203870a  [process_metrics_mac.cc:218]
    +         ! :   |   + !       8 parseSystemVersionPList  (in Google Chrome Framework) + 0  []
    +         ! :   |   + !       7 base::ProcessMetrics::GetMemoryBytes(unsigned long*, unsigned long*, unsigned long*, unsigned long*) const  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2038486  [__hash_table:0]
    +         ! :   |   + !       7 parseSystemVersionPList  (in Google Chrome Framework) + 0  []
    +         ! :   |   + !       5 base::ProcessMetrics::GetMemoryBytes(unsigned long*, unsigned long*, unsigned long*, unsigned long*) const  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2038683  [process_metrics_mac.cc:490]
    +         ! :   |   + !       5 base::ProcessMetrics::GetMemoryBytes(unsigned long*, unsigned long*, unsigned long*, unsigned long*) const  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2038693  [process_metrics_mac.cc:210]
    +         ! :   |   + !       3 base::ProcessMetrics::GetMemoryBytes(unsigned long*, unsigned long*, unsigned long*, unsigned long*) const  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x203846a  [new:230]
    +         ! :   |   + !       : 2 operator new(unsigned long)  (in libc++abi.dylib) + 0  [0x7fff774e2600]
    +         ! :   |   + !       : 1 operator new(unsigned long)  (in libc++abi.dylib) + 40  [0x7fff774e2628]
    +         ! :   |   + !       :   1 malloc  (in libsystem_malloc.dylib) + 0  [0x7fff796024f3]
    +         ! :   |   + !       2 base::ProcessMetrics::GetMemoryBytes(unsigned long*, unsigned long*, unsigned long*, unsigned long*) const  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x20386fa  [process_metrics_mac.cc:506]
    +         ! :   |   + !       2 base::ProcessMetrics::GetMemoryBytes(unsigned long*, unsigned long*, unsigned long*, unsigned long*) const  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x20386fc  [process_metrics_mac.cc:512]
    +         ! :   |   + !       2 base::ProcessMetrics::GetMemoryBytes(unsigned long*, unsigned long*, unsigned long*, unsigned long*) const  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2038824  [__hash_table:2259]
    +         ! :   |   + !       1 base::ProcessMetrics::GetMemoryBytes(unsigned long*, unsigned long*, unsigned long*, unsigned long*) const  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x203839f  [process_metrics_mac.cc:78]
    +         ! :   |   + !       : 1 sysctlbyname  (in libsystem_c.dylib) + 85  [0x7fff794d8519]
    +         ! :   |   + !       :   1 __sysctlbyname  (in libsystem_kernel.dylib) + 10  [0x7fff795ab3ba]
    +         ! :   |   + !       1 base::ProcessMetrics::GetMemoryBytes(unsigned long*, unsigned long*, unsigned long*, unsigned long*) const  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2038640  [process_metrics_mac.cc:205]
    +         ! :   |   + !       1 base::ProcessMetrics::GetMemoryBytes(unsigned long*, unsigned long*, unsigned long*, unsigned long*) const  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x20386a1  [process_metrics_mac.cc:210]
    +         ! :   |   + !       1 base::ProcessMetrics::GetMemoryBytes(unsigned long*, unsigned long*, unsigned long*, unsigned long*) const  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x20386a9  [process_metrics_mac.cc:210]
    +         ! :   |   + !       1 base::ProcessMetrics::GetMemoryBytes(unsigned long*, unsigned long*, unsigned long*, unsigned long*) const  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x20386b1  [process_metrics_mac.cc:216]
    +         ! :   |   + !       1 base::ProcessMetrics::GetMemoryBytes(unsigned long*, unsigned long*, unsigned long*, unsigned long*) const  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x20386bc  [process_metrics_mac.cc:504]
    +         ! :   |   + !       1 base::ProcessMetrics::GetMemoryBytes(unsigned long*, unsigned long*, unsigned long*, unsigned long*) const  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x203889d  [process_metrics_mac.cc:229]
    +         ! :   |   + !       1 base::ProcessMetrics::GetMemoryBytes(unsigned long*, unsigned long*, unsigned long*, unsigned long*) const  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2038953  [new:238]
    +         ! :   |   + !       1 OSAtomicEnqueue  (in libsystem_platform.dylib) + 29  [0x7fff796dc8d5]
    +         ! :   |   + 2 base::internal::Invoker<base::internal::BindState<void (*)(base::OnceCallback<double ()>, double*), base::OnceCallback<double ()>, double*>, void ()>::RunOnce(base::internal::BindStateBase*)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x1105ceb  [callback_forward.h:11]
    +         ! :   |   +   2 void base::internal::ReturnAsParamAdapter<double>(base::OnceCallback<double ()>, double*)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x1105c57  [callback.h:95]
    +         ! :   |   +     1 base::ProcessMetrics::GetPlatformIndependentCPUUsage()  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2038c5a  [process_metrics_mac.cc:0]
    +         ! :   |   +     : 1 task_info  (in libsystem_kernel.dylib) + 125  [0x7fff7959a35b]
    +         ! :   |   +     :   1 mach_msg  (in libsystem_kernel.dylib) + 60  [0x7fff795a0cdc]
    +         ! :   |   +     :     1 mach_msg_trap  (in libsystem_kernel.dylib) + 10  [0x7fff795a17c2]
    +         ! :   |   +     1 base::ProcessMetrics::GetPlatformIndependentCPUUsage()  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2038c81  [process_metrics_mac.cc:0]
    +         ! :   |   +       1 task_info  (in libsystem_kernel.dylib) + 125  [0x7fff7959a35b]
    +         ! :   |   +         1 mach_msg  (in libsystem_kernel.dylib) + 60  [0x7fff795a0cdc]
    +         ! :   |   +           1 mach_msg_trap  (in libsystem_kernel.dylib) + 10  [0x7fff795a17c2]
    +         ! :   |   4 base::(anonymous namespace)::PostTaskAndReplyRelay::RunTaskAndPostReply()  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x206d16e  [callback_forward.h:11]
    +         ! :   |     4 <name omitted>  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2057a7f  [task_runner.cc:44]
    +         ! :   |       4 base::internal::MessageLoopTaskRunner::PostDelayedTask(base::Location const&, base::OnceCallback<void ()>, base::TimeDelta)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2017e7f  [message_loop_task_runner.cc:31]
    +         ! :   |         4 base::internal::IncomingTaskQueue::AddToIncomingQueue(base::Location const&, base::OnceCallback<void ()>, base::TimeDelta, base::Nestable)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2014a9f  [incoming_task_queue.cc:85]
    +         ! :   |           4 base::internal::IncomingTaskQueue::PostPendingTask(base::PendingTask*)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2014b27  [lock_impl.h:70]
    +         ! :   |             3 CFRunLoopWakeUp  (in CoreFoundation) + 283  [0x7fff51b2286b]
    +         ! :   |             ! 3 mach_msg  (in libsystem_kernel.dylib) + 60  [0x7fff795a0cdc]
    +         ! :   |             !   3 mach_msg_trap  (in libsystem_kernel.dylib) + 10  [0x7fff795a17c2]
    +         ! :   |             1 CFRunLoopWakeUp  (in CoreFoundation) + 363  [0x7fff51b228bb]
    +         ! :   |               1 _pthread_mutex_unlock_slow  (in libsystem_pthread.dylib) + 459  [0x7fff796e4990]
    +         ! :   |                 1 _pthread_mutex_unlock_drop  (in libsystem_pthread.dylib) + 36  [0x7fff796e6b45]
    +         ! :   |                   1 __psynch_mutexdrop  (in libsystem_kernel.dylib) + 0  [0x7fff795aacfc]
    +         ! :   4 base::internal::TaskTracker::RunOrSkipTask(base::internal::Task, base::internal::Sequence*, bool)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2060ceb  [trace_event.h:0]
    +         ! :   | 4 <name omitted>  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2090251  [trace_log.cc:1398]
    +         ! :   |   2 base::subtle::ThreadTicksNowIgnoringOverride()  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x20a23c4  [time_mac.cc:120]
    +         ! :   |   + 2 thread_info  (in libsystem_kernel.dylib) + 125  [0x7fff7959e07d]
    +         ! :   |   +   2 mach_msg  (in libsystem_kernel.dylib) + 60  [0x7fff795a0cdc]
    +         ! :   |   +     2 mach_msg_trap  (in libsystem_kernel.dylib) + 10  [0x7fff795a17c2]
    +         ! :   |   1 base::subtle::ThreadTicksNowIgnoringOverride()  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x20a23a0  [time_mac.cc:102]
    +         ! :   |   + 1 thread_self_trap  (in libsystem_kernel.dylib) + 10  [0x7fff795a179e]
    +         ! :   |   1 base::subtle::ThreadTicksNowIgnoringOverride()  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x20a23c4  [time_mac.cc:120]
    +         ! :   3 base::internal::TaskTracker::RunOrSkipTask(base::internal::Task, base::internal::Sequence*, bool)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2060d45  [trace_event.h:0]
    +         ! :   | 3 <name omitted>  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2090251  [trace_log.cc:1398]
    +         ! :   |   1 base::subtle::ThreadTicksNowIgnoringOverride()  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x20a23c4  [time_mac.cc:120]
    +         ! :   |   + 1 thread_info  (in libsystem_kernel.dylib) + 125  [0x7fff7959e07d]
    +         ! :   |   +   1 mach_msg  (in libsystem_kernel.dylib) + 60  [0x7fff795a0cdc]
    +         ! :   |   +     1 mach_msg_trap  (in libsystem_kernel.dylib) + 10  [0x7fff795a17c2]
    +         ! :   |   1 base::subtle::ThreadTicksNowIgnoringOverride()  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x20a23ec  [scoped_generic.h:0]
    +         ! :   |   + 1 base::mac::internal::SendRightTraits::Free(unsigned int)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x200ec50  [scoped_mach_port.cc:15]
    +         ! :   |   +   1 mach_port_deallocate  (in libsystem_kernel.dylib) + 17  [0x7fff795a964e]
    +         ! :   |   +     1 _kernelrpc_mach_port_deallocate_trap  (in libsystem_kernel.dylib) + 10  [0x7fff795a1732]
    +         ! :   |   1 base::subtle::ThreadTicksNowIgnoringOverride()  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x20a23c4  [time_mac.cc:120]
    +         ! :   2 base::internal::TaskTracker::RunOrSkipTask(base::internal::Task, base::internal::Sequence*, bool)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2060be0  [trace_event.h:968]
    +         ! :   | 1 base::trace_event::TraceLog::AddTraceEventWithThreadIdAndTimestamp(char, unsigned char const*, char const*, char const*, unsigned long long, unsigned long long, int, base::TimeTicks const&, int, char const* const*, unsigned char const*, unsigned long long const*, std::__1::unique_ptr<base::trace_event::ConvertableToTraceFormat, std::__1::default_delete<base::trace_event::ConvertableToTraceFormat> >*, unsigned int)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x208f0bd  [trace_log.cc:1278]
    +         ! :   | + 1 base::trace_event::TraceEvent::Initialize(int, base::TimeTicks, base::ThreadTicks, char, unsigned char const*, char const*, char const*, unsigned long long, unsigned long long, int, char const* const*, unsigned char const*, unsigned long long const*, std::__1::unique_ptr<base::trace_event::ConvertableToTraceFormat, std::__1::default_delete<base::trace_event::ConvertableToTraceFormat> >*, unsigned int)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2089b5f  [trace_event_impl.cc:145]
    +         ! :   | 1 base::trace_event::TraceLog::AddTraceEventWithThreadIdAndTimestamp(char, unsigned char const*, char const*, char const*, unsigned long long, unsigned long long, int, base::TimeTicks const&, int, char const* const*, unsigned char const*, unsigned long long const*, std::__1::unique_ptr<base::trace_event::ConvertableToTraceFormat, std::__1::default_delete<base::trace_event::ConvertableToTraceFormat> >*, unsigned int)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x208f15c  [lock_impl.h:70]
    +         ! :   |   1 pthread_mutex_unlock  (in libsystem_pthread.dylib) + 99  [0x7fff796e47ab]
    +         ! :   1 base::internal::TaskTracker::RunOrSkipTask(base::internal::Task, base::internal::Sequence*, bool)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2060b45  [trace_event.h:1047]
    +         ! :   | 1 <name omitted>  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x206cb59  [platform_thread_posix.cc:140]
    +         ! :   |   1 pthread_self  (in libsystem_pthread.dylib) + 0  [0x7fff796e5528]
    +         ! :   1 base::internal::TaskTracker::RunOrSkipTask(base::internal::Task, base::internal::Sequence*, bool)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2060e00  [memory:3126]
    +         ! :   | 1 operator new(unsigned long)  (in libc++abi.dylib) + 0  [0x7fff774e2600]
    +         ! :   1 base::internal::TaskTracker::RunOrSkipTask(base::internal::Task, base::internal::Sequence*, bool)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2060eac  [trace_event.h:759]
    +         ! :     1 base::trace_event::TraceLog::AddTraceEventWithThreadIdAndTimestamp(char, unsigned char const*, char const*, char const*, unsigned long long, unsigned long long, int, base::TimeTicks const&, int, char const* const*, unsigned char const*, unsigned long long const*, std::__1::unique_ptr<base::trace_event::ConvertableToTraceFormat, std::__1::default_delete<base::trace_event::ConvertableToTraceFormat> >*, unsigned int)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x208ed9e  [trace_log.cc:88]
    +         ! :       1 base::subtle::ThreadTicksNowIgnoringOverride()  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x20a23c4  [time_mac.cc:120]
    +         ! :         1 thread_info  (in libsystem_kernel.dylib) + 125  [0x7fff7959e07d]
    +         ! :           1 mach_msg  (in libsystem_kernel.dylib) + 60  [0x7fff795a0cdc]
    +         ! :             1 mach_msg_trap  (in libsystem_kernel.dylib) + 10  [0x7fff795a17c2]
    +         ! 1 base::internal::TaskTracker::RunAndPopNextTask(scoped_refptr<base::internal::Sequence>, base::internal::CanScheduleSequenceObserver*)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2060648  [task_tracker.cc:172]
    +         1 base::internal::SchedulerWorker::Thread::ThreadMain()  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x205ad16  [scoped_refptr.h:207]
    +         ! 1 base::internal::SchedulerWorkerPoolImpl::SchedulerWorkerDelegateImpl::ReEnqueueSequence(scoped_refptr<base::internal::Sequence>)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x205cd81  [memory:2615]
    +         !   1 base::internal::PriorityQueue::BeginTransaction()  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x205902a  [priority_queue.cc:105]
    +         !     1 operator new(unsigned long)  (in libc++abi.dylib) + 40  [0x7fff774e2628]
    +         !       1 malloc  (in libsystem_malloc.dylib) + 24  [0x7fff7960250b]
    +         !         1 malloc_zone_malloc  (in libsystem_malloc.dylib) + 103  [0x7fff79603201]
    +         !           1 base::allocator::MallocZoneFunctionsToReplaceDefault()::$_1::__invoke(_malloc_zone_t*, unsigned long)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x209d53d  [allocator_shim.cc:178]
    +         !             1 base::allocator::MallocZoneFunctionsToReplaceDefault()::$_1::__invoke(_malloc_zone_t*, unsigned long)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x209d53d  [allocator_shim.cc:178]
    +         !               1 nano_malloc  (in libsystem_malloc.dylib) + 35  [0x7fff79609bf1]
    +         !                 1 _nano_malloc_check_clear  (in libsystem_malloc.dylib) + 578  [0x7fff79609e54]
    +         1 base::internal::SchedulerWorker::Thread::ThreadMain()  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x205ad48  [scheduler_worker.cc:99]
    +         ! 1 base::WaitableEvent::PeekPort(unsigned int, bool)  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x2053315  [waitable_event_mac.cc:321]
    +         !   1 mach_msg  (in libsystem_kernel.dylib) + 60  [0x7fff795a0cdc]
    +         !     1 mach_msg_trap  (in libsystem_kernel.dylib) + 10  [0x7fff795a17c2]
    +         1 base::internal::SchedulerWorker::Thread::ThreadMain()  (in Google Chrome Framework)  load address 0x10ccc6000 + 0x205adec  [scoped_refptr.h:220]
    +           1 -[NSAutoreleasePool drain]  (in Foundation) + 144  [0x7fff53bfa4f5]
    +             1 _CFAutoreleasePoolPop  (in CoreFoundation) + 22  [0x7fff51af37f6]
    +               1 (anonymous namespace)::AutoreleasePoolPage::pop(void*)  (in libobjc.A.dylib) + 271  [0x7fff78860e65]

 
Sample of Google Chrome - task manager cpu hog.txt
589 KB View Download
trace_task_manager_cpu_hog.json.gz
1.9 MB Download
symbolized_task_manager_cpu_hog.txt
24.7 KB View Download

Comment 1 by alph@chromium.org, May 1 2018

Hmm... closing Chrome Task Manager did not stop it from using CPU. Perhaps the task queue is overloaded with those TaskGroupSampler::RefreshMemoryUsage tasks.

Comment 2 by alph@chromium.org, May 1 2018

Ok, in ~3min after Task Manager was closed the usage dropped to 5%. 
If I reopen it, it's 100% again.
Status: WontFix (was: Untriaged)
GetMemoryBytes() has been removed on top of tree. You should not see this problem if you update to dev/canary.

https://cs.chromium.org/search/?q=getmemorybytes&sq=package:chromium&type=cs

Sign in to add a comment