summary refs log tree commit diff stats
path: root/results/classifier/user-mode-bugs/1606
blob: dd33f2b0e37bdf3a88f7609461c5061da38aab12 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
riscv: fence.i is not functional
Description of problem:
The attached user-level test is designed to do the following (in iteration):

  - Thread P0 on CPU0 changes some text/code, while

  - Thread P1 on CPU1 checks/reads the code, fence.i, then executes the same code.

Results (in stdout) indicates that CPU1 has read the new code (1:x5=a009) but executed the old one (1:x7=1) (against the specification).
Steps to reproduce:
1. echo 2 > /proc/sys/vm/nr_hugepages
2. ./CoRF+fence.i
Additional information:
Example output:
```[CoRF+fence.i.c](/uploads/c150ca0910783cc4bfc3886789b64c28/CoRF+fence.i.c)
Test CoRF+fence.i Allowed
Histogram (4 states)
25784  :>1:x5=0xa009; 1:x7=2;
24207  *>1:x5=0xa009; 1:x7=1;   <--  THIS LINE
8      :>1:x5=0xa019; 1:x7=1;
1      :>1:x5=0xa019; 1:x7=2;
Ok
Witnesses
Positive: 24207 Negative 25793
Condition exists (1:x5=0xa009 /\ 1:x7=1) is  validated
Observation CoRF+fence.i Sometimes 24207 25793
Time CoRF+fence.i 0.85
Hash=
```