Lines Matching refs:test_var
296 static long test_var; variable
323 static noinline void test_kernel_read(void) { sink_value(test_var); } in test_kernel_read()
327 test_var = READ_ONCE_NOCHECK(test_sink) + 1; in test_kernel_write()
330 static noinline void test_kernel_write_nochange(void) { test_var = 42; } in test_kernel_write_nochange()
333 static noinline void test_kernel_write_nochange_rcu(void) { test_var = 42; } in test_kernel_write_nochange_rcu()
337 sink_value(READ_ONCE(test_var)); in test_kernel_read_atomic()
342 WRITE_ONCE(test_var, READ_ONCE_NOCHECK(test_sink) + 1); in test_kernel_write_atomic()
348 __atomic_fetch_add(&test_var, 1, __ATOMIC_RELAXED); in test_kernel_atomic_rmw()
352 static noinline void test_kernel_write_uninstrumented(void) { test_var++; } in test_kernel_write_uninstrumented()
354 static noinline void test_kernel_data_race(void) { data_race(test_var++); } in test_kernel_data_race()
358 ASSERT_EXCLUSIVE_WRITER(test_var); in test_kernel_assert_writer()
363 ASSERT_EXCLUSIVE_ACCESS(test_var); in test_kernel_assert_access()
376 test_var ^= TEST_CHANGE_BITS; in test_kernel_change_bits()
379 WRITE_ONCE(test_var, READ_ONCE(test_var) ^ TEST_CHANGE_BITS); in test_kernel_change_bits()
384 ASSERT_EXCLUSIVE_BITS(test_var, TEST_CHANGE_BITS); in test_kernel_assert_bits_change()
389 ASSERT_EXCLUSIVE_BITS(test_var, ~TEST_CHANGE_BITS); in test_kernel_assert_bits_nochange()
407 ASSERT_EXCLUSIVE_WRITER_SCOPED(test_var); in test_kernel_assert_writer_scoped()
413 ASSERT_EXCLUSIVE_ACCESS_SCOPED(test_var); in test_kernel_assert_access_scoped()
454 sink_value(test_var); in test_kernel_seqlock_reader()
463 test_var++; in test_kernel_seqlock_writer()
473 __atomic_load_n(&test_var, __ATOMIC_RELAXED); in test_kernel_atomic_builtins()
480 test_var ^= 0x10000; in test_kernel_xor_1bit()
492 test_var++; \
536 reorder_access->size = sizeof(test_var); \ in test_barrier_nothreads()
539 order_before ? 0 : sizeof(test_var), \ in test_barrier_nothreads()
556 test_var = 0; in test_barrier_nothreads()
557 while (test_var++ < 1000000 && reorder_access->size != sizeof(test_var)) in test_barrier_nothreads()
558 __kcsan_check_read(&test_var, sizeof(test_var)); in test_barrier_nothreads()
559 KUNIT_ASSERT_EQ(test, reorder_access->size, sizeof(test_var)); in test_barrier_nothreads()
574 KCSAN_EXPECT_READ_BARRIER(smp_store_mb(test_var, 0), true); in test_barrier_nothreads()
575 KCSAN_EXPECT_READ_BARRIER(smp_load_acquire(&test_var), false); in test_barrier_nothreads()
576 KCSAN_EXPECT_READ_BARRIER(smp_store_release(&test_var, 0), true); in test_barrier_nothreads()
577 KCSAN_EXPECT_READ_BARRIER(xchg(&test_var, 0), true); in test_barrier_nothreads()
578 KCSAN_EXPECT_READ_BARRIER(xchg_release(&test_var, 0), true); in test_barrier_nothreads()
579 KCSAN_EXPECT_READ_BARRIER(xchg_relaxed(&test_var, 0), false); in test_barrier_nothreads()
580 KCSAN_EXPECT_READ_BARRIER(cmpxchg(&test_var, 0, 0), true); in test_barrier_nothreads()
581 KCSAN_EXPECT_READ_BARRIER(cmpxchg_release(&test_var, 0, 0), true); in test_barrier_nothreads()
582 KCSAN_EXPECT_READ_BARRIER(cmpxchg_relaxed(&test_var, 0, 0), false); in test_barrier_nothreads()
596 KCSAN_EXPECT_READ_BARRIER(test_and_set_bit(0, &test_var), true); in test_barrier_nothreads()
597 KCSAN_EXPECT_READ_BARRIER(test_and_clear_bit(0, &test_var), true); in test_barrier_nothreads()
598 KCSAN_EXPECT_READ_BARRIER(test_and_change_bit(0, &test_var), true); in test_barrier_nothreads()
599 KCSAN_EXPECT_READ_BARRIER(clear_bit_unlock(0, &test_var), true); in test_barrier_nothreads()
600 KCSAN_EXPECT_READ_BARRIER(__clear_bit_unlock(0, &test_var), true); in test_barrier_nothreads()
619 KCSAN_EXPECT_WRITE_BARRIER(smp_store_mb(test_var, 0), true); in test_barrier_nothreads()
620 KCSAN_EXPECT_WRITE_BARRIER(smp_load_acquire(&test_var), false); in test_barrier_nothreads()
621 KCSAN_EXPECT_WRITE_BARRIER(smp_store_release(&test_var, 0), true); in test_barrier_nothreads()
622 KCSAN_EXPECT_WRITE_BARRIER(xchg(&test_var, 0), true); in test_barrier_nothreads()
623 KCSAN_EXPECT_WRITE_BARRIER(xchg_release(&test_var, 0), true); in test_barrier_nothreads()
624 KCSAN_EXPECT_WRITE_BARRIER(xchg_relaxed(&test_var, 0), false); in test_barrier_nothreads()
625 KCSAN_EXPECT_WRITE_BARRIER(cmpxchg(&test_var, 0, 0), true); in test_barrier_nothreads()
626 KCSAN_EXPECT_WRITE_BARRIER(cmpxchg_release(&test_var, 0, 0), true); in test_barrier_nothreads()
627 KCSAN_EXPECT_WRITE_BARRIER(cmpxchg_relaxed(&test_var, 0, 0), false); in test_barrier_nothreads()
641 KCSAN_EXPECT_WRITE_BARRIER(test_and_set_bit(0, &test_var), true); in test_barrier_nothreads()
642 KCSAN_EXPECT_WRITE_BARRIER(test_and_clear_bit(0, &test_var), true); in test_barrier_nothreads()
643 KCSAN_EXPECT_WRITE_BARRIER(test_and_change_bit(0, &test_var), true); in test_barrier_nothreads()
644 KCSAN_EXPECT_WRITE_BARRIER(clear_bit_unlock(0, &test_var), true); in test_barrier_nothreads()
645 KCSAN_EXPECT_WRITE_BARRIER(__clear_bit_unlock(0, &test_var), true); in test_barrier_nothreads()
664 KCSAN_EXPECT_RW_BARRIER(smp_store_mb(test_var, 0), true); in test_barrier_nothreads()
665 KCSAN_EXPECT_RW_BARRIER(smp_load_acquire(&test_var), false); in test_barrier_nothreads()
666 KCSAN_EXPECT_RW_BARRIER(smp_store_release(&test_var, 0), true); in test_barrier_nothreads()
667 KCSAN_EXPECT_RW_BARRIER(xchg(&test_var, 0), true); in test_barrier_nothreads()
668 KCSAN_EXPECT_RW_BARRIER(xchg_release(&test_var, 0), true); in test_barrier_nothreads()
669 KCSAN_EXPECT_RW_BARRIER(xchg_relaxed(&test_var, 0), false); in test_barrier_nothreads()
670 KCSAN_EXPECT_RW_BARRIER(cmpxchg(&test_var, 0, 0), true); in test_barrier_nothreads()
671 KCSAN_EXPECT_RW_BARRIER(cmpxchg_release(&test_var, 0, 0), true); in test_barrier_nothreads()
672 KCSAN_EXPECT_RW_BARRIER(cmpxchg_relaxed(&test_var, 0, 0), false); in test_barrier_nothreads()
686 KCSAN_EXPECT_RW_BARRIER(test_and_set_bit(0, &test_var), true); in test_barrier_nothreads()
687 KCSAN_EXPECT_RW_BARRIER(test_and_clear_bit(0, &test_var), true); in test_barrier_nothreads()
688 KCSAN_EXPECT_RW_BARRIER(test_and_change_bit(0, &test_var), true); in test_barrier_nothreads()
689 KCSAN_EXPECT_RW_BARRIER(clear_bit_unlock(0, &test_var), true); in test_barrier_nothreads()
690 KCSAN_EXPECT_RW_BARRIER(__clear_bit_unlock(0, &test_var), true); in test_barrier_nothreads()
699 KCSAN_EXPECT_READ_BARRIER(clear_bit_unlock_is_negative_byte(0, &test_var), true); in test_barrier_nothreads()
700 KCSAN_EXPECT_WRITE_BARRIER(clear_bit_unlock_is_negative_byte(0, &test_var), true); in test_barrier_nothreads()
701 KCSAN_EXPECT_RW_BARRIER(clear_bit_unlock_is_negative_byte(0, &test_var), true); in test_barrier_nothreads()
712 { test_kernel_write, &test_var, sizeof(test_var), KCSAN_ACCESS_WRITE }, in test_basic()
713 { test_kernel_read, &test_var, sizeof(test_var), 0 }, in test_basic()
718 { test_kernel_read, &test_var, sizeof(test_var), 0 }, in test_basic()
719 { test_kernel_read, &test_var, sizeof(test_var), 0 }, in test_basic()
772 { test_kernel_write_nochange, &test_var, sizeof(test_var), KCSAN_ACCESS_WRITE }, in test_novalue_change()
773 { test_kernel_read, &test_var, sizeof(test_var), 0 }, in test_novalue_change()
778 { test_kernel_write_nochange, &test_var, sizeof(test_var), KCSAN_ACCESS_WRITE }, in test_novalue_change()
779 { test_kernel_write_nochange, &test_var, sizeof(test_var), KCSAN_ACCESS_WRITE }, in test_novalue_change()
804 { test_kernel_write_nochange_rcu, &test_var, sizeof(test_var), KCSAN_ACCESS_WRITE }, in test_novalue_change_exception()
805 { test_kernel_read, &test_var, sizeof(test_var), 0 }, in test_novalue_change_exception()
810 { test_kernel_write_nochange_rcu, &test_var, sizeof(test_var), KCSAN_ACCESS_WRITE }, in test_novalue_change_exception()
811 { test_kernel_write_nochange_rcu, &test_var, sizeof(test_var), KCSAN_ACCESS_WRITE }, in test_novalue_change_exception()
830 { test_kernel_read, &test_var, sizeof(test_var), 0 }, in test_unknown_origin()
852 { test_kernel_write, &test_var, sizeof(test_var), KCSAN_ACCESS_WRITE }, in test_write_write_assume_atomic()
853 { test_kernel_write, &test_var, sizeof(test_var), KCSAN_ACCESS_WRITE }, in test_write_write_assume_atomic()
860 sink_value(READ_ONCE(test_var)); /* induce value-change */ in test_write_write_assume_atomic()
932 { test_kernel_read, &test_var, sizeof(test_var), 0 }, in test_read_plain_atomic_write()
933 …{ test_kernel_write_atomic, &test_var, sizeof(test_var), KCSAN_ACCESS_WRITE | KCSAN_ACCESS_ATOMIC … in test_read_plain_atomic_write()
953 { test_kernel_read, &test_var, sizeof(test_var), 0 }, in test_read_plain_atomic_rmw()
954 { test_kernel_atomic_rmw, &test_var, sizeof(test_var), in test_read_plain_atomic_rmw()
1015 { test_kernel_assert_writer, &test_var, sizeof(test_var), KCSAN_ACCESS_ASSERT }, in test_assert_exclusive_writer()
1016 { test_kernel_write_nochange, &test_var, sizeof(test_var), KCSAN_ACCESS_WRITE }, in test_assert_exclusive_writer()
1033 …{ test_kernel_assert_access, &test_var, sizeof(test_var), KCSAN_ACCESS_ASSERT | KCSAN_ACCESS_WRITE… in test_assert_exclusive_access()
1034 { test_kernel_read, &test_var, sizeof(test_var), 0 }, in test_assert_exclusive_access()
1051 …{ test_kernel_assert_access, &test_var, sizeof(test_var), KCSAN_ACCESS_ASSERT | KCSAN_ACCESS_WRITE… in test_assert_exclusive_access_writer()
1052 { test_kernel_assert_writer, &test_var, sizeof(test_var), KCSAN_ACCESS_ASSERT }, in test_assert_exclusive_access_writer()
1057 …{ test_kernel_assert_access, &test_var, sizeof(test_var), KCSAN_ACCESS_ASSERT | KCSAN_ACCESS_WRITE… in test_assert_exclusive_access_writer()
1058 …{ test_kernel_assert_access, &test_var, sizeof(test_var), KCSAN_ACCESS_ASSERT | KCSAN_ACCESS_WRITE… in test_assert_exclusive_access_writer()
1063 { test_kernel_assert_writer, &test_var, sizeof(test_var), KCSAN_ACCESS_ASSERT }, in test_assert_exclusive_access_writer()
1064 { test_kernel_assert_writer, &test_var, sizeof(test_var), KCSAN_ACCESS_ASSERT }, in test_assert_exclusive_access_writer()
1087 { test_kernel_assert_bits_change, &test_var, sizeof(test_var), KCSAN_ACCESS_ASSERT }, in test_assert_exclusive_bits_change()
1088 { test_kernel_change_bits, &test_var, sizeof(test_var), in test_assert_exclusive_bits_change()
1118 …{ test_kernel_assert_writer_scoped, &test_var, sizeof(test_var), KCSAN_ACCESS_ASSERT | KCSAN_ACCES… in test_assert_exclusive_writer_scoped()
1119 { test_kernel_write_nochange, &test_var, sizeof(test_var), KCSAN_ACCESS_WRITE }, in test_assert_exclusive_writer_scoped()
1124 { test_enter_scope, &test_var, sizeof(test_var), KCSAN_ACCESS_ASSERT | KCSAN_ACCESS_SCOPED }, in test_assert_exclusive_writer_scoped()
1125 { test_kernel_write_nochange, &test_var, sizeof(test_var), KCSAN_ACCESS_WRITE }, in test_assert_exclusive_writer_scoped()
1145 …{ test_kernel_assert_access_scoped, &test_var, sizeof(test_var), KCSAN_ACCESS_ASSERT | KCSAN_ACCES… in test_assert_exclusive_access_scoped()
1146 { test_kernel_read, &test_var, sizeof(test_var), 0 }, in test_assert_exclusive_access_scoped()
1154 …{ test_enter_scope, &test_var, sizeof(test_var), KCSAN_ACCESS_ASSERT | KCSAN_ACCESS_WRITE | KCSAN_… in test_assert_exclusive_access_scoped()
1155 { test_kernel_read, &test_var, sizeof(test_var), 0 }, in test_assert_exclusive_access_scoped()
1218 __atomic_store_n(&test_var, 42L, __ATOMIC_RELAXED); in test_atomic_builtins()
1219 KUNIT_EXPECT_EQ(test, 42L, __atomic_load_n(&test_var, __ATOMIC_RELAXED)); in test_atomic_builtins()
1221 KUNIT_EXPECT_EQ(test, 42L, __atomic_exchange_n(&test_var, 20, __ATOMIC_RELAXED)); in test_atomic_builtins()
1222 KUNIT_EXPECT_EQ(test, 20L, test_var); in test_atomic_builtins()
1225 KUNIT_EXPECT_TRUE(test, __atomic_compare_exchange_n(&test_var, &tmp, 30L, in test_atomic_builtins()
1229 KUNIT_EXPECT_EQ(test, test_var, 30L); in test_atomic_builtins()
1230 KUNIT_EXPECT_FALSE(test, __atomic_compare_exchange_n(&test_var, &tmp, 40L, in test_atomic_builtins()
1234 KUNIT_EXPECT_EQ(test, test_var, 30L); in test_atomic_builtins()
1236 KUNIT_EXPECT_EQ(test, 30L, __atomic_fetch_add(&test_var, 1, __ATOMIC_RELAXED)); in test_atomic_builtins()
1237 KUNIT_EXPECT_EQ(test, 31L, __atomic_fetch_sub(&test_var, 1, __ATOMIC_RELAXED)); in test_atomic_builtins()
1238 KUNIT_EXPECT_EQ(test, 30L, __atomic_fetch_and(&test_var, 0xf, __ATOMIC_RELAXED)); in test_atomic_builtins()
1239 KUNIT_EXPECT_EQ(test, 14L, __atomic_fetch_xor(&test_var, 0xf, __ATOMIC_RELAXED)); in test_atomic_builtins()
1240 KUNIT_EXPECT_EQ(test, 1L, __atomic_fetch_or(&test_var, 0xf0, __ATOMIC_RELAXED)); in test_atomic_builtins()
1241 KUNIT_EXPECT_EQ(test, 241L, __atomic_fetch_nand(&test_var, 0xf, __ATOMIC_RELAXED)); in test_atomic_builtins()
1242 KUNIT_EXPECT_EQ(test, -2L, test_var); in test_atomic_builtins()
1259 { test_kernel_read, &test_var, sizeof(test_var), 0 }, in test_1bit_value_change()
1260 { test_kernel_xor_1bit, &test_var, sizeof(test_var), __KCSAN_ACCESS_RW(KCSAN_ACCESS_WRITE) }, in test_1bit_value_change()
1282 … { test_kernel_with_memorder, &test_var, sizeof(test_var), __KCSAN_ACCESS_RW(KCSAN_ACCESS_WRITE) }, in test_correct_barrier()
1283 { test_kernel_with_memorder, &test_var, sizeof(test_var), __KCSAN_ACCESS_RW(0) }, in test_correct_barrier()
1301 …{ test_kernel_wrong_memorder, &test_var, sizeof(test_var), __KCSAN_ACCESS_RW(KCSAN_ACCESS_WRITE) }, in test_missing_barrier()
1302 { test_kernel_wrong_memorder, &test_var, sizeof(test_var), __KCSAN_ACCESS_RW(0) }, in test_missing_barrier()
1323 …{ test_kernel_atomic_builtin_with_memorder, &test_var, sizeof(test_var), __KCSAN_ACCESS_RW(KCSAN_A… in test_atomic_builtins_correct_barrier()
1324 { test_kernel_atomic_builtin_with_memorder, &test_var, sizeof(test_var), __KCSAN_ACCESS_RW(0) }, in test_atomic_builtins_correct_barrier()
1343 …{ test_kernel_atomic_builtin_wrong_memorder, &test_var, sizeof(test_var), __KCSAN_ACCESS_RW(KCSAN_… in test_atomic_builtins_missing_barrier()
1344 { test_kernel_atomic_builtin_wrong_memorder, &test_var, sizeof(test_var), __KCSAN_ACCESS_RW(0) }, in test_atomic_builtins_missing_barrier()