summary refs log tree commit diff stats
path: root/results/scraper/box64/2041
diff options
context:
space:
mode:
Diffstat (limited to 'results/scraper/box64/2041')
-rw-r--r--results/scraper/box64/204133
1 files changed, 33 insertions, 0 deletions
diff --git a/results/scraper/box64/2041 b/results/scraper/box64/2041
new file mode 100644
index 000000000..ad9fadc13
--- /dev/null
+++ b/results/scraper/box64/2041
@@ -0,0 +1,33 @@
+[DYNAREC] BOX64_DYNAREC_STRONGMEM tuning for libjvm
+Hi,

+

+The weak memory model architectures[1] reproduced less memory barrier related issue after tuning `BOX64_DYNAREC_STRONGMEM` to bigger one:

+

+| BOX64_DYNAREC_STRONGMEM | SPECjvm2008[2] derby Reproduced SIGSEGV (run 10 times) smaller is better |

+| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------- |

+| 1 | 80% |

+| 3 | 20% |

+

+So is it OK tuning `BOX64_DYNAREC_STRONGMEM` to bigger one for libjvm?

+

+```

+diff --git a/src/librarian/library.c b/src/librarian/library.c

+index bf922d60..c206d365 100644

+--- a/src/librarian/library.c

++++ b/src/librarian/library.c

+@@ -371,7 +371,7 @@ static int loadEmulatedLib(const char* libname, library_t *lib, box64context_t*

+             #ifdef DYNAREC

+             printf_dump(LOG_INFO, "libjvm detected, disable Dynarec BigBlock and enable Dynarec StrongMem, hide SSE 4.2\n");

+             box64_dynarec_bigblock = 0;

+-            box64_dynarec_strongmem = 1;

++            box64_dynarec_strongmem = 3;

+             #else

+             printf_dump(LOG_INFO, "libjvm detected, hide SSE 4.2\n");

+             #endif

+```

+

+[1] Synchronization Overview and Case Study on Arm Architecture  https://community.arm.com/arm-community-blogs/b/infrastructure-solutions-blog/posts/synchronization-overview-and-case-study-on-arm-architecture-563085493

+[2] SPECjvm2008 https://www.spec.org/jvm2008/

+

+Thanks,

+Leslie Zhai
\ No newline at end of file