Skip to content

difftest failed when encounterd csrrw tp, mscratch, tp #306

@zybzzz

Description

@zybzzz

xs-gem5: 4f7ae37

When batch running checkpoints using the specified version of gem5, approximately 9 out of 500 checkpoints failed the difftest. Upon examining the relevant logs, all failures point to the instruction csrrw tp, mscratch, tp, suggesting a potential issue with its implementation.

I have not yet had time to investigate the specific cause.

Diff at PC, NEMU: 0xffffffff801f3c18, GEM5: 0x801004f8
GEM5 pc: 0x801004f8, NEMU npc: 0xffffffff801f3c1c
Diff at ESC[31mmstatusESC[0m Ref value: ESC[31m0xa000000a0ESC[0m, GEM5 value: ESC[31m0xa00000820ESC[0m
Diff at ESC[31mprivESC[0m Ref value: ESC[31m0x1ESC[0m, GEM5 value: ESC[31m0x3ESC[0m
Diff at ESC[31mmcauseESC[0m Ref value: ESC[31m0x9ESC[0m, GEM5 value: ESC[31m0x2ESC[0m
Inst [sn:416504] pc: 0x801004f8
Diff at ESC[31mtpESC[0m Ref value: ESC[31m0xffffffd8802c0a40ESC[0m, GEM5 value: ESC[31m0x80148000ESC[0m
In CPU0: NEMU PC: 0xffffffff801f3c18, GEM5 PC: 0x801004f8, inst: csrrw tp, mscratch, tp
---------------- Intger Registers ----------------
  $0: 0x0000000000000000   ra: 0xffffffff801f3ef8   sp: 0xffffffc800343a40   gp: 0xffffffff81046720
  tp: 0xffffffd8802c0a40   t0: 0xffffffd8802c1438   t1: 0xffffffd8802c1030   t2: 0x0000000000000001
  s0: 0xffffffc800343b20   s1: 0x0000000000000001   a0: 0xffffffff8107bb10   a1: 0xffffffc800343c40
  a2: 0x0000000000000008   a3: 0x0000000000000109   a4: 0x0000000000000001   a5: 0x0000000000000000
  a6: 0x0000000000000000   a7: 0x00000000000000b5   s2: 0xffffffc800343a40   s3: 0x00000000c0000000
  s4: 0xffffffff8107bb10   s5: 0xffffffc800343a40   s6: 0xffffffc800343a68   s7: 0xffffffc800343a88
  s8: 0x0000000080000000   s9: 0xffffffff8103e0b6  s10: 0x0000000000000004  s11: 0x0000000000000001
  t3: 0x00000000ffffffff   t4: 0x00000000000007e0   t5: 0x00000000000007e0   t6: 0x0000000000000e6f
---------------- Float Registers ----------------
 ft0: 0x0000000000000000  ft1: 0x0000000000000000  ft2: 0x0000000000000000  ft3: 0x0000000000000000
 ft4: 0x0000000000000000  ft5: 0x0000000000000000  ft6: 0x0000000000000000  ft7: 0x0000000000000000
 fs0: 0x0000000000000000  fs1: 0x0000000000000000  fa0: 0x0000000000000000  fa1: 0x0000000000000000
 fa2: 0x0000000000000000  fa3: 0x0000000000000000  fa4: 0x0000000000000000  fa5: 0x0000000000000000
 fa6: 0x0000000000000000  fa7: 0x0000000000000000  fs2: 0x0000000000000000  fs3: 0x0000000000000000
 fs4: 0x0000000000000000  fs5: 0x0000000000000000  fs6: 0x0000000000000000  fs7: 0x0000000000000000
 fs8: 0x0000000000000000  fs9: 0x0000000000000000 fs10: 0x0000000000000000 fs11: 0x0000000000000000
 ft8: 0x0000000000000000  ft9: 0x0000000000000000 ft10: 0x0000000000000000 ft11: 0x0000000000000000
 fcsr: 0x0000000000000000 fflags: 0x0000000000000000 frm: 0x0000000000000000
---------------- Privileged CSRs ----------------
pc: 0xffffffff801f3c1c  privilege mode: S (mode: 1  v: 0  debug: 0)
   mstatus: 0x0000000a000000a0   sstatus: 0x0000000200000020  vsstatus: 0x0000000200000000
   hstatus: 0x0000000200000000
    mcause: 0x0000000000000009      mepc: 0xffffffff8026a932     mtval: 0x0000000000000000
    scause: 0x0000000000000008      sepc: 0x00000000000d9f40     stval: 0x0000000000000000
   vscause: 0x0000000000000000     vsepc: 0x0000000000000000    vstval: 0x0000000000000000
    mtval2: 0x0000000000000000     htval: 0x0000000000000000
    mtinst: 0x0000000000000000    htinst: 0x0000000000000000
  mscratch: 0x0000000080148000  sscratch: 0x0000000000000000 vsscratch: 0x0000000000000000
     mtvec: 0x00000000801004f8     stvec: 0xffffffff8026a910    vstvec: 0x0000000000000000
       mip: 0x0000000000000000       mie: 0x000000000000020a
   mideleg: 0x0000000000001666   medeleg: 0x0000000000f0b509
   hideleg: 0x0000000000000000   hedeleg: 0x0000000000000000
      satp: 0x8005c0000013b104     hgatp: 0x0000000000000000     vsatp: 0x0000000000000000
 mcounteren: 0x00000000ffffffff scounteren: 0x0000000000000007 hcounteren: 0x0000000000000000
---------------- PMP CSRs ----------------
pmp: 16 entries active, details:
 0: cfg:0x18 addr:0x000000000e001fff| 1: cfg:0x18 addr:0x0000000020053fff
 2: cfg:0x18 addr:0x0000000020047fff| 3: cfg:0x1b addr:0x000000000f7fffff
 4: cfg:0x1f addr:0x00000003ffffffff| 5: cfg:0x00 addr:0x0000000000000000
 6: cfg:0x00 addr:0x0000000000000000| 7: cfg:0x00 addr:0x0000000000000000
 8: cfg:0x00 addr:0x0000000000000000| 9: cfg:0x00 addr:0x0000000000000000
10: cfg:0x00 addr:0x0000000000000000|11: cfg:0x00 addr:0x0000000000000000
12: cfg:0x00 addr:0x0000000000000000|13: cfg:0x00 addr:0x0000000000000000
14: cfg:0x00 addr:0x0000000000000000|15: cfg:0x00 addr:0x0000000000000000
---------------- Vector Registers ----------------
v0 : 0x4946434c2e09676e_6f6c2e090a347830  v1 : 0x090a303435314946_434c2e2d31343531
v2 : 0x62656c752e090a65_783009657479622e  v3 : 0x09657479622e090a_3832783020383231
v4 : 0x302038323162656c_752e090a63387830  v5 : 0x2e090a3478300965_7479622e090a3578
v6 : 0x2e2d323435314946_434c2e09676e6f6c  v7 : 0x09657479622e090a_313435314946434c
v8 : 0x0000000000000000_0000000000000000  v9 : 0x0000000000000000_0000000000000000
v10: 0x0000000000000000_0000000000000000  v11: 0x0000000000000000_0000000000000000
v12: 0x0000000000000000_0000000000000000  v13: 0x0000000000000000_0000000000000000
v14: 0x0000000000000000_0000000000000000  v15: 0x0000000000000000_0000000000000000
v16: 0x0000000000000000_0000000000000000  v17: 0x0000000000000000_0000000000000000
v18: 0x0000000000000000_0000000000000000  v19: 0x0000000000000000_0000000000000000
v20: 0x0000000000000000_0000000000000000  v21: 0x0000000000000000_0000000000000000
v22: 0x0000000000000000_0000000000000000  v23: 0x0000000000000000_0000000000000000
v24: 0x0000000000000000_0000000000000000  v25: 0x0000000000000000_0000000000000000
v26: 0x0000000000000000_0000000000000000  v27: 0x0000000000000000_0000000000000000
v28: 0x0000000000000000_0000000000000000  v29: 0x0000000000000000_0000000000000000
v30: 0x0000000000000000_0000000000000000  v31: 0x0000000000000000_0000000000000000
  vtype: 0x00000000000000c3 vstart: 0x0000000000000000  vxsat: 0x0000000000000000
   vxrm: 0x0000000000000000     vl: 0x0000000000000080   vcsr: 0x0000000000000000
build/RISCV/cpu/base.cc:1565: warn: gem5-rRegsDisplay :
  $0 :                0   ra : ffffffff801f3ef8   sp : ffffffc800343a40   gp : ffffffff81046720
ESC[31m  tp :         80148000 ESC[0m  t0 : ffffffd8802c1438   t1 : ffffffd8802c1030   t2 :                1
  s0 : ffffffc800343b20   s1 :                1   a0 : ffffffff8107bb10   a1 : ffffffc800343c40
  a2 :                8   a3 :              109   a4 :                1   a5 :                0
  a6 :                0   a7 :               b5   s2 : ffffffc800343a40   s3 :         c0000000
  s4 : ffffffff8107bb10   s5 : ffffffc800343a40   s6 : ffffffc800343a68   s7 : ffffffc800343a88
  s8 :         80000000   s9 : ffffffff8103e0b6  s10 :                4  s11 :                1
  t3 :         ffffffff   t4 :              7e0   t5 :              7e0   t6 :              e6f
build/RISCV/cpu/base.cc:1578: warn: gem5-fRegsDisplay :
 ft0 :                0  ft1 :                0  ft2 :                0  ft3 :                0
 ft4 :                0  ft5 :                0  ft6 :                0  ft7 :                0
 fs0 :                0  fs1 :                0  fa0 :                0  fa1 :                0
 fa2 :                0  fa3 :                0  fa4 :                0  fa5 :                0
 fa6 :                0  fa7 :                0  fs2 :                0  fs3 :                0
fs4 :                0  fs5 :                0  fs6 :                0  fs7 :                0
 fs8 :                0  fs9 :                0 fs10 :                0 fs11 :                0
 ft8 :                0  ft9 :                0 ft10 :                0 ft11 :                0
build/RISCV/cpu/base.cc:1629: warn: gem5-CsrDisplay :
pc :         801004f8      ESC[31mmstatus :        a00000820ESC[0m ESC[31mmcause :                2ESC[0m ESC[31mmepc    : ffffffff801f3c18ESC[0m
                           sstatus :        200000000 scause :                0 sepc    :                0
satp    :                0
mip     :                0 mie     :                0 mscratch:                0 sscratch:                0
mideleg :             1444 medeleg :                0
mtval   :                0 stval   :                0 mtvec   :                0 stvec   :                0
privilege mode : 3
build/RISCV/cpu/base.cc:1654: warn: gem5-VectorDisplay :
v00 : 4946434c2e09676e_6f6c2e090a347830 v01 : 090a303435314946_434c2e2d31343531
v02 : 62656c752e090a65_783009657479622e v03 : 09657479622e090a_3832783020383231
v04 : 302038323162656c_752e090a63387830 v05 : 2e090a3478300965_7479622e090a3578
v06 : 2e2d323435314946_434c2e09676e6f6c v07 : 09657479622e090a_313435314946434c
v08 : 0000000000000000_0000000000000000 v09 : 0000000000000000_0000000000000000
v10 : 0000000000000000_0000000000000000 v11 : 0000000000000000_0000000000000000
v12 : 0000000000000000_0000000000000000 v13 : 0000000000000000_0000000000000000
v14 : 0000000000000000_0000000000000000 v15 : 0000000000000000_0000000000000000
v16 : 0000000000000000_0000000000000000 v17 : 0000000000000000_0000000000000000
v18 : 0000000000000000_0000000000000000 v19 : 0000000000000000_0000000000000000
v20 : 0000000000000000_0000000000000000 v21 : 0000000000000000_0000000000000000
v22 : 0000000000000000_0000000000000000 v23 : 0000000000000000_0000000000000000
v24 : 0000000000000000_0000000000000000 v25 : 0000000000000000_0000000000000000
v26 : 0000000000000000_0000000000000000 v27 : 0000000000000000_0000000000000000
v28 : 0000000000000000_0000000000000000 v29 : 0000000000000000_0000000000000000
v30 : 0000000000000000_0000000000000000 v31 : 0000000000000000_0000000000000000
vtype   :               c3 vstart   :                0  vxsat   :                0
vxrm    :                0 vl       :               80  vcsr    :                0

build/RISCV/cpu/base.hh:743: warn: start dump last 20 committed msg
build/RISCV/cpu/base.hh:746: warn: V [sn:416400 pc:0xffffffff801f3bb4] c_mv s4, a0
build/RISCV/cpu/base.hh:746: warn: V [sn:416401 pc:0xffffffff801f3bb6] sd zero, 8(s6), paddr: 0x138622a70
build/RISCV/cpu/base.hh:746: warn: V [sn:416402 pc:0xffffffff801f3bba] sd zero, 16(s6), paddr: 0x138622a78
build/RISCV/cpu/base.hh:746: warn: V [sn:416403 pc:0xffffffff801f3bbe] sd zero, 24(s6), paddr: 0x138622a80
build/RISCV/cpu/base.hh:746: warn: V [sn:416404 pc:0xffffffff801f3bc2] sd zero, 8(s7), paddr: 0x138622a90
build/RISCV/cpu/base.hh:746: warn: V [sn:416405 pc:0xffffffff801f3bc6] sd zero, 16(s7), paddr: 0x138622a98
build/RISCV/cpu/base.hh:746: warn: V [sn:416406 pc:0xffffffff801f3bca] sd zero, 24(s7), paddr: 0x138622aa0
build/RISCV/cpu/base.hh:746: warn: V [sn:416407 pc:0xffffffff801f3bce] sd zero, 8(s5), paddr: 0x138622a48
build/RISCV/cpu/base.hh:746: warn: V [sn:416408 pc:0xffffffff801f3bd2] sd zero, 16(s5), paddr: 0x138622a50
build/RISCV/cpu/base.hh:746: warn: V [sn:416409 pc:0xffffffff801f3bd6] sd zero, 24(s5), paddr: 0x138622a58
build/RISCV/cpu/base.hh:746: warn: V [sn:416410 pc:0xffffffff801f3bda] sd zero, 32(s5), paddr: 0x138622a60
build/RISCV/cpu/base.hh:746: warn: V [sn:416411 pc:0xffffffff801f3bde] c_mv s2, s5
build/RISCV/cpu/base.hh:746: warn: V [sn:416412 pc:0xffffffff801f3be0] c_slli s3, 30, res: 0xc0000000
build/RISCV/cpu/base.hh:746: warn: V [sn:416413 pc:0xffffffff801f3be2] c_li s11, 1, res: 0x1
build/RISCV/cpu/base.hh:746: warn: V [sn:416414 pc:0xffffffff801f3be4] slli s8, s1, 31, res: 0x80000000
build/RISCV/cpu/base.hh:746: warn: V [sn:416415 pc:0xffffffff801f3be8] c_li s10, 4, res: 0x4
build/RISCV/cpu/base.hh:746: warn: V [sn:416416 pc:0xffffffff801f3bea] auipc s9, 3658, res: 0xffffffff8103dbea
build/RISCV/cpu/base.hh:746: warn: V [sn:416417 pc:0xffffffff801f3bee] addi s9, s9, 1228, res: 0xffffffff8103e0b6
build/RISCV/cpu/base.hh:746: warn: V [sn:416418 pc:0xffffffff801f3bf2] jal zero, 38
build/RISCV/cpu/base.hh:746: warn: V [sn:416504 pc:0x801004f8] csrrw tp, mscratch, tp, res: 0x80148000
build/RISCV/cpu/base.cc:1532: panic: Difftest failed!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions