开源改变世界!!

弄清楚为什么尝试清理任务会使 uspace posix 与 maxcpus=2 崩溃 #109

推推 grbl 2年前 (2023-01-29) 144次浏览
关闭
jepler 打开了这个问题 2016 年 7 月 13 日 · 0 条评论

注释

弄清楚为什么尝试清理任务会使 uspace posix 与 maxcpus=2 崩溃 #109
成员

在使用 uspace-plus 时,我在 buildbot(内核 4.1 RT-PREEMPT,2 个 CPU)上造成了一系列故障,后来我在裸机上用内核 4.4 RT-PREEMPT 重现了这些故障。在“flipflop.0”测试的 1000 次运行中,它至少会出现 1 次。通过调试消息,似乎挂起发生在 preempt_cancel() 内部,并且 CPU0(未运行实时代码的那个)开始使用 100% CPU。

我将它一分为二(在道德上等同于)这个提交,其目的是在退出 rtapi_app 之前清理所有任务并销毁 App 对象。我想我可以从 uspace-plus 系列中删除这个更改并将问题留到另一天,但我们真的应该在退出时进行清理!

0001-uspace-stop-threads-and-then-destroy-the-RtapiApp-at.patch.txt