user-level: 0.995 risc-v: 0.953 ppc: 0.826 graphic: 0.812 VMM: 0.790 KVM: 0.777 device: 0.740 vnc: 0.739 performance: 0.728 permissions: 0.728 x86: 0.676 PID: 0.623 semantic: 0.602 i386: 0.565 architecture: 0.559 virtual: 0.534 socket: 0.527 network: 0.516 hypervisor: 0.479 TCG: 0.464 kernel: 0.424 register: 0.402 debug: 0.391 files: 0.355 peripherals: 0.344 assembly: 0.316 boot: 0.313 arm: 0.294 mistranslation: 0.266 -------------------- user-level: 0.985 debug: 0.529 x86: 0.209 kernel: 0.158 performance: 0.073 files: 0.040 i386: 0.034 risc-v: 0.031 virtual: 0.021 ppc: 0.020 TCG: 0.018 hypervisor: 0.015 PID: 0.013 arm: 0.011 device: 0.011 register: 0.011 assembly: 0.011 network: 0.009 VMM: 0.006 semantic: 0.006 peripherals: 0.006 boot: 0.005 architecture: 0.004 socket: 0.003 KVM: 0.003 graphic: 0.002 vnc: 0.002 permissions: 0.002 mistranslation: 0.001 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= ```