<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>