<div dir="ltr"><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br>Hello,<br><br>after nontrivial time spent scanning your assembly code, I figured out that during a context switch the entryHi register is not loaded nor stored in contexts.</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">With your implementation of context.S, tests were failing, caused by thread_kill call in global_exception_handler because memory was access with an ASID unset.<br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">I coincide it as a bug since context switch should preserve the entire context_t structure but entryHi nor CONTEXT_CP0_ENTRYHI_OFFSET was not used anywhere in SAVE_REGISTERS nor LOAD_REGISTERS.</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small"><br></div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">I made the following changes, I want someone to concur with my findings.</div><div class="gmail_default" style="font-family:verdana,sans-serif;font-size:small">```<br>diff --git a/kernel/src/proc/context.S b/kernel/src/proc/context.S<br>index 3da3a0c..a43ddef 100644<br>--- a/kernel/src/proc/context.S<br>+++ b/kernel/src/proc/context.S<br>@@ -42,6 +42,8 @@ cpu_switch_context:<br>   mflo $t1<br>   sw $t0, CONTEXT_HI_OFFSET($a0)<br>   sw $t1, CONTEXT_LO_OFFSET($a0)<br>+   mfc0 $t0, $10<br>+   sw $t0, CONTEXT_CP0_ENTRYHI_OFFSET($a0)<br><br>   /*<br>   * Save the CP0 Status register and disable interrupts (by<br>@@ -71,6 +73,8 @@ cpu_switch_context:<br>   lw $t1, CONTEXT_LO_OFFSET($a1)<br>   mthi $t0<br>   mtlo $t1<br>+   lw $t0, CONTEXT_CP0_ENTRYHI_OFFSET($a1)<br>+   mtc0 $t0, $10<br><br>   move $k0, $a1<br>   LOAD_REGISTERS $k0<br>```<br></div><div><br></div><div><br></div>-- <br><div dir="ltr" data-smartmail="gmail_signature"><div dir="ltr"><div dir="ltr"><div><span style="font-size:12.8px;font-family:georgia,serif">S pozdravem JiÅà Pelc</span><br></div><div><font face="georgia, serif"><span style="font-size:12.8px">Matematicko-fyzikálnà fakulta</span></font></div><div><font face="georgia, serif"><span style="font-size:12.8px">Univerzita Karlova<br></span></font></div></div></div></div></div>