RFR: 8307766: Linux: Provide the option to override the timer slack [v7]
David Holmes
dholmes at openjdk.org
Sun Jul 2 23:39:55 UTC 2023
On Fri, 30 Jun 2023 18:13:16 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
>> See the description in the RFE.
>>
>> On `c6.8xlarge`, the sleep accuracy is improved the following way:
>>
>>
>> % CONF=linux-x86_64-server-release make test TEST=micro:ThreadSleep.millisNanos
>>
>> Benchmark (sleep) Mode Cnt Score Error Units
>>
>> # Default
>> ThreadSleep.millisNanos 0 avgt 15 473.727 ± 3.542 ns/op
>> ThreadSleep.millisNanos 1 avgt 15 585.868 ± 2.010 ns/op
>> ThreadSleep.millisNanos 10 avgt 15 583.475 ± 1.426 ns/op
>> ThreadSleep.millisNanos 100 avgt 15 57833.073 ± 146.406 ns/op
>> ThreadSleep.millisNanos 1000 avgt 15 59324.901 ± 620.924 ns/op
>> ThreadSleep.millisNanos 10000 avgt 15 68071.990 ± 537.880 ns/op
>> ThreadSleep.millisNanos 100000 avgt 15 158069.170 ± 329.991 ns/op
>> ThreadSleep.millisNanos 1000000 avgt 15 1059044.770 ± 370.982 ns/op
>> ThreadSleep.millisNanos 10000000 avgt 15 10060017.354 ± 399.309 ns/op
>> ThreadSleep.millisNanos 100000000 avgt 15 100062969.073 ± 2399.053 ns/op
>> ThreadSleep.millisNanos 1000000000 avgt 15 1000068474.467 ± 2669.980 ns/op
>>
>> # -XX:TimerSlack=1
>> ThreadSleep.millisNanos 0 avgt 15 469.632 ± 1.500 ns/op
>> ThreadSleep.millisNanos 1 avgt 15 587.562 ± 8.966 ns/op
>> ThreadSleep.millisNanos 10 avgt 15 584.241 ± 1.997 ns/op
>> ThreadSleep.millisNanos 100 avgt 15 7907.160 ± 12.476 ns/op
>> ThreadSleep.millisNanos 1000 avgt 15 7913.984 ± 56.996 ns/op
>> ThreadSleep.millisNanos 10000 avgt 15 17929.107 ± 432.083 ns/op
>> ThreadSleep.millisNanos 100000 avgt 15 108154.851 ± 403.717 ns/op
>> ThreadSleep.millisNanos 1000000 avgt 15 1008854.095 ± 418.444 ns/op
>> ThreadSleep.millisNanos 10000000 avgt 15 10009902.829 ± 279.617 ns/op
>> ThreadSleep.millisNanos 100000000 avgt 15 100014000.020 ± 2143.820 ns/op
>> ThreadSleep.millisNanos 1000000000 avgt 15 1000020734.333 ± 4846.754 ns/op
>
> Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision:
>
> Fix exclusion tag
test/hotspot/jtreg/runtime/os/TestTimerSlack.java line 56:
> 54: if (defaultSlack == 0) {
> 55: output.reportDiagnosticSummary();
> 56: throw new IllegalStateException("Default slack value (" + defaultSlack + ") is unexpected");
This pattern is repeated quite a few times. Pity we can't make use of something in OutputAnalyzer directly. A small helper method `fail(String msg)` would avoid the repetition.
test/hotspot/jtreg/runtime/os/TestTimerSlack.java line 79:
> 77: }
> 78:
> 79: // Check the timer slack value is accepted by all threads
I don't see anything thread related in the logic that follows. I expected to see the test program create threads and read back their time-slack values.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/13889#discussion_r1249893969
PR Review Comment: https://git.openjdk.org/jdk/pull/13889#discussion_r1249894771
More information about the hotspot-runtime-dev
mailing list