|
|
Chromium Code Reviews
DescriptionAdds locks for CommandBufferProxyImpl invalidation
This CL tries to fix the race condition between the destruction of
CommandBufferProxyImpl and GpuVideo{En,De}codeAcceleratorHost.
CommandBufferProxyImpl is destroyed on main_thread whereas the other
is destroyed on media thread.
- OnWillDeleteImpl() is called on main thread and the thread check
is wrong.
- Added lock around |impl_| use.
- Post a task on media thread for OnChannelError().
BUG=627295, 674674
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Review-Url: https://codereview.chromium.org/2627173002
Cr-Commit-Position: refs/heads/master@{#443695}
Committed: https://chromium.googlesource.com/chromium/src/+/ddd5cb6aad0421c0fa7f82207531ada865bfe7f0
Patch Set 1 #
Total comments: 4
Patch Set 2 : #
Total comments: 6
Patch Set 3 : #
Messages
Total messages: 44 (33 generated)
Description was changed from ========== Fix multiple thread access. BUG= ========== to ========== Fix multiple thread access. BUG= CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel ==========
The CQ bit was checked by emircan@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Description was changed from
==========
Fix multiple thread access.
BUG=
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
==========
to
==========
Adds locks for CommandBufferProxyImpl invalidation
This CL tries to fix the race condition between the destruction of
CommandBufferProxyImpl and GpuVideo{En,De}codeAcceleratorHost.
CommandBufferProxyImpl is destroyed on main_thread whereas the other
is destroyed on media thread.
- OnWillDeleteImpl() is called on media thread and the thread check
is wrong.
- Added lock around |impl_| use.
- Post a task on media thread for OnChannelError().
BUG=627295,674674
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
==========
emircan@chromium.org changed reviewers: + sandersd@chromium.org
sandersd@, I believe crbug.com/674674 is due to the same underlying issue you described on https://bugs.chromium.org/p/chromium/issues/detail?id=627295#c2. I tried to fix it the way you described, PTAL.
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
lgtm
emircan@chromium.org changed reviewers: + danakj@chromium.org
Thanks. danakj@ can you PTAL as well based on our discussion yesterday?
Description was changed from
==========
Adds locks for CommandBufferProxyImpl invalidation
This CL tries to fix the race condition between the destruction of
CommandBufferProxyImpl and GpuVideo{En,De}codeAcceleratorHost.
CommandBufferProxyImpl is destroyed on main_thread whereas the other
is destroyed on media thread.
- OnWillDeleteImpl() is called on media thread and the thread check
is wrong.
- Added lock around |impl_| use.
- Post a task on media thread for OnChannelError().
BUG=627295,674674
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
==========
to
==========
Adds locks for CommandBufferProxyImpl invalidation
This CL tries to fix the race condition between the destruction of
CommandBufferProxyImpl and GpuVideo{En,De}codeAcceleratorHost.
CommandBufferProxyImpl is destroyed on main_thread whereas the other
is destroyed on media thread.
- OnWillDeleteImpl() is called on main thread and the thread check
is wrong.
- Added lock around |impl_| use.
- Post a task on media thread for OnChannelError().
BUG=627295,674674
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
==========
LGTM https://codereview.chromium.org/2627173002/diff/1/media/gpu/ipc/client/gpu_vi... File media/gpu/ipc/client/gpu_video_decode_accelerator_host.cc (right): https://codereview.chromium.org/2627173002/diff/1/media/gpu/ipc/client/gpu_vi... media/gpu/ipc/client/gpu_video_decode_accelerator_host.cc:30: channel_error_cb_ = media::BindToCurrentLoop( Just store a task runner and bind/post to it from OnWillDeleteImpl? That would be a lot easier to follow/less indirection to what is going on. https://codereview.chromium.org/2627173002/diff/1/media/gpu/ipc/client/gpu_vi... File media/gpu/ipc/client/gpu_video_encode_accelerator_host.cc (right): https://codereview.chromium.org/2627173002/diff/1/media/gpu/ipc/client/gpu_vi... media/gpu/ipc/client/gpu_video_encode_accelerator_host.cc:30: channel_error_cb_ = media::BindToCurrentLoop( same
The CQ bit was checked by emircan@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was checked by emircan@chromium.org to run a CQ dry run
Patchset #2 (id:20001) has been deleted
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
https://codereview.chromium.org/2627173002/diff/1/media/gpu/ipc/client/gpu_vi... File media/gpu/ipc/client/gpu_video_decode_accelerator_host.cc (right): https://codereview.chromium.org/2627173002/diff/1/media/gpu/ipc/client/gpu_vi... media/gpu/ipc/client/gpu_video_decode_accelerator_host.cc:30: channel_error_cb_ = media::BindToCurrentLoop( On 2017/01/13 18:27:50, danakj (slow) wrote: > Just store a task runner and bind/post to it from OnWillDeleteImpl? That would > be a lot easier to follow/less indirection to what is going on. Done. https://codereview.chromium.org/2627173002/diff/1/media/gpu/ipc/client/gpu_vi... File media/gpu/ipc/client/gpu_video_encode_accelerator_host.cc (right): https://codereview.chromium.org/2627173002/diff/1/media/gpu/ipc/client/gpu_vi... media/gpu/ipc/client/gpu_video_encode_accelerator_host.cc:30: channel_error_cb_ = media::BindToCurrentLoop( On 2017/01/13 18:27:50, danakj (slow) wrote: > same Done.
The CQ bit was unchecked by emircan@chromium.org
The CQ bit was checked by emircan@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from danakj@chromium.org, sandersd@chromium.org Link to the patchset: https://codereview.chromium.org/2627173002/#ps40001 (title: " ")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
cool! thanks LGTM even more https://codereview.chromium.org/2627173002/diff/40001/media/gpu/ipc/client/gp... File media/gpu/ipc/client/gpu_video_decode_accelerator_host.cc (right): https://codereview.chromium.org/2627173002/diff/40001/media/gpu/ipc/client/gp... media/gpu/ipc/client/gpu_video_decode_accelerator_host.cc:15: #include "media/base/bind_to_current_loop.h" unused then https://codereview.chromium.org/2627173002/diff/40001/media/gpu/ipc/client/gp... File media/gpu/ipc/client/gpu_video_encode_accelerator_host.cc (right): https://codereview.chromium.org/2627173002/diff/40001/media/gpu/ipc/client/gp... media/gpu/ipc/client/gpu_video_encode_accelerator_host.cc:11: #include "media/base/bind_to_current_loop.h" same https://codereview.chromium.org/2627173002/diff/40001/media/gpu/ipc/client/gp... media/gpu/ipc/client/gpu_video_encode_accelerator_host.cc:26: task_runner_(base::ThreadTaskRunnerHandle::Get()), can you give these task runners a name that describes their thread?
The CQ bit was unchecked by emircan@chromium.org
The CQ bit was checked by emircan@chromium.org to run a CQ dry run
https://codereview.chromium.org/2627173002/diff/40001/media/gpu/ipc/client/gp... File media/gpu/ipc/client/gpu_video_decode_accelerator_host.cc (right): https://codereview.chromium.org/2627173002/diff/40001/media/gpu/ipc/client/gp... media/gpu/ipc/client/gpu_video_decode_accelerator_host.cc:15: #include "media/base/bind_to_current_loop.h" On 2017/01/13 19:32:04, danakj (slow) wrote: > unused then Sorry i missed out. Removing. https://codereview.chromium.org/2627173002/diff/40001/media/gpu/ipc/client/gp... File media/gpu/ipc/client/gpu_video_encode_accelerator_host.cc (right): https://codereview.chromium.org/2627173002/diff/40001/media/gpu/ipc/client/gp... media/gpu/ipc/client/gpu_video_encode_accelerator_host.cc:11: #include "media/base/bind_to_current_loop.h" On 2017/01/13 19:32:04, danakj (slow) wrote: > same Done. https://codereview.chromium.org/2627173002/diff/40001/media/gpu/ipc/client/gp... media/gpu/ipc/client/gpu_video_encode_accelerator_host.cc:26: task_runner_(base::ThreadTaskRunnerHandle::Get()), On 2017/01/13 19:32:04, danakj (slow) wrote: > can you give these task runners a name that describes their thread? Done.
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Patchset #3 (id:60001) has been deleted
Super great, thanks.
The CQ bit was checked by emircan@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
Patchset #3 (id:80001) has been deleted
Dry run: Try jobs failed on following builders: cast_shell_android on master.tryserver.chromium.android (JOB_FAILED, https://build.chromium.org/p/tryserver.chromium.android/builders/cast_shell_a...) linux_chromium_chromeos_ozone_rel_ng on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/linux_chromium_...)
The CQ bit was checked by emircan@chromium.org to run a CQ dry run
Dry run: CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
The CQ bit was unchecked by commit-bot@chromium.org
Dry run: This issue passed the CQ dry run.
The CQ bit was checked by emircan@chromium.org
The patchset sent to the CQ was uploaded after l-g-t-m from sandersd@chromium.org, danakj@chromium.org Link to the patchset: https://codereview.chromium.org/2627173002/#ps100001 (title: " ")
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.or...
CQ is committing da patch.
Bot data: {"patchset_id": 100001, "attempt_start_ts": 1484345414025040,
"parent_rev": "d5a7a73975d123369dab9784b2897467a31b0ab8", "commit_rev":
"ddd5cb6aad0421c0fa7f82207531ada865bfe7f0"}
Message was sent while issue was closed.
Description was changed from
==========
Adds locks for CommandBufferProxyImpl invalidation
This CL tries to fix the race condition between the destruction of
CommandBufferProxyImpl and GpuVideo{En,De}codeAcceleratorHost.
CommandBufferProxyImpl is destroyed on main_thread whereas the other
is destroyed on media thread.
- OnWillDeleteImpl() is called on main thread and the thread check
is wrong.
- Added lock around |impl_| use.
- Post a task on media thread for OnChannelError().
BUG=627295,674674
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
==========
to
==========
Adds locks for CommandBufferProxyImpl invalidation
This CL tries to fix the race condition between the destruction of
CommandBufferProxyImpl and GpuVideo{En,De}codeAcceleratorHost.
CommandBufferProxyImpl is destroyed on main_thread whereas the other
is destroyed on media thread.
- OnWillDeleteImpl() is called on main thread and the thread check
is wrong.
- Added lock around |impl_| use.
- Post a task on media thread for OnChannelError().
BUG=627295,674674
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel
Review-Url: https://codereview.chromium.org/2627173002
Cr-Commit-Position: refs/heads/master@{#443695}
Committed:
https://chromium.googlesource.com/chromium/src/+/ddd5cb6aad0421c0fa7f82207531...
==========
Message was sent while issue was closed.
Committed patchset #3 (id:100001) as https://chromium.googlesource.com/chromium/src/+/ddd5cb6aad0421c0fa7f82207531... |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
