Skip to content

cpu-o3: fix SMT multi-priority thread selection #1465

cpu-o3: fix SMT multi-priority thread selection

cpu-o3: fix SMT multi-priority thread selection #1465

Workflow file for this run

name: gem5 Full Test (Tier 2 - Post-Merge)
on:
push:
branches: [ xs-dev ]
# Removed pull_request trigger - moved to pr-quick-check.yml (Tier 1)
# can be triggered manually
workflow_dispatch:
jobs:
paralel_cpt_test:
# 由于gem5.cfg使用的切片ck_path都在小机房上,默认使用小机房运行这个测试
runs-on: [self-hosted, open] # 所有open*的机器上运行
continue-on-error: false
name: XS-GEM5 - Running test checkpoints
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/build-dramsim
- name: Build GEM5 opt
run: |
CC=gcc CXX=g++ scons build/RISCV/gem5.opt --linker=gold -j64
- name: Run paralel autotest script
run: python3 .github/workflows/autotest/script/autotest.py -f .github/workflows/autotest/gem5.cfg
paralel_cpt_h_test:
# 由于gem5.cfg使用的切片ck_path都在小机房上,默认使用小机房运行这个测试
runs-on: [self-hosted, open] # 所有open*的机器上运行
continue-on-error: false
name: XS-GEM5 - Running h test checkpoints
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/build-dramsim
- name: Build GEM5 opt
run: |
CC=gcc CXX=g++ scons build/RISCV/gem5.opt --linker=gold -j64
- name: Run paralel h autotest script
run: python3 .github/workflows/autotest/script/autotest.py -f .github/workflows/autotest/gem5-h.cfg
valgrind_memory_check:
runs-on: [self-hosted, open]
continue-on-error: false
name: XS-GEM5 - Check memory corruption
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/build-dramsim
- name: Build GEM5 debug
run: CC=gcc CXX=g++ scons build/RISCV/gem5.debug --linker=gold -j64
- name: Memory check
run: |
export GEM5_HOME=$(pwd)
bash util/memory_check/run-xs-with-valgrind.sh
cd $GEM5_HOME
new_sim_script_test_gcbv:
runs-on: [self-hosted, open]
continue-on-error: false
name: XS-GEM5 - Test new simulation script on RV64GCBV
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/build-dramsim
- name: Build GEM5 opt
run: CC=gcc CXX=g++ scons build/RISCV/gem5.opt --linker=gold -j64 --rvv-impl=simple
- name: XS-GEM5 - Test xiangshan.py simulation scripts
run: |
export GCBV_REF_SO="/nfs/home/share/gem5_ci/ref/normal/riscv64-nemu-notama-so"
export GCBV_RESTORER="/nfs/home/share/gem5_ci/tools/gcbv-restorer.bin"
export GEM5_HOME=$(pwd)
mkdir -p $GEM5_HOME/util/xs_scripts/test_v
cd $GEM5_HOME/util/xs_scripts/test_v
bash ../kmh_6wide_vector.sh /nfs/home/share/gem5_ci/checkpoints/gcbv_test.zstd
new_sim_script_test_gcb_multi_core:
runs-on: [self-hosted, open]
continue-on-error: false
name: XS-GEM5 - Test Multi-core + RV64GCB
steps:
- uses: actions/checkout@v6
- name: Build GEM5 opt
run: |
CC=clang CXX=clang++ scons build/RISCV_CHI/gem5.opt -j 48 --gold-linker
- name: XS-GEM5 - Test xiangshan.py simulation scripts
run: |
export GCBV_MULTI_CORE_REF_SO="/nfs/home/share/gem5_ci/ref/multi/riscv64-nemu-interpreter-so"
export GCB_MULTI_CORE_RESTORER="/nfs/home/share/gem5_ci/tools/gcb-2core-restorer.bin"
export GEM5_HOME=$(pwd)
mkdir -p $GEM5_HOME/util/xs_scripts/test_multi_core
cd $GEM5_HOME/util/xs_scripts/test_multi_core
bash ../kmh-ruby-dual.sh /nfs/home/share/gem5_ci/checkpoints/multi_core_test.gz
test_fix_l2tlb_bugs:
runs-on: [self-hosted, open]
continue-on-error: false
name: XS-GEM5 - Test fix L2TLB bugs
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/build-dramsim
- name: Build GEM5 opt
run: CC=gcc CXX=g++ scons build/RISCV/gem5.opt --linker=gold -j64
- name: XS-GEM5 - Test xiangshan.py simulation scripts
run: |
export GCBV_REF_SO="/nfs/home/share/gem5_ci/ref/normal/riscv64-nemu-interpreter-so"
export GEM5_HOME=$(pwd)
mkdir -p $GEM5_HOME/util/xs_scripts/test_l2tlb
cd $GEM5_HOME/util/xs_scripts/test_l2tlb
bash ../kmh_6wide.sh /nfs/home/share/gem5_ci/checkpoints/l2tlb_test.zstd
new_sim_script_test_gcbh:
runs-on: [self-hosted, open]
continue-on-error: false
name: XS-GEM5 - Test new simulation script on RV64GCBH
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/build-dramsim
- name: Build GEM5 opt
run: CC=gcc CXX=g++ scons build/RISCV/gem5.opt --linker=gold -j64
- name: XS-GEM5 - Test xiangshan.py simulation scripts
run: |
export GCBH_REF_SO="/nfs/home/share/gem5_ci/ref/normal/riscv64-nemu-notama-tvalref-so"
export GCBH_RESTORER="/nfs/home/share/gem5_ci/tools/gcpt.bin"
export GEM5_HOME=$(pwd)
mkdir -p $GEM5_HOME/util/xs_scripts/test_h
cd $GEM5_HOME/util/xs_scripts/test_h
bash ../kmh_6wide_h.sh /nfs/home/share/gem5_ci/checkpoints/gcbh_test.zstd
raw_linux_boot_test:
runs-on: [self-hosted, open]
continue-on-error: false
timeout-minutes: 30
name: XS-GEM5 - Boot raw Linux
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/build-dramsim
- name: Build GEM5 opt
run: |
CC=gcc CXX=g++ scons build/RISCV/gem5.opt --linker=gold -j64
- name: Boot Xiangshan raw Linux
run: |
export RAW_LINUX_BIN="${XS_LINUX_BIN:-/nfs/home/share/gem5_ci/ready-to-run/linux.bin}"
if [ ! -r "$RAW_LINUX_BIN" ]; then
echo "Missing raw linux image: $RAW_LINUX_BIN"
echo "Please provision the image at the default path or set XS_LINUX_BIN on the runner."
exit 1
fi
mkdir -p debug/raw_linux_ci
./build/RISCV/gem5.opt -r -d debug/raw_linux_ci \
./configs/example/kmhv3.py \
--raw-cpt \
--generic-rv-cpt "$RAW_LINUX_BIN" \
--disable-difftest
- name: Check boot result
run: |
test -f debug/raw_linux_ci/simout
tail -n 200 debug/raw_linux_ci/simout
grep -q "Hello, XiangShan!" debug/raw_linux_ci/simout
grep -q "m5_exit instruction encountered" debug/raw_linux_ci/simout