From dff87f04a9012229b246850289a4bb67fb5ff03b Mon Sep 17 00:00:00 2001 From: Cong Lin Date: Tue, 30 May 2023 17:44:13 -0700 Subject: [PATCH] Use LOGW when membarrier_function is not present in L3 membarrier_function() for clearing cache in L3 is optional and good to have. Currently we log it as error if it is not available, which caused some confusion for CE CDM L3 partners building their own L3. Also corrected a typo in the function name. Test: build L3 and run dynamic level3 tests Change-Id: If20bcb1fe2bace33c43aa178af699f3b190a1fd2 --- .../level3/include/clear_cache_function.h | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/libwvdrmengine/level3/include/clear_cache_function.h b/libwvdrmengine/level3/include/clear_cache_function.h index 70d38684..b8658641 100644 --- a/libwvdrmengine/level3/include/clear_cache_function.h +++ b/libwvdrmengine/level3/include/clear_cache_function.h @@ -16,7 +16,7 @@ namespace wvoec3 { -bool supports_membarier_syscall() { +bool supports_membarrier_syscall() { // Check kernel version supports membarrier(2); version 4.16 is required. static constexpr int kRequiredMajor = 4; static constexpr int kRequiredMinor = 16; @@ -29,8 +29,11 @@ bool supports_membarier_syscall() { } if (major < kRequiredMajor || (major == kRequiredMajor && minor < kRequiredMinor)) { - LOGE("Kernel version %d, %d < required %d, %d", major, minor, - kRequiredMajor, kRequiredMinor); + LOGW( + "Kernel version %d, %d < required %d, %d. Some membarrier_function " + "calls may not be available. Although this is not fatal, missing " + "membarrier support may cause run-time errors on some platforms.", + major, minor, kRequiredMajor, kRequiredMinor); return false; } return true; @@ -43,8 +46,8 @@ bool supports_membarier_syscall() { // * membarrier(2) // * art::jit::JitMemoryRegion::CommitCode int membarrier_function(int command) { - static bool supports_membarier = supports_membarier_syscall(); - if (supports_membarier) { + static bool supports_membarrier = supports_membarrier_syscall(); + if (supports_membarrier) { return syscall(__NR_membarrier, command, 0); } errno = ENOSYS;