<br><br><div class="gmail_quote"><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000"><div class="im"><blockquote type="cite">
What happens when you run CMS on a single-processor. I hope you
don't see a deprecation warning.<br>
</blockquote>
<br></div>
Ooops. Good point. It took me a long while to find a machine with
just one cpu that could actually run JDK8. But you are correct. We
will print a warning in that case.<br></div></blockquote><div><br>Remember that virtualized platforms or LDOMS or Zones may partition a large box into small 1-cpu slices (although may be not 1-core).<br><br>On Solaris, you can easily test your code by means of psradm to turn off all but one virtual cpu.<br>
<br></div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
<br>
I think the fix is to not pick DefNew by default for single
processor machines. I'll see if I can get any performance data for
that.<br>
<br></div></blockquote><div><br>I'd test that on a regular MP with ParNew=1 vs DefNew, as well as separately with psrset and pbind (although my guess is that<br>the latter two would be indistinguishable from each other). As I recall, scaling was near linear at those small numbers for ParNew,<br>
and the breakeven point was at 2, so my guess based on very old data from the fogs of time is that we'd see a fairly sizable pause<br>time and overhead hit on a single cpu.<br><br>Stepping back for a moment, is supporting embedded environments perhaps from the same parent code base an issue, so DefNew &<br>
Serial is going to be part of the code base for a while, anyway?<br><br>I understand though that saving on testing resources by pruning down supported combinations is one important motivation, in which case<br>DefNew+CMS gets deprecated (and switches to Parnew/1+CMS on 1-cpu configs), but DefNew continues to be part of the code base,<br>
and so DefNew code gets used (and tested) at least in part to the extent that ParNew uses at least some functionality defined in DefNew.<br><br>-- ramki<br></div><br>
</div><br>