2015年(13)
发布时间:2015-05-13 20:56:19
昨天晚上在kernel.c里开了一个ring3进程,测试,在bochs里显示双重页错误。 早上起床,开始调试。从这个bug开始。 首先,确定这到底是不是“双重页错误”。因为自己的do_page_fault写的比较弱,怀疑它判断的不准。果然,do_page_fault里是每次进入时,作pgerr_count++,在返回前却没有pgerr_count--。 纠正.........【阅读全文】
发布时间:2015-05-11 13:11:27
点击(此处)折叠或打开[schedule()>switch_to()]15 #define switch_to(prev,next,last) do { \16 asm volatile("pushl %%esi\n\t" \17 "pushl %%edi\n\t" \18 "pushl %%ebp\n\t" \19 "m.........【阅读全文】
发布时间:2015-05-11 11:01:15
是papaya内核上的一个bug。 背景是这样的:前几天看了linux上switch_to的代码,觉得太绕,决定不模仿它,继续用自己发明的pregs。pregs是一个浮动指针,指着内核进程被中断时保存的stack_frame。 schedule()重写之后,只创建一个idle进程,测试,发现输出几行信息就死循环了:点击(此处)折叠或打开.........【阅读全文】