From 52e322b3b01f8bbb5fdebb9770e25eafdf322b6e Mon Sep 17 00:00:00 2001 From: Lu Yahan Date: Mon, 9 Dec 2024 19:20:03 +0800 Subject: [PATCH] deps: V8: cherry-pick 9ab40592f697 Original commit message: [riscv] Flush icache in both local and remote harts Fix the I-Cache flush flag according to the implementation of flush_icache_mm in Linux kernel. Change-Id: I6e6b1f56c377c2c0a629e170737bfac6c357ce8d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6080611 Commit-Queue: Yahan Lu (LuYahan) Reviewed-by: Ji Qiu Cr-Commit-Position: refs/heads/main@{#97673} Refs: https://github.com/v8/v8/commit/9ab40592f697795f13e71325a18ecbe8cf5857ed --- common.gypi | 2 +- deps/v8/src/codegen/riscv/cpu-riscv.cc | 8 ++------ 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/common.gypi b/common.gypi index df1cf464134483..1ad3c30629f394 100644 --- a/common.gypi +++ b/common.gypi @@ -37,7 +37,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.10', + 'v8_embedder_string': '-node.11', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/src/codegen/riscv/cpu-riscv.cc b/deps/v8/src/codegen/riscv/cpu-riscv.cc index 613c54439a59fb..143602dfb663c7 100644 --- a/deps/v8/src/codegen/riscv/cpu-riscv.cc +++ b/deps/v8/src/codegen/riscv/cpu-riscv.cc @@ -15,16 +15,12 @@ namespace internal { void CpuFeatures::FlushICache(void* start, size_t size) { #if !defined(USE_SIMULATOR) char* end = reinterpret_cast(start) + size; - // The definition of this syscall is equal to - // SYSCALL_DEFINE3(riscv_flush_icache, uintptr_t, start, - // uintptr_t, end, uintptr_t, flags) - // The flag here is set to be SYS_RISCV_FLUSH_ICACHE_LOCAL, which is - // defined as 1 in the Linux kernel. // SYS_riscv_flush_icache is a symbolic constant used in user-space code to // identify the flush_icache system call, while __NR_riscv_flush_icache is the // corresponding system call number used in the kernel to dispatch the system // call. - syscall(__NR_riscv_flush_icache, start, end, 1); + // The flag set to zero will flush all cpu cores. + syscall(__NR_riscv_flush_icache, start, end, 0); #endif // !USE_SIMULATOR. }