Merge "audio: Change log severity for audio I/O commands" am: d2ad3852e1 am: 9cf1728503

Original change: https://android-review.googlesource.com/c/platform/hardware/interfaces/+/2419961

Change-Id: Id734a061bd79205d8493804a0b4e69fce3395570
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Mikhail Naganov 2023-02-04 00:38:18 +00:00 committed by Automerger Merge Worker
commit f6b3acb950
2 changed files with 28 additions and 13 deletions

View file

@ -135,10 +135,16 @@ StreamInWorkerLogic::Status StreamInWorkerLogic::cycle() {
mState = StreamDescriptor::State::ERROR; mState = StreamDescriptor::State::ERROR;
return Status::ABORT; return Status::ABORT;
} }
LOG(DEBUG) << __func__ << ": received command " << command.toString() << " in " << kThreadName; using Tag = StreamDescriptor::Command::Tag;
using LogSeverity = ::android::base::LogSeverity;
const LogSeverity severity =
command.getTag() == Tag::burst || command.getTag() == Tag::getStatus
? LogSeverity::VERBOSE
: LogSeverity::DEBUG;
LOG(severity) << __func__ << ": received command " << command.toString() << " in "
<< kThreadName;
StreamDescriptor::Reply reply{}; StreamDescriptor::Reply reply{};
reply.status = STATUS_BAD_VALUE; reply.status = STATUS_BAD_VALUE;
using Tag = StreamDescriptor::Command::Tag;
switch (command.getTag()) { switch (command.getTag()) {
case Tag::halReservedExit: case Tag::halReservedExit:
if (const int32_t cookie = command.get<Tag::halReservedExit>(); if (const int32_t cookie = command.get<Tag::halReservedExit>();
@ -166,8 +172,8 @@ StreamInWorkerLogic::Status StreamInWorkerLogic::cycle() {
break; break;
case Tag::burst: case Tag::burst:
if (const int32_t fmqByteCount = command.get<Tag::burst>(); fmqByteCount >= 0) { if (const int32_t fmqByteCount = command.get<Tag::burst>(); fmqByteCount >= 0) {
LOG(DEBUG) << __func__ << ": '" << toString(command.getTag()) << "' command for " LOG(VERBOSE) << __func__ << ": '" << toString(command.getTag()) << "' command for "
<< fmqByteCount << " bytes"; << fmqByteCount << " bytes";
if (mState == StreamDescriptor::State::IDLE || if (mState == StreamDescriptor::State::IDLE ||
mState == StreamDescriptor::State::ACTIVE || mState == StreamDescriptor::State::ACTIVE ||
mState == StreamDescriptor::State::PAUSED || mState == StreamDescriptor::State::PAUSED ||
@ -253,7 +259,7 @@ StreamInWorkerLogic::Status StreamInWorkerLogic::cycle() {
break; break;
} }
reply.state = mState; reply.state = mState;
LOG(DEBUG) << __func__ << ": writing reply " << reply.toString(); LOG(severity) << __func__ << ": writing reply " << reply.toString();
if (!mReplyMQ->writeBlocking(&reply, 1)) { if (!mReplyMQ->writeBlocking(&reply, 1)) {
LOG(ERROR) << __func__ << ": writing of reply " << reply.toString() << " to MQ failed"; LOG(ERROR) << __func__ << ": writing of reply " << reply.toString() << " to MQ failed";
mState = StreamDescriptor::State::ERROR; mState = StreamDescriptor::State::ERROR;
@ -284,8 +290,8 @@ bool StreamInWorkerLogic::read(size_t clientSize, StreamDescriptor::Reply* reply
if (bool success = if (bool success =
actualByteCount > 0 ? mDataMQ->write(&mDataBuffer[0], actualByteCount) : true; actualByteCount > 0 ? mDataMQ->write(&mDataBuffer[0], actualByteCount) : true;
success) { success) {
LOG(DEBUG) << __func__ << ": writing of " << actualByteCount << " bytes into data MQ" LOG(VERBOSE) << __func__ << ": writing of " << actualByteCount << " bytes into data MQ"
<< " succeeded; connected? " << isConnected; << " succeeded; connected? " << isConnected;
// Frames are provided and counted regardless of connection status. // Frames are provided and counted regardless of connection status.
reply->fmqByteCount += actualByteCount; reply->fmqByteCount += actualByteCount;
mFrameCount += actualFrameCount; mFrameCount += actualFrameCount;
@ -340,7 +346,14 @@ StreamOutWorkerLogic::Status StreamOutWorkerLogic::cycle() {
mState = StreamDescriptor::State::ERROR; mState = StreamDescriptor::State::ERROR;
return Status::ABORT; return Status::ABORT;
} }
LOG(DEBUG) << __func__ << ": received command " << command.toString() << " in " << kThreadName; using Tag = StreamDescriptor::Command::Tag;
using LogSeverity = ::android::base::LogSeverity;
const LogSeverity severity =
command.getTag() == Tag::burst || command.getTag() == Tag::getStatus
? LogSeverity::VERBOSE
: LogSeverity::DEBUG;
LOG(severity) << __func__ << ": received command " << command.toString() << " in "
<< kThreadName;
StreamDescriptor::Reply reply{}; StreamDescriptor::Reply reply{};
reply.status = STATUS_BAD_VALUE; reply.status = STATUS_BAD_VALUE;
using Tag = StreamDescriptor::Command::Tag; using Tag = StreamDescriptor::Command::Tag;
@ -383,8 +396,8 @@ StreamOutWorkerLogic::Status StreamOutWorkerLogic::cycle() {
} break; } break;
case Tag::burst: case Tag::burst:
if (const int32_t fmqByteCount = command.get<Tag::burst>(); fmqByteCount >= 0) { if (const int32_t fmqByteCount = command.get<Tag::burst>(); fmqByteCount >= 0) {
LOG(DEBUG) << __func__ << ": '" << toString(command.getTag()) << "' command for " LOG(VERBOSE) << __func__ << ": '" << toString(command.getTag()) << "' command for "
<< fmqByteCount << " bytes"; << fmqByteCount << " bytes";
if (mState != StreamDescriptor::State::ERROR && if (mState != StreamDescriptor::State::ERROR &&
mState != StreamDescriptor::State::TRANSFERRING && mState != StreamDescriptor::State::TRANSFERRING &&
mState != StreamDescriptor::State::TRANSFER_PAUSED) { mState != StreamDescriptor::State::TRANSFER_PAUSED) {
@ -499,7 +512,7 @@ StreamOutWorkerLogic::Status StreamOutWorkerLogic::cycle() {
break; break;
} }
reply.state = mState; reply.state = mState;
LOG(DEBUG) << __func__ << ": writing reply " << reply.toString(); LOG(severity) << __func__ << ": writing reply " << reply.toString();
if (!mReplyMQ->writeBlocking(&reply, 1)) { if (!mReplyMQ->writeBlocking(&reply, 1)) {
LOG(ERROR) << __func__ << ": writing of reply " << reply.toString() << " to MQ failed"; LOG(ERROR) << __func__ << ": writing of reply " << reply.toString() << " to MQ failed";
mState = StreamDescriptor::State::ERROR; mState = StreamDescriptor::State::ERROR;
@ -514,8 +527,8 @@ bool StreamOutWorkerLogic::write(size_t clientSize, StreamDescriptor::Reply* rep
int32_t latency = Module::kLatencyMs; int32_t latency = Module::kLatencyMs;
if (bool success = readByteCount > 0 ? mDataMQ->read(&mDataBuffer[0], readByteCount) : true) { if (bool success = readByteCount > 0 ? mDataMQ->read(&mDataBuffer[0], readByteCount) : true) {
const bool isConnected = mIsConnected; const bool isConnected = mIsConnected;
LOG(DEBUG) << __func__ << ": reading of " << readByteCount << " bytes from data MQ" LOG(VERBOSE) << __func__ << ": reading of " << readByteCount << " bytes from data MQ"
<< " succeeded; connected? " << isConnected; << " succeeded; connected? " << isConnected;
// Amount of data that the HAL module is going to actually use. // Amount of data that the HAL module is going to actually use.
size_t byteCount = std::min({clientSize, readByteCount, mDataBufferSize}); size_t byteCount = std::min({clientSize, readByteCount, mDataBufferSize});
if (byteCount >= mFrameSize && mForceTransientBurst) { if (byteCount >= mFrameSize && mForceTransientBurst) {

View file

@ -35,6 +35,8 @@ int main() {
// This is a debug implementation, always enable debug logging. // This is a debug implementation, always enable debug logging.
android::base::SetMinimumLogSeverity(::android::base::DEBUG); android::base::SetMinimumLogSeverity(::android::base::DEBUG);
// For more logs, use VERBOSE, however this may hinder performance.
// android::base::SetMinimumLogSeverity(::android::base::VERBOSE);
ABinderProcess_setThreadPoolMaxThreadCount(16); ABinderProcess_setThreadPoolMaxThreadCount(16);
// Make the default config service // Make the default config service