From aa174c859bbaf62d794f9763bcdf925d959453b2 Mon Sep 17 00:00:00 2001 From: Ankit Goyal Date: Thu, 28 Oct 2021 14:19:53 +0800 Subject: Revert "Commit all gralloc logs to warning on high memory allocation" This reverts commit 56831666f59b6bf33e1837669b6f752f973d0755. Delayed logging leads to computing all the logging macros (ALOGV etc) when they should be skipped. This leads to performance bottlenecks. Bug: 204428645 Test: Builds Change-Id: Id59480e77d0004b802d8dbe1fe26c69cd8550141 --- gralloc4/src/allocator/mali_gralloc_ion.cpp | 6 ------ 1 file changed, 6 deletions(-) (limited to 'gralloc4/src') diff --git a/gralloc4/src/allocator/mali_gralloc_ion.cpp b/gralloc4/src/allocator/mali_gralloc_ion.cpp index dd003c9..3123848 100644 --- a/gralloc4/src/allocator/mali_gralloc_ion.cpp +++ b/gralloc4/src/allocator/mali_gralloc_ion.cpp @@ -608,12 +608,6 @@ int mali_gralloc_ion_allocate(const gralloc_buffer_descriptor_t *descriptors, if (ion_fd >= 0 && fidx == 0) { fds[fidx] = ion_fd; } else { - // Warn of high memory allocation on size request greater than 200M - if (bufDescriptor->alloc_sizes[fidx] > static_cast(200ull << 20)) { - log_info_verbose_as_warning(); - MALI_GRALLOC_LOGW("Huge memory allocation: %" PRIu64, bufDescriptor->alloc_sizes[fidx]); - } - fds[fidx] = dev->alloc_from_ion_heap(usage, bufDescriptor->alloc_sizes[fidx], ion_flags, &min_pgsz); } if (fds[fidx] < 0) -- cgit v1.2.3 From 66bfdd672a4d992ba7086699c095056eb19ed82d Mon Sep 17 00:00:00 2001 From: Ankit Goyal Date: Thu, 28 Oct 2021 14:21:22 +0800 Subject: Revert "Add delayed logger to allow logging verbose/info logs as warnings" This reverts commit d91ca7bd043f4bae411f298000726176c083d5b3. Delayed logging leads to computing all the logging macros (ALOGV etc) when they should be skipped. This leads to performance bottlenecks. Bug: 204428645 Test: Builds Change-Id: Ifb3fb740169047aace14cfe202c663bd54625a4e --- gralloc4/src/4.x/Android.bp | 2 - gralloc4/src/4.x/GrallocAllocator.cpp | 1 - gralloc4/src/Android.bp | 8 --- gralloc4/src/hidl_common/Allocator.cpp | 1 - gralloc4/src/mali_gralloc_log.cpp | 94 ---------------------------------- gralloc4/src/mali_gralloc_log.h | 25 ++------- 6 files changed, 5 insertions(+), 126 deletions(-) delete mode 100644 gralloc4/src/mali_gralloc_log.cpp (limited to 'gralloc4/src') diff --git a/gralloc4/src/4.x/Android.bp b/gralloc4/src/4.x/Android.bp index b093eab..3de9da9 100644 --- a/gralloc4/src/4.x/Android.bp +++ b/gralloc4/src/4.x/Android.bp @@ -85,7 +85,6 @@ cc_library_shared { "GrallocAllocator.cpp", ":libgralloc_hidl_common_allocator", ":libgralloc_hidl_common_shared_metadata", - ":libgralloc_src_log", ], include_dirs: [ "hardware/google/gchips/include", @@ -109,7 +108,6 @@ cc_library_shared { ":libgralloc_hidl_common_mapper", ":libgralloc_hidl_common_mapper_metadata", ":libgralloc_hidl_common_shared_metadata", - ":libgralloc_src_log", ], include_dirs: [ "hardware/google/gchips/include", diff --git a/gralloc4/src/4.x/GrallocAllocator.cpp b/gralloc4/src/4.x/GrallocAllocator.cpp index 0ac81fd..1a1e563 100644 --- a/gralloc4/src/4.x/GrallocAllocator.cpp +++ b/gralloc4/src/4.x/GrallocAllocator.cpp @@ -51,7 +51,6 @@ GrallocAllocator::~GrallocAllocator() Return GrallocAllocator::allocate(const BufferDescriptor &descriptor, uint32_t count, allocate_cb hidl_cb) { - log_setup(); MALI_GRALLOC_LOGV("Allocation request from process: %lu", callingPid()); buffer_descriptor_t bufferDescriptor; diff --git a/gralloc4/src/Android.bp b/gralloc4/src/Android.bp index e899758..a3a254d 100644 --- a/gralloc4/src/Android.bp +++ b/gralloc4/src/Android.bp @@ -35,13 +35,6 @@ cc_library_headers { ], } -filegroup { - name: "libgralloc_src_log", - srcs: [ - "mali_gralloc_log.cpp", - ], -} - cc_library_shared { name: "libGralloc4Wrapper", vendor: true, @@ -56,7 +49,6 @@ cc_library_shared { "core/mali_gralloc_reference.cpp", "core/mali_gralloc_debug.cpp", ":libgralloc_hidl_common_shared_metadata", - ":libgralloc_src_log", ], cflags: [ "-DGRALLOC_LIBRARY_BUILD=1", diff --git a/gralloc4/src/hidl_common/Allocator.cpp b/gralloc4/src/hidl_common/Allocator.cpp index 76a26cd..8174f05 100644 --- a/gralloc4/src/hidl_common/Allocator.cpp +++ b/gralloc4/src/hidl_common/Allocator.cpp @@ -134,7 +134,6 @@ void allocate(const buffer_descriptor_t &bufferDescriptor, uint32_t count, IAllo { hidlBuffers.setToExternal(grallocBuffers.data(), grallocBuffers.size()); } - log_commit(); hidl_cb(error, stride, hidlBuffers); /* The application should import the Gralloc buffers using IMapper for diff --git a/gralloc4/src/mali_gralloc_log.cpp b/gralloc4/src/mali_gralloc_log.cpp deleted file mode 100644 index b2aacf2..0000000 --- a/gralloc4/src/mali_gralloc_log.cpp +++ /dev/null @@ -1,94 +0,0 @@ -#include -#include -#include - -#include - -class DelayedLogger { - public: - void setup() { - if (setupCalled) { - ALOGW("Bug: Log setup called multiple times"); - } - - setupCalled = true; - } - - void add(LogLevel level, std::string log) { - if (setupCalled) - pendingLogs.emplace_back(make_tuple(level, log)); - else - outputLog(level, log); - } - - void commit() { - for (const auto& levelLog: pendingLogs) { - const LogLevel level = std::get<0>(levelLog); - const std::string& log = std::get<1>(levelLog); - - outputLog(level, log); - } - - pendingLogs.clear(); - setupCalled = false; - logIV = false; - } - - void logInfoVerboseAsWarning() { - logIV = true; - } - - private: - - void outputLog(const LogLevel level, const std::string& log) { - switch (level) { - case LogLevel::INFO: - if (logIV) - ALOGW("INFO: %s", log.c_str()); - else - ALOGI("%s", log.c_str()); - break; - case LogLevel::VERBOSE: - if (logIV) - ALOGW("VERBOSE: %s", log.c_str()); - else - ALOGV("%s", log.c_str()); - break; - case LogLevel::WARNING: - ALOGW("%s", log.c_str()); - break; - case LogLevel::ERROR: - ALOGE("%s", log.c_str()); - break; - } - } - - std::vector> pendingLogs = {}; - bool setupCalled = false; - bool logIV = false; -}; - -thread_local DelayedLogger delayedLogger; - -void log_later(LogLevel level, const char* fmt, ...) { - char buf[10000]; - - va_list argptr; - va_start(argptr, fmt); - vsnprintf(buf, 10000, fmt, argptr); - va_end(argptr); - - delayedLogger.add(level, std::string(buf)); -} - -void log_setup() { - delayedLogger.setup(); -} - -void log_commit() { - delayedLogger.commit(); -} - -void log_info_verbose_as_warning() { - delayedLogger.logInfoVerboseAsWarning(); -} diff --git a/gralloc4/src/mali_gralloc_log.h b/gralloc4/src/mali_gralloc_log.h index 80c607d..aa4e26c 100644 --- a/gralloc4/src/mali_gralloc_log.h +++ b/gralloc4/src/mali_gralloc_log.h @@ -21,27 +21,12 @@ #define LOG_TAG "mali_gralloc" #endif -#include -#include -#include - #include -enum class LogLevel { - INFO, - VERBOSE, - WARNING, - ERROR -}; - -void log_setup(); -void log_later(LogLevel level, const char* fmt, ...); -void log_commit(); -void log_info_verbose_as_warning(); - -#define MALI_GRALLOC_LOGI(...) log_later(LogLevel::INFO, __VA_ARGS__); -#define MALI_GRALLOC_LOGV(...) log_later(LogLevel::VERBOSE, __VA_ARGS__); -#define MALI_GRALLOC_LOGW(...) log_later(LogLevel::WARNING, __VA_ARGS__); -#define MALI_GRALLOC_LOGE(...) log_later(LogLevel::ERROR, __VA_ARGS__); +/* Delegate logging to Android */ +#define MALI_GRALLOC_LOGI(...) ALOGI(__VA_ARGS__) +#define MALI_GRALLOC_LOGV(...) ALOGV(__VA_ARGS__) +#define MALI_GRALLOC_LOGW(...) ALOGW(__VA_ARGS__) +#define MALI_GRALLOC_LOGE(...) ALOGE(__VA_ARGS__) #endif -- cgit v1.2.3