From manc at openjdk.org Fri Dec 1 00:53:43 2023 From: manc at openjdk.org (Man Cao) Date: Fri, 1 Dec 2023 00:53:43 GMT Subject: RFR: Merge jdk-15-ga In-Reply-To: References: Message-ID: On Sat, 26 Aug 2023 06:59:30 GMT, Man Cao wrote: > Hi all, > > This PR is for a merge, and to demonstrate that non-Committer could help on merging/syncing via PRs. The merge is created with `git checkout tsan; git merge --no-ff jdk-15-ga`. > > Conflicts/manual changes are: > - Changes in make/autoconf/hotspot.m4 have been reimplemented in make/autoconf/jvm-features.m4. > - In make/autoconf/flags-cflags.m4, `-Os` flag for clang is only applied to aarch64, but not macosx. > - In shenandoahPhaseTimings.hpp, TSANWeakRoots needs to adapt to new format of the SHENANDOAH_PAR_PHASE_DO macro. > - In shenandoahRootProcessor.hpp/cpp, ShenandoahTSANWeakRoot needs a new parameter in the constructor, and _tsan_weak_roots needs to be in ShenandoahSerialWeakRoots's initializer list. > - Conflicts in the following files are trivial. They are simple changes to the patch context: > - src/hotspot/share/classfile/javaClasses.hpp > - src/hotspot/share/interpreter/templateTable.cpp > - src/hotspot/share/runtime/globals.hpp > - src/hotspot/share/runtime/init.cpp > - src/hotspot/share/runtime/synchronizer.cpp > > Tested with TSAN jtreg tests with LLVM 8.0 (https://releases.llvm.org/download.html#8.0.1). The tests are executed via `$ make test TEST=hotspot/jtreg/tsan`. > > We cannot test with LLVM 16.0, because jdk-15-ga itself does not build with LLVM 16.0. Also building bin/java with recent LLVM versions with `-fsanitizer=thread` would cause ThreadSanitizer:DEADLYSIGNAL error at run-time. > > -Man Thanks for the review! ------------- PR Comment: https://git.openjdk.org/tsan/pull/15#issuecomment-1835196735 From jiangli at openjdk.org Fri Dec 1 00:53:42 2023 From: jiangli at openjdk.org (Jiangli Zhou) Date: Fri, 1 Dec 2023 00:53:42 GMT Subject: RFR: Merge jdk-15-ga In-Reply-To: References: Message-ID: On Sat, 26 Aug 2023 06:59:30 GMT, Man Cao wrote: > Hi all, > > This PR is for a merge, and to demonstrate that non-Committer could help on merging/syncing via PRs. The merge is created with `git checkout tsan; git merge --no-ff jdk-15-ga`. > > Conflicts/manual changes are: > - Changes in make/autoconf/hotspot.m4 have been reimplemented in make/autoconf/jvm-features.m4. > - In make/autoconf/flags-cflags.m4, `-Os` flag for clang is only applied to aarch64, but not macosx. > - In shenandoahPhaseTimings.hpp, TSANWeakRoots needs to adapt to new format of the SHENANDOAH_PAR_PHASE_DO macro. > - In shenandoahRootProcessor.hpp/cpp, ShenandoahTSANWeakRoot needs a new parameter in the constructor, and _tsan_weak_roots needs to be in ShenandoahSerialWeakRoots's initializer list. > - Conflicts in the following files are trivial. They are simple changes to the patch context: > - src/hotspot/share/classfile/javaClasses.hpp > - src/hotspot/share/interpreter/templateTable.cpp > - src/hotspot/share/runtime/globals.hpp > - src/hotspot/share/runtime/init.cpp > - src/hotspot/share/runtime/synchronizer.cpp > > Tested with TSAN jtreg tests with LLVM 8.0 (https://releases.llvm.org/download.html#8.0.1). The tests are executed via `$ make test TEST=hotspot/jtreg/tsan`. > > We cannot test with LLVM 16.0, because jdk-15-ga itself does not build with LLVM 16.0. Also building bin/java with recent LLVM versions with `-fsanitizer=thread` would cause ThreadSanitizer:DEADLYSIGNAL error at run-time. > > -Man @caoman and I did a walk-through of his merge changes in this PR today. We went through all hand merged changes in details to make sure: no missed TSAN work during hand merge LGTM for the merge work. ------------- Marked as reviewed by jiangli (no project role). PR Review: https://git.openjdk.org/tsan/pull/15#pullrequestreview-1758812580 From manc at openjdk.org Fri Dec 1 00:58:21 2023 From: manc at openjdk.org (Man Cao) Date: Fri, 1 Dec 2023 00:58:21 GMT Subject: RFR: Merge jdk-15-ga [v2] In-Reply-To: References: Message-ID: <-_MBiSqCJWzE-WpPlOHp0j_VJAgYbFW6zELvKdOELlM=.d23931ca-9a43-4029-a981-817e73d96ff5@github.com> > Hi all, > > This PR is for a merge, and to demonstrate that non-Committer could help on merging/syncing via PRs. The merge is created with `git checkout tsan; git merge --no-ff jdk-15-ga`. > > Conflicts/manual changes are: > - Changes in make/autoconf/hotspot.m4 have been reimplemented in make/autoconf/jvm-features.m4. > - In make/autoconf/flags-cflags.m4, `-Os` flag for clang is only applied to aarch64, but not macosx. > - In shenandoahPhaseTimings.hpp, TSANWeakRoots needs to adapt to new format of the SHENANDOAH_PAR_PHASE_DO macro. > - In shenandoahRootProcessor.hpp/cpp, ShenandoahTSANWeakRoot needs a new parameter in the constructor, and _tsan_weak_roots needs to be in ShenandoahSerialWeakRoots's initializer list. > - Conflicts in the following files are trivial. They are simple changes to the patch context: > - src/hotspot/share/classfile/javaClasses.hpp > - src/hotspot/share/interpreter/templateTable.cpp > - src/hotspot/share/runtime/globals.hpp > - src/hotspot/share/runtime/init.cpp > - src/hotspot/share/runtime/synchronizer.cpp > > Tested with TSAN jtreg tests with LLVM 8.0 (https://releases.llvm.org/download.html#8.0.1). The tests are executed via `$ make test TEST=hotspot/jtreg/tsan`. > > We cannot test with LLVM 16.0, because jdk-15-ga itself does not build with LLVM 16.0. Also building bin/java with recent LLVM versions with `-fsanitizer=thread` would cause ThreadSanitizer:DEADLYSIGNAL error at run-time. > > -Man Man Cao has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 52 commits: - Merge tag 'jdk-15-ga' into tsan Most significant merge conflicts are in hotspot.m4, and those changes have been moved to jvm-features.m4. Tested with TSAN jtreg tests with LLVM 8.0. We cannot test with LLVM 16.0, because jdk-15-ga itself does not build with LLVM 16.0. Also building bin/java with recent LLVM versions with -fsanitizer=thread would cause ThreadSanitizer:DEADLYSIGNAL error at run-time. Added tag jdk-15-ga for changeset 4a588d89 - Enable array access instrumentation for aarch64 - Enable field access instrumentation for aarch64 - Add the code to track object allocation for aarch64 - Update code location decoding for aarch64 - Add aarch64 specific lock/unlock tsan instruments - Avoid jtreg test timeout in aarch64 due to a stackoverflow in process reaper - Add function entry/exit instruments for aarch64 - Add a limition to allocate object heap in aarch64 with tsan enabled. Reviewed-by: manc - Enable aarch64 build in jdk/tsan. - ... and 42 more: https://git.openjdk.org/tsan/compare/4a588d89...47419566 ------------- Changes: https://git.openjdk.org/tsan/pull/15/files Webrev: https://webrevs.openjdk.org/?repo=tsan&pr=15&range=01 Stats: 8121 lines in 157 files changed: 8008 ins; 5 del; 108 mod Patch: https://git.openjdk.org/tsan/pull/15.diff Fetch: git fetch https://git.openjdk.org/tsan.git pull/15/head:pull/15 PR: https://git.openjdk.org/tsan/pull/15 From manc at openjdk.org Fri Dec 1 00:58:28 2023 From: manc at openjdk.org (Man Cao) Date: Fri, 1 Dec 2023 00:58:28 GMT Subject: Integrated: Merge jdk-15-ga In-Reply-To: References: Message-ID: On Sat, 26 Aug 2023 06:59:30 GMT, Man Cao wrote: > Hi all, > > This PR is for a merge, and to demonstrate that non-Committer could help on merging/syncing via PRs. The merge is created with `git checkout tsan; git merge --no-ff jdk-15-ga`. > > Conflicts/manual changes are: > - Changes in make/autoconf/hotspot.m4 have been reimplemented in make/autoconf/jvm-features.m4. > - In make/autoconf/flags-cflags.m4, `-Os` flag for clang is only applied to aarch64, but not macosx. > - In shenandoahPhaseTimings.hpp, TSANWeakRoots needs to adapt to new format of the SHENANDOAH_PAR_PHASE_DO macro. > - In shenandoahRootProcessor.hpp/cpp, ShenandoahTSANWeakRoot needs a new parameter in the constructor, and _tsan_weak_roots needs to be in ShenandoahSerialWeakRoots's initializer list. > - Conflicts in the following files are trivial. They are simple changes to the patch context: > - src/hotspot/share/classfile/javaClasses.hpp > - src/hotspot/share/interpreter/templateTable.cpp > - src/hotspot/share/runtime/globals.hpp > - src/hotspot/share/runtime/init.cpp > - src/hotspot/share/runtime/synchronizer.cpp > > Tested with TSAN jtreg tests with LLVM 8.0 (https://releases.llvm.org/download.html#8.0.1). The tests are executed via `$ make test TEST=hotspot/jtreg/tsan`. > > We cannot test with LLVM 16.0, because jdk-15-ga itself does not build with LLVM 16.0. Also building bin/java with recent LLVM versions with `-fsanitizer=thread` would cause ThreadSanitizer:DEADLYSIGNAL error at run-time. > > -Man This pull request has now been integrated. Changeset: 8fe80f4e Author: Man Cao URL: https://git.openjdk.org/tsan/commit/8fe80f4e6d9f8bd358dba5178422de0743b0b3ff Stats: 2291107 lines in 15764 files changed: 1010028 ins; 1225411 del; 55668 mod Merge jdk-15-ga Reviewed-by: jiangli ------------- PR: https://git.openjdk.org/tsan/pull/15