Callbacks stop coming from AUHAL after a sleep/wake cycle |
||||||
Issue descriptionChrome Version : <from About Google Chrome/Chromium> OS version : 10.12.6, but also earlier What steps will reproduce the problem? Each AUHAL context is tracked during sleep/wake to (if necessary) stop and start the associated callback thread. This is done even if there are no active streams, as long as the device has at one point previously been opened by the application. This tracking can sometimes execute out-of-order, causing the internal AUHAL state to go bad and the thread never restart. Chrome will still be able to open new streams on the device, but will never receive any more callbacks. What is the expected result? Putting the device to sleep should not cause a permanent problem in Chrome, requiring restart. What happens instead? No callbacks on a device, could be output or input.
,
Oct 6 2017
,
Oct 9 2017
,
Oct 10 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2f47f7f10b739f3dab4be68e972204a039e5ba82 commit 2f47f7f10b739f3dab4be68e972204a039e5ba82 Author: Oskar Sundbom <ossu@chromium.org> Date: Tue Oct 10 17:47:42 2017 Serialize AUHAL Pause/Resume calls to workaround missing callbacks error We do this by interposing dispatch_get_global_queue() and returning a serial queue for the cases where we're called from two functions in CoreAudio. To avoid the costs introduced by interposing this globally, and in a separate dylib, the code uses the private dyld_dynamic_interpose API. If that API is not available on the system (OSX < 10.10), the code does no interposing and the workaround is disabled. Bug: chromium:772410 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;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 Change-Id: Ie39e46fa5dee029b05ada190556853c5f6d5c658 Reviewed-on: https://chromium-review.googlesource.com/702375 Reviewed-by: Robert Sesek <rsesek@chromium.org> Reviewed-by: Tommi <tommi@chromium.org> Commit-Queue: Oskar Sundbom <ossu@chromium.org> Cr-Commit-Position: refs/heads/master@{#507706} [modify] https://crrev.com/2f47f7f10b739f3dab4be68e972204a039e5ba82/media/audio/BUILD.gn [modify] https://crrev.com/2f47f7f10b739f3dab4be68e972204a039e5ba82/media/audio/mac/audio_manager_mac.cc [add] https://crrev.com/2f47f7f10b739f3dab4be68e972204a039e5ba82/media/audio/mac/coreaudio_dispatch_override.cc [add] https://crrev.com/2f47f7f10b739f3dab4be68e972204a039e5ba82/media/audio/mac/coreaudio_dispatch_override.h
,
Oct 11 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/6ef678b24cc0e952d03606e565eece4af5084adf commit 6ef678b24cc0e952d03606e565eece4af5084adf Author: Henrik Grunell <grunell@chromium.org> Date: Wed Oct 11 19:37:42 2017 Feature flag for serialized CoreAudio pause/resume. The serialization CL: https://chromium-review.googlesource.com/c/chromium/src/+/702375 Bug: 772884, 772410 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;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 Change-Id: I950797024e8129cf6c782a457aa9a9106ee7704e Reviewed-on: https://chromium-review.googlesource.com/708874 Reviewed-by: Robert Kaplow <rkaplow@chromium.org> Reviewed-by: Tommi <tommi@chromium.org> Reviewed-by: Dale Curtis <dalecurtis@chromium.org> Commit-Queue: Henrik Grunell <grunell@chromium.org> Cr-Commit-Position: refs/heads/master@{#508072} [modify] https://crrev.com/6ef678b24cc0e952d03606e565eece4af5084adf/media/audio/mac/audio_manager_mac.cc [modify] https://crrev.com/6ef678b24cc0e952d03606e565eece4af5084adf/media/base/media_switches.cc [modify] https://crrev.com/6ef678b24cc0e952d03606e565eece4af5084adf/media/base/media_switches.h [modify] https://crrev.com/6ef678b24cc0e952d03606e565eece4af5084adf/testing/variations/fieldtrial_testing_config.json
,
Oct 11 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/060745a5fc0dc7116334b6f4aa6864f3d8543c0d commit 060745a5fc0dc7116334b6f4aa6864f3d8543c0d Author: Oskar Sundbom <ossu@chromium.org> Date: Wed Oct 11 21:57:40 2017 Added UMA stats for dispatch override initialization. Bug: chromium:772410 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;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 Change-Id: I5113ad2e77ee6bf1b0307c5386484f584d97f4f7 Reviewed-on: https://chromium-review.googlesource.com/708817 Commit-Queue: Oskar Sundbom <ossu@chromium.org> Reviewed-by: Robert Kaplow <rkaplow@chromium.org> Reviewed-by: Henrik Grunell <grunell@chromium.org> Reviewed-by: Tommi <tommi@chromium.org> Cr-Commit-Position: refs/heads/master@{#508136} [modify] https://crrev.com/060745a5fc0dc7116334b6f4aa6864f3d8543c0d/media/audio/mac/coreaudio_dispatch_override.cc [modify] https://crrev.com/060745a5fc0dc7116334b6f4aa6864f3d8543c0d/tools/metrics/histograms/enums.xml [modify] https://crrev.com/060745a5fc0dc7116334b6f4aa6864f3d8543c0d/tools/metrics/histograms/histograms.xml
,
Nov 8 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/18a4f63fd5dc592a6b31f2a832de145b151adbde commit 18a4f63fd5dc592a6b31f2a832de145b151adbde Author: Oskar Sundbom <ossu@chromium.org> Date: Wed Nov 08 22:34:45 2017 Serialize AUHAL Pause/Resume calls to workaround missing callbacks error We do this by interposing dispatch_get_global_queue() and returning a serial queue for the cases where we're called from two functions in CoreAudio. To avoid the costs introduced by interposing this globally, and in a separate dylib, the code uses the private dyld_dynamic_interpose API. If that API is not available on the system (OSX < 10.10), the code does no interposing and the workaround is disabled. Bug: chromium:772410 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;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 Change-Id: Ie39e46fa5dee029b05ada190556853c5f6d5c658 Reviewed-on: https://chromium-review.googlesource.com/702375 Reviewed-by: Robert Sesek <rsesek@chromium.org> Reviewed-by: Tommi <tommi@chromium.org> Commit-Queue: Oskar Sundbom <ossu@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#507706}(cherry picked from commit 2f47f7f10b739f3dab4be68e972204a039e5ba82) Reviewed-on: https://chromium-review.googlesource.com/759163 Reviewed-by: Christian Fremerey <chfremer@chromium.org> Cr-Commit-Position: refs/branch-heads/3202@{#783} Cr-Branched-From: fa6a5d87adff761bc16afc5498c3f5944c1daa68-refs/heads/master@{#499098} [modify] https://crrev.com/18a4f63fd5dc592a6b31f2a832de145b151adbde/media/audio/BUILD.gn [modify] https://crrev.com/18a4f63fd5dc592a6b31f2a832de145b151adbde/media/audio/mac/audio_manager_mac.cc [add] https://crrev.com/18a4f63fd5dc592a6b31f2a832de145b151adbde/media/audio/mac/coreaudio_dispatch_override.cc [add] https://crrev.com/18a4f63fd5dc592a6b31f2a832de145b151adbde/media/audio/mac/coreaudio_dispatch_override.h
,
Nov 8 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f15e2317b4bc8f778ed5e569385bed2214e03a08 commit f15e2317b4bc8f778ed5e569385bed2214e03a08 Author: Henrik Grunell <grunell@chromium.org> Date: Wed Nov 08 22:36:44 2017 Feature flag for serialized CoreAudio pause/resume. The serialization CL: https://chromium-review.googlesource.com/c/chromium/src/+/702375 Bug: 772884, 772410 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;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 Change-Id: I950797024e8129cf6c782a457aa9a9106ee7704e Reviewed-on: https://chromium-review.googlesource.com/708874 Reviewed-by: Robert Kaplow <rkaplow@chromium.org> Reviewed-by: Tommi <tommi@chromium.org> Reviewed-by: Dale Curtis <dalecurtis@chromium.org> Commit-Queue: Henrik Grunell <grunell@chromium.org> Cr-Original-Commit-Position: refs/heads/master@{#508072}(cherry picked from commit 6ef678b24cc0e952d03606e565eece4af5084adf) Reviewed-on: https://chromium-review.googlesource.com/759256 Reviewed-by: Christian Fremerey <chfremer@chromium.org> Cr-Commit-Position: refs/branch-heads/3202@{#784} Cr-Branched-From: fa6a5d87adff761bc16afc5498c3f5944c1daa68-refs/heads/master@{#499098} [modify] https://crrev.com/f15e2317b4bc8f778ed5e569385bed2214e03a08/media/audio/mac/audio_manager_mac.cc [modify] https://crrev.com/f15e2317b4bc8f778ed5e569385bed2214e03a08/media/base/media_switches.cc [modify] https://crrev.com/f15e2317b4bc8f778ed5e569385bed2214e03a08/media/base/media_switches.h [modify] https://crrev.com/f15e2317b4bc8f778ed5e569385bed2214e03a08/testing/variations/fieldtrial_testing_config.json
,
Nov 14 2017
,
Nov 15 2017
Marking this as fixed for now. There's no further development planned on our side.
,
Nov 23 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/2e59ea25a650ede297c7a60662c5397ccf989b13 commit 2e59ea25a650ede297c7a60662c5397ccf989b13 Author: Oskar Sundbom <ossu@chromium.org> Date: Thu Nov 23 14:39:07 2017 Make SerializeCoreAudioPauseResume the default and remove flag Bug: 772410 Cq-Include-Trybots: master.tryserver.chromium.android:android_optional_gpu_tests_rel;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 Change-Id: Idc6cb3547fb20b41a7f637840034161f2ecf26b2 Reviewed-on: https://chromium-review.googlesource.com/785211 Reviewed-by: Dale Curtis <dalecurtis@chromium.org> Reviewed-by: Jochen Eisinger <jochen@chromium.org> Reviewed-by: Henrik Grunell <grunell@chromium.org> Commit-Queue: Oskar Sundbom <ossu@chromium.org> Cr-Commit-Position: refs/heads/master@{#518933} [modify] https://crrev.com/2e59ea25a650ede297c7a60662c5397ccf989b13/media/audio/mac/audio_manager_mac.cc [modify] https://crrev.com/2e59ea25a650ede297c7a60662c5397ccf989b13/media/base/media_switches.cc [modify] https://crrev.com/2e59ea25a650ede297c7a60662c5397ccf989b13/media/base/media_switches.h [modify] https://crrev.com/2e59ea25a650ede297c7a60662c5397ccf989b13/testing/variations/fieldtrial_testing_config.json |
||||||
►
Sign in to add a comment |
||||||
Comment 1 by ossu@chromium.org
, Oct 6 2017