Loading media/audioserver/main_audioserver.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -205,6 +205,7 @@ int main(int argc __unused, char **argv) __func__, status, policyInfos.size()); } const auto endTime = std::chrono::steady_clock::now(); af->startupFinished(); using FloatMillis = std::chrono::duration<float, std::milli>; const float timeTaken = std::chrono::duration_cast<FloatMillis>( endTime - startTime).count(); Loading services/audioflinger/AudioFlinger.cpp +20 −0 Original line number Diff line number Diff line Loading @@ -905,6 +905,26 @@ status_t AudioFlinger::dump(int fd, const Vector<String16>& args) // Unknown arg silently ignored } { std::string res; res.reserve(100); res += "Start begin: "; const auto startTimeStr = audio_utils_time_string_from_ns(mStartTime); res += startTimeStr.time; const auto startFinishedTime = getStartupFinishedTime(); if (startFinishedTime != 0) { res += "\nStart end: "; const auto startEndStr = audio_utils_time_string_from_ns(startFinishedTime); res += startEndStr.time; } else { res += "\nStartup not yet finished!"; } const auto nowTimeStr = audio_utils_time_string_from_ns(audio_utils_get_real_time_ns()); res += "\nNow: "; res += nowTimeStr.time; res += "\n"; writeStr(fd, res); } // get state of hardware lock { FallibleLockGuard l{hardwareMutex()}; Loading services/audioflinger/AudioFlinger.h +14 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ #include "IAfTrack.h" #include "MelReporter.h" #include "PatchCommandThread.h" #include "audio_utils/clock.h" // External classes #include <audio_utils/mutex.h> Loading Loading @@ -65,6 +66,11 @@ public: status_t resetReferencesForTest(); // Called by main when startup finished -- for logging purposes only void startupFinished() { mStartupFinishedTime.store(audio_utils_get_real_time_ns(), std::memory_order_release); } private: // ---- begin IAudioFlinger interface Loading Loading @@ -420,6 +426,10 @@ private: sp<EffectsFactoryHalInterface> getEffectsFactory(); int64_t getStartupFinishedTime() { return mStartupFinishedTime.load(std::memory_order_acquire); } public: // TODO(b/292281786): Remove this when Oboeservice can get access to // openMmapStream through an IAudioFlinger handle directly. Loading Loading @@ -803,6 +813,10 @@ private: // Local interface to AudioPolicyService, late inited, but logically const mediautils::atomic_sp<media::IAudioPolicyServiceLocal> mAudioPolicyServiceLocal; const int64_t mStartTime = audio_utils_get_real_time_ns(); // Late-inited from main() std::atomic<int64_t> mStartupFinishedTime {}; }; // ---------------------------------------------------------------------------- Loading Loading
media/audioserver/main_audioserver.cpp +1 −0 Original line number Diff line number Diff line Loading @@ -205,6 +205,7 @@ int main(int argc __unused, char **argv) __func__, status, policyInfos.size()); } const auto endTime = std::chrono::steady_clock::now(); af->startupFinished(); using FloatMillis = std::chrono::duration<float, std::milli>; const float timeTaken = std::chrono::duration_cast<FloatMillis>( endTime - startTime).count(); Loading
services/audioflinger/AudioFlinger.cpp +20 −0 Original line number Diff line number Diff line Loading @@ -905,6 +905,26 @@ status_t AudioFlinger::dump(int fd, const Vector<String16>& args) // Unknown arg silently ignored } { std::string res; res.reserve(100); res += "Start begin: "; const auto startTimeStr = audio_utils_time_string_from_ns(mStartTime); res += startTimeStr.time; const auto startFinishedTime = getStartupFinishedTime(); if (startFinishedTime != 0) { res += "\nStart end: "; const auto startEndStr = audio_utils_time_string_from_ns(startFinishedTime); res += startEndStr.time; } else { res += "\nStartup not yet finished!"; } const auto nowTimeStr = audio_utils_time_string_from_ns(audio_utils_get_real_time_ns()); res += "\nNow: "; res += nowTimeStr.time; res += "\n"; writeStr(fd, res); } // get state of hardware lock { FallibleLockGuard l{hardwareMutex()}; Loading
services/audioflinger/AudioFlinger.h +14 −0 Original line number Diff line number Diff line Loading @@ -27,6 +27,7 @@ #include "IAfTrack.h" #include "MelReporter.h" #include "PatchCommandThread.h" #include "audio_utils/clock.h" // External classes #include <audio_utils/mutex.h> Loading Loading @@ -65,6 +66,11 @@ public: status_t resetReferencesForTest(); // Called by main when startup finished -- for logging purposes only void startupFinished() { mStartupFinishedTime.store(audio_utils_get_real_time_ns(), std::memory_order_release); } private: // ---- begin IAudioFlinger interface Loading Loading @@ -420,6 +426,10 @@ private: sp<EffectsFactoryHalInterface> getEffectsFactory(); int64_t getStartupFinishedTime() { return mStartupFinishedTime.load(std::memory_order_acquire); } public: // TODO(b/292281786): Remove this when Oboeservice can get access to // openMmapStream through an IAudioFlinger handle directly. Loading Loading @@ -803,6 +813,10 @@ private: // Local interface to AudioPolicyService, late inited, but logically const mediautils::atomic_sp<media::IAudioPolicyServiceLocal> mAudioPolicyServiceLocal; const int64_t mStartTime = audio_utils_get_real_time_ns(); // Late-inited from main() std::atomic<int64_t> mStartupFinishedTime {}; }; // ---------------------------------------------------------------------------- Loading