csr-reader
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
месяц назад
README.md
RISC-V Performance Counter Access via Custom Syscalls
Данный проект реализует механизм доступа к аппаратным счетчикам производительности RISC-V (, mcycle) из пространства пользователя через добавление кастомных системных вызовов в ядро Linux.minstret
Структура проекта
- Тестовое приложение (User-space), использующее новые сискаллы.get_mcycle.c- Диффы для автоматической модификации исходников:patches/- Разрешение доступа к CSR в OpenSBI.01-opensbi-mcycle.patch- Добавление сискаллов в таблицу и ядро.02-linux-mcycle.patch
- Скрипт проверки окружения, клонирования и патчинга.scripts/configure.sh- Полная сборка всех компонентов (OpenSBI, Kernel, App).build.sh- Скрипт запуска эмулятора с собранными бинарниками.run_qemu.sh
Технические детали
- Архитектура: RISC-V (64-bit, rv64gc).
- Системные вызовы:
:#462- возвращает значение регистраsys_get_mcycle.mcycle:#463- возвращает значение регистраsys_get_minstret.minstret
- Окружение: QEMU Virt Machine, Linux Kernel v6.8, OpenSBI v1.2.
- Режим запуска: Static Initramfs (тестовое приложение является единственным процессом
).init
Инструкция по запуску
1. Подготовка и конфигурация
Скрипт проверит наличие и кросс-компилятора qemu-system-riscv64, скачает исходники и наложит патчи:riscv64-linux-gnu-gcc
2. Сборка системы
Компиляция всех компонентов: