Реализация поддержки Sdtrig в RISC-V Linux и OpenSBI (Илья Мамай)
24 мая в Санкт-Петербурге состоялся первый System Level Meetup от компании YADRO. В рамках мероприятия спикер из Syntacore, Илья Мамай, поделился докладом "Реализация поддержки Sdtrig в RISC-V Linux и OpenSBI". Его доклад — о том, как в Syntacore добавляли поддержку Hardware Breakpoint в OpenSBI и ядре Linux. Илья рассказал об устройстве подсистемы Hardware Breakpoint (расширения Sdtrig) и сравню реализацию ее интерфейса на Linux с реализациями в x86 и arm64. Описал механизмы, на которых она основана здесь и в имплементациях на других архитектурах — Perf Event Framework, Generic PMU, ptrace syscall. Далее обсудили плюсы и минусы реализации на RISC-V в сравнении с другими архитектурами, проблемы из-за излишней гибкости спецификаций RISC-V, а также способы их обойти — как эффективные, так и костыльные. 00:14 - О спикере. 00:26 - О докладе. 01:12 - Проблематика. На примере простой функции. 02:13 - Попробуем отладить. 02:50 - SMC пример. 05:09 - Отлаживаем SMC. 06:19 - Как GDB ставит SW Breakpoint. 09:03 - Разбор проблемы SMC. 10:11 - Отлаживаем SW WP. 11:15 - Как GDB ставит SW Watchpoint. 12:09 - Проблематика SW BP/WP. 13:44 - Аппаратные триггеры. 19:41 - Perf Events. 24:47 - Архитектура HW Breakpoints в Linux. 27:36 - Триггеры в RISC-V Linux. 32:11 - Выводы. 32:54 - Вопросы участников. Подробности о докладах и анонсы следующих митапов вы найдете на нашем Хабре https://habr.com/ru/companies/yadro/articles/ 📚 Дополнительные материалы ✅ Хабр: · DMA в userspace на Zynq US+: собираем данные AXI-Stream для CPU https://habr.com/ru/companies/yadro/articles/1019906/ · Аппаратные брейкпойнты: для чего они нужны и как устроены в Linux https://habr.com/ru/companies/yadro/articles/968072/ · Обход стека в ядре Linux для RISC-V: разбираем и чиним https://habr.com/ru/companies/yadro/articles/990466/ 🎧 Послушать: · Подкаст «Битовые маски» с Дмитрием Точанским. Архитектура ядра Linux. ЦОС и DSP-процессоры. Linux для RISC-V https://engineer.yadro.com/podcast/arhitektura-yadra-linux/ · Подкаст «Битовые маски» с Алексеем Бродкиным. Операционные системы. Linux. Zephyr. HAL и BSP. ARC-V https://engineer.yadro.com/podcast/operating-systems/
24 мая в Санкт-Петербурге состоялся первый System Level Meetup от компании YADRO. В рамках мероприятия спикер из Syntacore, Илья Мамай, поделился докладом "Реализация поддержки Sdtrig в RISC-V Linux и OpenSBI". Его доклад — о том, как в Syntacore добавляли поддержку Hardware Breakpoint в OpenSBI и ядре Linux. Илья рассказал об устройстве подсистемы Hardware Breakpoint (расширения Sdtrig) и сравню реализацию ее интерфейса на Linux с реализациями в x86 и arm64. Описал механизмы, на которых она основана здесь и в имплементациях на других архитектурах — Perf Event Framework, Generic PMU, ptrace syscall. Далее обсудили плюсы и минусы реализации на RISC-V в сравнении с другими архитектурами, проблемы из-за излишней гибкости спецификаций RISC-V, а также способы их обойти — как эффективные, так и костыльные. 00:14 - О спикере. 00:26 - О докладе. 01:12 - Проблематика. На примере простой функции. 02:13 - Попробуем отладить. 02:50 - SMC пример. 05:09 - Отлаживаем SMC. 06:19 - Как GDB ставит SW Breakpoint. 09:03 - Разбор проблемы SMC. 10:11 - Отлаживаем SW WP. 11:15 - Как GDB ставит SW Watchpoint. 12:09 - Проблематика SW BP/WP. 13:44 - Аппаратные триггеры. 19:41 - Perf Events. 24:47 - Архитектура HW Breakpoints в Linux. 27:36 - Триггеры в RISC-V Linux. 32:11 - Выводы. 32:54 - Вопросы участников. Подробности о докладах и анонсы следующих митапов вы найдете на нашем Хабре https://habr.com/ru/companies/yadro/articles/ 📚 Дополнительные материалы ✅ Хабр: · DMA в userspace на Zynq US+: собираем данные AXI-Stream для CPU https://habr.com/ru/companies/yadro/articles/1019906/ · Аппаратные брейкпойнты: для чего они нужны и как устроены в Linux https://habr.com/ru/companies/yadro/articles/968072/ · Обход стека в ядре Linux для RISC-V: разбираем и чиним https://habr.com/ru/companies/yadro/articles/990466/ 🎧 Послушать: · Подкаст «Битовые маски» с Дмитрием Точанским. Архитектура ядра Linux. ЦОС и DSP-процессоры. Linux для RISC-V https://engineer.yadro.com/podcast/arhitektura-yadra-linux/ · Подкаст «Битовые маски» с Алексеем Бродкиным. Операционные системы. Linux. Zephyr. HAL и BSP. ARC-V https://engineer.yadro.com/podcast/operating-systems/




