The -Xconcurrentio flag was introduced primarily for Solaris way back in the JDK 1.2/1.3 timeframe. It's an "undocumented" flag that of course ended up being documented in numerous FAQs and tuning guides primarily because it was initially useful on Solaris to switch to LWP-based synchronization. However that became the default back in JDK 1.4.
Exactly what "io" has to do with this flag and what makes it "concurrent" is a complete mystery to me.
The flag has the following effect on other flags:
1. UseLWPSynchronization = true
Default since JDK 1.4 so not needed.
2. BackgroundCompilation = false
3. SafepointSynchronize::set_defer_thr_suspend_loop_count()
This sets the defer_thr_suspend_loop_count to 1 instead of the default (currently 4000). This causes the VMThread to block in os::naked_short_sleep(1) for every iteration whilst waiting for running threads, instead of yielding - but only if we don't do SpinPause.
4. UseTLAB = false
5. NewSizeThreadIncrease = 16K
There's really no reason to ever use this flag, even if you wanted to adjust the behaviour of the other flags.
I suggest removing it.
Exactly what "io" has to do with this flag and what makes it "concurrent" is a complete mystery to me.
The flag has the following effect on other flags:
1. UseLWPSynchronization = true
Default since JDK 1.4 so not needed.
2. BackgroundCompilation = false
3. SafepointSynchronize::set_defer_thr_suspend_loop_count()
This sets the defer_thr_suspend_loop_count to 1 instead of the default (currently 4000). This causes the VMThread to block in os::naked_short_sleep(1) for every iteration whilst waiting for running threads, instead of yielding - but only if we don't do SpinPause.
4. UseTLAB = false
5. NewSizeThreadIncrease = 16K
There's really no reason to ever use this flag, even if you wanted to adjust the behaviour of the other flags.
I suggest removing it.
- csr for
-
JDK-8213768 Remove the -Xconcurrentio flag and associated code
-
- Closed
-