cc::Scheduler: Implement flow debug labels |
|||||
Issue descriptionStack traces in cc are typically not very useful because they tend to start at the cc::Scheduler, and it's never clear what caused the scheduler to get into that state. Perhaps we should implement "flows"? In other words, whenever one or more action initiates a state transition cc::Scheduler allocates a flow_id along with a flow debug label. When we crash as a result of a state transition, we output the flow debug label in the crash log. This should make root causing bugs and races in cc much simpler. This can probably also apply to the display scheduler, and gpu scheduler too.
,
Apr 13 2018
how do we keep them on the stack if things happen later?
,
Apr 13 2018
I was assuming that these flows meant multiple scheduler actions happening in a row in ProcessScheduledActions. Your new comment makes me think otherwise, so I don't know that I understand the intent here.
,
Apr 13 2018
0x0000564808f82581 (chrome -client_layer_tree_frame_sink.cc:137 ) viz::ClientLayerTreeFrameSink::SubmitCompositorFrame(viz::CompositorFrame) 0x00005648089c9df3 (chrome -layer_tree_host_impl.cc:2000 ) cc::LayerTreeHostImpl::DrawLayers(cc::LayerTreeHostImpl::FrameData*) 0x0000564808a50941 (chrome -single_thread_proxy.cc:614 ) cc::SingleThreadProxy::DoComposite(cc::LayerTreeHostImpl::FrameData*) 0x0000564808a515cf (chrome -single_thread_proxy.cc:803 ) non-virtual thunk to cc::SingleThreadProxy::ScheduledActionDrawIfPossible() 0x0000564808a49ab9 (chrome -scheduler.cc:655 ) cc::Scheduler::ProcessScheduledActions() 0x0000564808a48ff6 (chrome -scheduler.cc:643 ) cc::Scheduler::OnBeginImplFrameDeadline() 0x0000564807cf1107 (chrome -callback.h:95 ) base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) What flipped the CanDraw bit? I'd love to know in this crash log...
,
Apr 13 2018
Best bet here is to copy the necessary information on the stack, and base::debug::Alias it so that it can be inspected in minidumps.
,
May 28 2018
,
Aug 2
,
Aug 2
,
Aug 24
|
|||||
►
Sign in to add a comment |
|||||
Comment 1 by danakj@chromium.org
, Apr 13 2018