RFR: 8255047: Add HotSpot flag to use with debuggers that restrict the CPU…
Stefan Karlsson
stefank at openjdk.java.net
Tue Oct 20 10:22:18 UTC 2020
Some debuggers don't work well with many threads, and/or incompletely restricts the number of used CPUs to one.
This flag is intended as a catch-all for HotSpot developers (not available in product builds) to allow us to more
easily use those debuggers.
Currently, the proposal is to let the flag fix a few things:
1) Turn down the number of JVM threads
2) Turn off NUMA
3) Force processor_id() to return 0 instead of values above processor_count()
(1) is purely ergonomics: gdb, rr, valgrind is faster and seems to work much better with fewer threads. The values
would still be overridable by devs.
(2) and (3) deals with the fact that some debuggers change the reported processor count, but don't change the processor
ids returned by sched_getcpu. This causes problems for ZGC and NUMA, that both assumes that they can rely on
os::processor_id() < os::processor_count().
The current proposed flag name is -XX:+LimitedCPUsDebugging. I'm not entirely happy with that name, but I been able to
find a better name.
An alternative to having one flag, is to split this into two flags, and maybe that would solve the naming problem.
However, the usability aspects will be worse.
If we can't find a suitable name, I rather introduce a flag called:
-XX:DebuggerWorkarounds or -XX:DebuggerWorkaround1
Any suggestions / opinions? I really do want to at least fix the (2, 3) problem, because I keep having to add this to
every single branch I'm working on.
-------------
Commit messages:
- 8255047: Add HotSpot flag to use with debuggers that restrict the CPU count
Changes: https://git.openjdk.java.net/jdk/pull/763/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=763&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8255047
Stats: 27 lines in 4 files changed: 25 ins; 0 del; 2 mod
Patch: https://git.openjdk.java.net/jdk/pull/763.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/763/head:pull/763
PR: https://git.openjdk.java.net/jdk/pull/763
More information about the hotspot-dev
mailing list