Work around slow runtime of current FlushProcessWriteBuffers() implementation on macOS.
The total iteration count becomes:
``` - positive half: 32768 * 1 (old) = 8192 * 4 (new) - negative half: 32768 * 1 (old) > 8192 * 1 (new) ```
-- v2: kernel32/tests: Shorten time for negative half of litmus test for FlushProcessWriteBuffers().
From: Jinoh Kang jinoh.kang.kr@gmail.com
Prepare for a refactoring to vary iteration count for each test. --- dlls/kernel32/tests/virtual.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/dlls/kernel32/tests/virtual.c b/dlls/kernel32/tests/virtual.c index c08c82dd999..fdc1958dc7e 100644 --- a/dlls/kernel32/tests/virtual.c +++ b/dlls/kernel32/tests/virtual.c @@ -4721,10 +4721,18 @@ static void test_FlushProcessWriteBuffers(void) return; }
- reorderings = store_buffer_litmus_test( compiler_barrier, compiler_barrier ); + /* NOTE: Avoid passing the loop count directly as a parameter to ensure + * NOTE: that each test is independent of the differing loop count. + */ + + reorderings = 0; + for (i = 0; i < 1; i++) + reorderings += store_buffer_litmus_test( compiler_barrier, compiler_barrier ); ok( reorderings, "expected write-read reordering with compiler barrier only (got %ld reorderings)\n", reorderings );
- reorderings = store_buffer_litmus_test( compiler_barrier, pFlushProcessWriteBuffers ); + reorderings = 0; + for (i = 0; i < 1; i++) + reorderings = store_buffer_litmus_test( compiler_barrier, pFlushProcessWriteBuffers ); ok( !reorderings, "expected sequential consistency with FlushProcessWriteBuffers (got %ld reorderings)\n", reorderings ); }
From: Jinoh Kang jinoh.kang.kr@gmail.com
Work around slow runtime of current FlushProcessWriteBuffers() implementation on macOS.
The total iteration count becomes:
- positive half: 32768 * 1 (old) = 8192 * 4 (new) - negative half: 32768 * 1 (old) > 8192 * 1 (new) --- dlls/kernel32/tests/virtual.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/dlls/kernel32/tests/virtual.c b/dlls/kernel32/tests/virtual.c index fdc1958dc7e..a3080671df1 100644 --- a/dlls/kernel32/tests/virtual.c +++ b/dlls/kernel32/tests/virtual.c @@ -4655,7 +4655,7 @@ static LONG store_buffer_litmus_test( void (*WINAPI barrier0)(void), void (*WINA .num_slots = 64,
/* Increase if flaky, decrease if slow */ - .num_generations = 32768, + .num_generations = 8192,
.reorderings = &reorderings, }; @@ -4726,12 +4726,12 @@ static void test_FlushProcessWriteBuffers(void) */
reorderings = 0; - for (i = 0; i < 1; i++) + for (i = 0; i < 4; i++) /* run multiple times to reduce flakiness */ reorderings += store_buffer_litmus_test( compiler_barrier, compiler_barrier ); ok( reorderings, "expected write-read reordering with compiler barrier only (got %ld reorderings)\n", reorderings );
reorderings = 0; - for (i = 0; i < 1; i++) + for (i = 0; i < 1; i++) /* TODO: FlushProcessWriteBuffers() is slow on macOS */ reorderings = store_buffer_litmus_test( compiler_barrier, pFlushProcessWriteBuffers ); ok( !reorderings, "expected sequential consistency with FlushProcessWriteBuffers (got %ld reorderings)\n", reorderings ); }